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" <