diff --git a/source/source_io/module_energy/nscf_fermi_surf.cpp b/source/source_io/module_energy/nscf_fermi_surf.cpp index 99679f7f10..ea5e89dba2 100644 --- a/source/source_io/module_energy/nscf_fermi_surf.cpp +++ b/source/source_io/module_energy/nscf_fermi_surf.cpp @@ -3,6 +3,8 @@ #include "source_io/module_parameter/parameter.h" #include "source_base/global_variable.h" #include "source_base/timer.h" +#include +#include #ifdef __MPI #include @@ -26,6 +28,13 @@ void ModuleIO::nscf_fermi_surface(const std::string &out_band_dir, if(GlobalV::MY_RANK==0) { ofs.open(out_band_dir.c_str()); + if (!ofs.is_open()) + { + ModuleBase::WARNING_QUIT( + "ModuleIO::nscf_fermi_surface", + "Failed to open file for writing: " + out_band_dir + ); + } ofs << std::setprecision(6); ofs.close(); } diff --git a/source/source_lcao/module_operator_lcao/overlap.cpp b/source/source_lcao/module_operator_lcao/overlap.cpp index 4e031c277a..014183aff7 100644 --- a/source/source_lcao/module_operator_lcao/overlap.cpp +++ b/source/source_lcao/module_operator_lcao/overlap.cpp @@ -9,6 +9,8 @@ #include "source_lcao/module_operator_lcao/operator_lcao.h" #include "source_lcao/module_rt/td_folding.h" #include "source_lcao/module_rt/td_info.h" +#include +#include #include #include @@ -438,11 +440,25 @@ void hamilt::Overlap>::output_SR_async_csr(const in if (istep <= 0) { ofs.open(filename); - } + if (!ofs.is_open()) + { + ModuleBase::WARNING_QUIT( + "hamilt::Overlap::output_SR_async_csr", + "Failed to open file for writing: " + filename + ); + } + } else { ofs.open(filename, std::ios::app); - } + if (!ofs.is_open()) + { + ModuleBase::WARNING_QUIT( + "hamilt::Overlap::output_SR_async_csr", + "Failed to open file for writing: " + filename + ); + } + } // Write header information ofs << "IONIC_STEP: " << istep + 1 << std::endl; diff --git a/source/source_lcao/module_ri/module_exx_symmetry/irreducible_sector.cpp b/source/source_lcao/module_ri/module_exx_symmetry/irreducible_sector.cpp index f93b8aa040..ad1864f59b 100644 --- a/source/source_lcao/module_ri/module_exx_symmetry/irreducible_sector.cpp +++ b/source/source_lcao/module_ri/module_exx_symmetry/irreducible_sector.cpp @@ -1,5 +1,7 @@ #include "source_lcao/module_ri/module_exx_symmetry/irreducible_sector.h" #include "source_io/module_parameter/parameter.h" +#include +#include namespace ModuleSymmetry { TC Irreducible_Sector::rotate_R(const Symmetry& symm, @@ -148,8 +150,15 @@ namespace ModuleSymmetry if(GlobalV::MY_RANK == 0) { std::ofstream ofs; - ofs.open(PARAM.globalv.global_out_dir + "irreducible_sector.txt"); - for (auto& irap_irR : this->irreducible_sector_) + ofs.open(PARAM.globalv.global_out_dir + "irreducible_sector.txt"); + if (!ofs.is_open()) + { + ModuleBase::WARNING_QUIT( + "Irreducible_Sector::write_irreducible_sector", + "Failed to open file for writing: " + PARAM.globalv.global_out_dir + "irreducible_sector.txt" + ); + } + for (auto& irap_irR : this->irreducible_sector_) { for (auto& irR : irap_irR.second){ofs << "atompair (" << irap_irR.first.first << ", " << irap_irR.first.second << "), R = (" << irR[0] << ", " << irR[1] << ", " << irR[2] << ") \n";} } diff --git a/source/source_lcao/module_rt/td_info.cpp b/source/source_lcao/module_rt/td_info.cpp index a51840cb66..fc51feeab5 100644 --- a/source/source_lcao/module_rt/td_info.cpp +++ b/source/source_lcao/module_rt/td_info.cpp @@ -2,6 +2,8 @@ #include "source_estate/module_pot/H_TDDFT_pw.h" #include "source_io/module_parameter/parameter.h" +#include +#include bool TD_info::out_mat_R = false; bool TD_info::out_vecpot = false; @@ -72,13 +74,28 @@ void TD_info::output_cart_At(const std::string& out_dir) if (istep == estep_shift) { ofs.open(out_file.c_str(), std::ofstream::out); - ofs << std::left << std::setw(8) << "#istep" << std::setw(15) << "A_x" << std::setw(15) << "A_y" + if (!ofs.is_open()) + { + ModuleBase::WARNING_QUIT( + "TD_info::output_cart_At", + "Failed to open file for writing: " + out_file + ); + } + ofs << std::left << std::setw(8) << "#istep" << std::setw(15) << "A_x" << std::setw(15) << "A_y" << std::setw(15) << "A_z" << std::endl; } else { ofs.open(out_file.c_str(), std::ofstream::app); - } + if (!ofs.is_open()) + { + ModuleBase::WARNING_QUIT( + "TD_info::output_cart_At", + "Failed to open file for writing: " + out_file + ); + } + + } // output the vector potential ofs << std::left << std::setw(8) << istep; // divide by 2.0 to get the atomic unit