diff --git a/source/source_esolver/esolver_ks_lcao_tddft.cpp b/source/source_esolver/esolver_ks_lcao_tddft.cpp index 907a8c3bb1..84999da0fd 100644 --- a/source/source_esolver/esolver_ks_lcao_tddft.cpp +++ b/source/source_esolver/esolver_ks_lcao_tddft.cpp @@ -331,6 +331,7 @@ void ESolver_KS_LCAO_TDDFT::iter_finish( << std::setw(12) << this->pelec->wg(ik, ib) << std::endl; } } + GlobalV::ofs_running << std::endl; } ESolver_KS_LCAO, TR>::iter_finish(ucell, istep, iter, conv_esolver); diff --git a/source/source_io/dipole_io.h b/source/source_io/dipole_io.h index fc3c775a24..b97810bf75 100644 --- a/source/source_io/dipole_io.h +++ b/source/source_io/dipole_io.h @@ -1,10 +1,10 @@ #ifndef DIPOLE_IO_H #define DIPOLE_IO_H -#include - #include "source_basis/module_pw/pw_basis.h" +#include + namespace ModuleIO { void write_dipole(const UnitCell& ucell, @@ -13,10 +13,9 @@ void write_dipole(const UnitCell& ucell, const int& is, const int& istep, const std::string& fn, - const int& precision = 11, - const bool for_plot = false); + const int& precision = 11); -double prepare(const UnitCell &cell, int &dir); +double prepare(const UnitCell& cell, int& dir); } // namespace ModuleIO diff --git a/source/source_io/write_dipole.cpp b/source/source_io/write_dipole.cpp index b99370826f..b10a754f44 100644 --- a/source/source_io/write_dipole.cpp +++ b/source/source_io/write_dipole.cpp @@ -1,8 +1,8 @@ #include "source_base/parallel_reduce.h" #include "source_estate/module_charge/charge.h" +#include "source_io/dipole_io.h" #include "source_lcao/module_rt/evolve_elec.h" #include "source_pw/module_pwdft/global.h" -#include "source_io/dipole_io.h" // fuxiang add 2017-03-15 void ModuleIO::write_dipole(const UnitCell& ucell, @@ -11,8 +11,7 @@ void ModuleIO::write_dipole(const UnitCell& ucell, const int& is, const int& istep, const std::string& fn, - const int& precision, - const bool for_plot) + const int& precision) { ModuleBase::TITLE("ModuleIO", "write_dipole"); @@ -51,9 +50,9 @@ void ModuleIO::write_dipole(const UnitCell& ucell, int index = i * rhopw->ny * rhopw->nz + j * rhopw->nz + k; double rho_val = rho_save[index]; - dipole_elec_x += rho_val * i * lat_factor_x; - dipole_elec_y += rho_val * j * lat_factor_y; - dipole_elec_z += rho_val * k * lat_factor_z; + dipole_elec_x -= rho_val * i * lat_factor_x; + dipole_elec_y -= rho_val * j * lat_factor_y; + dipole_elec_z -= rho_val * k * lat_factor_z; } } } @@ -79,9 +78,9 @@ void ModuleIO::write_dipole(const UnitCell& ucell, double y = (double)j / rhopw->ny; double z = (double)k / rhopw->nz; - dipole_elec[0] += rho_save[ir] * x; - dipole_elec[1] += rho_save[ir] * y; - dipole_elec[2] += rho_save[ir] * z; + dipole_elec[0] -= rho_save[ir] * x; + dipole_elec[1] -= rho_save[ir] * y; + dipole_elec[2] -= rho_save[ir] * z; } Parallel_Reduce::reduce_pool(dipole_elec[0]); @@ -92,12 +91,12 @@ void ModuleIO::write_dipole(const UnitCell& ucell, dipole_elec[i] *= ucell.lat0 / bmod[i] * ucell.omega / rhopw->nxyz; } - std::cout << std::setprecision(15) << "dipole_elec_x: " << dipole_elec[0] << std::endl; - std::cout << std::setprecision(15) << "dipole_elec_y: " << dipole_elec[1] << std::endl; - std::cout << std::setprecision(15) << "dipole_elec_z: " << dipole_elec[2] << std::endl; + ModuleBase::GlobalFunc::OUT(GlobalV::ofs_running, "Electronic dipole moment P_elec_x(t)", dipole_elec[0]); + ModuleBase::GlobalFunc::OUT(GlobalV::ofs_running, "Electronic dipole moment P_elec_y(t)", dipole_elec[1]); + ModuleBase::GlobalFunc::OUT(GlobalV::ofs_running, "Electronic dipole moment P_elec_z(t)", dipole_elec[2]); - ofs << std::setprecision(8) << istep << " " << dipole_elec[0] << " " << dipole_elec[1] << " " << dipole_elec[2] - << std::endl; + ofs << std::setprecision(precision) << istep << " " << dipole_elec[0] << " " << dipole_elec[1] << " " + << dipole_elec[2] << std::endl; double dipole_ion[3] = {0.0}; double dipole_sum = 0.0; @@ -116,20 +115,23 @@ void ModuleIO::write_dipole(const UnitCell& ucell, dipole_ion[i] *= ucell.lat0 / bmod[i]; //* ModuleBase::FOUR_PI / ucell.omega; } - std::cout << std::setprecision(8) << "dipole_ion_x: " << dipole_ion[0] << std::endl; - std::cout << std::setprecision(8) << "dipole_ion_y: " << dipole_ion[1] << std::endl; - std::cout << std::setprecision(8) << "dipole_ion_z: " << dipole_ion[2] << std::endl; + ModuleBase::GlobalFunc::OUT(GlobalV::ofs_running, "Ionic dipole moment P_ion_x(t)", dipole_ion[0]); + ModuleBase::GlobalFunc::OUT(GlobalV::ofs_running, "Ionic dipole moment P_ion_y(t)", dipole_ion[1]); + ModuleBase::GlobalFunc::OUT(GlobalV::ofs_running, "Ionic dipole moment P_ion_z(t)", dipole_ion[2]); double dipole[3] = {0.0}; for (int i = 0; i < 3; ++i) { - dipole[i] = dipole_ion[i] - dipole_elec[i]; + dipole[i] = dipole_ion[i] + dipole_elec[i]; } - std::cout << std::setprecision(8) << "dipole_x: " << dipole[0] << std::endl; - std::cout << std::setprecision(8) << "dipole_y: " << dipole[1] << std::endl; - std::cout << std::setprecision(8) << "dipole_z: " << dipole[2] << std::endl; + + ModuleBase::GlobalFunc::OUT(GlobalV::ofs_running, "Total dipole moment P_tot_x(t)", dipole[0]); + ModuleBase::GlobalFunc::OUT(GlobalV::ofs_running, "Total dipole moment P_tot_y(t)", dipole[1]); + ModuleBase::GlobalFunc::OUT(GlobalV::ofs_running, "Total dipole moment P_tot_z(t)", dipole[2]); + dipole_sum = sqrt(dipole[0] * dipole[0] + dipole[1] * dipole[1] + dipole[2] * dipole[2]); - std::cout << std::setprecision(8) << "dipole_sum: " << dipole_sum << std::endl; + + ModuleBase::GlobalFunc::OUT(GlobalV::ofs_running, "Total dipole moment norm |P_tot(t)|", dipole_sum); #endif diff --git a/source/source_lcao/module_rt/evolve_psi.cpp b/source/source_lcao/module_rt/evolve_psi.cpp index db59dcd44c..d356ec209a 100644 --- a/source/source_lcao/module_rt/evolve_psi.cpp +++ b/source/source_lcao/module_rt/evolve_psi.cpp @@ -2,18 +2,18 @@ #include "band_energy.h" #include "middle_hamilt.h" +#include "norm_psi.h" +#include "propagator.h" +#include "solve_propagation.h" #include "source_base/lapack_connector.h" #include "source_base/module_container/ATen/kernels/blas.h" // cuBLAS handle #include "source_base/module_container/ATen/kernels/lapack.h" // cuSOLVER handle #include "source_base/scalapack_connector.h" #include "source_esolver/esolver_ks_lcao_tddft.h" // use gatherMatrix +#include "source_io/module_parameter/parameter.h" #include "source_lcao/hamilt_lcao.h" #include "source_pw/module_pwdft/global.h" -#include "source_io/module_parameter/parameter.h" -#include "norm_psi.h" -#include "propagator.h" #include "upsi.h" -#include "solve_propagation.h" #include @@ -34,10 +34,10 @@ void evolve_psi(const int nband, const int print_matrix) { ModuleBase::TITLE("Evolve_psi", "evolve_psi"); - ofs_running << " Evolving electronic wave functions begins" << std::endl; + // ofs_running << " Evolving electronic wave functions begins" << std::endl; time_t time_start = time(nullptr); - ofs_running << " Start Time : " << ctime(&time_start); + // ofs_running << " Start Time : " << ctime(&time_start); #ifdef __MPI @@ -120,7 +120,7 @@ void evolve_psi(const int nband, time_t time_end = time(nullptr); ModuleBase::GlobalFunc::OUT_TIME("evolve(std::complex)", time_start, time_end); - ofs_running << " Evolving electronic wave functions ends" << std::endl; + // ofs_running << " Evolving electronic wave functions ends" << std::endl; return; } @@ -155,11 +155,11 @@ void evolve_psi_tensor(const int nband, ct::kernels::createGpuBlasHandle(); #endif // __CUDA - ofs_running << " evolve_psi_tensor::start " << std::endl; + // ofs_running << " evolve_psi_tensor::start " << std::endl; ModuleBase::TITLE("Evolve_psi", "evolve_psi"); time_t time_start = time(nullptr); - ofs_running << " Start Time : " << ctime(&time_start); + // ofs_running << " Start Time : " << ctime(&time_start); #ifdef __MPI @@ -305,7 +305,7 @@ void evolve_psi_tensor(const int nband, time_t time_end = time(nullptr); ModuleBase::GlobalFunc::OUT_TIME("evolve(std::complex)", time_start, time_end); - ofs_running << " evolve_psi_tensor::end " << std::endl; + // ofs_running << " evolve_psi_tensor::end " << std::endl; #if ((defined __CUDA) /* || (defined __ROCM) */) // Destroy cuBLAS & cuSOLVER handle diff --git a/source/source_lcao/module_rt/velocity_op.cpp b/source/source_lcao/module_rt/velocity_op.cpp index 603d2314de..77d8ea0fbb 100644 --- a/source/source_lcao/module_rt/velocity_op.cpp +++ b/source/source_lcao/module_rt/velocity_op.cpp @@ -40,7 +40,6 @@ void Velocity_op::initialize_vcomm_r(const Grid_Driver* GridD, const Paralle ModuleBase::timer::tick("Velocity_op", "initialize_vcomm_r"); if(!init_done) { - std::cout << "init_r_overlap_nonlocal" <