15template <
typename T,
typename Device = base_device::DEVICE_CPU>
41 virtual void iter_init(
UnitCell& ucell,
const int istep,
const int iter)
override;
Definition esolver_ks_pw.h:17
bool already_initpsi
Definition esolver_ks_pw.h:70
base_device::AbacusDevice_t device
Definition esolver_ks_pw.h:64
virtual void hamilt2rho_single(UnitCell &ucell, const int istep, const int iter, const double ethr) override
Definition esolver_ks_pw.cpp:480
Exx_Helper< T, Device > exx_helper
Definition esolver_ks_pw.h:36
virtual void others(UnitCell &ucell, const int istep) override
Definition pw_others.cpp:48
void cal_stress(UnitCell &ucell, ModuleBase::matrix &stress) override
calcualte stress of given cell
Definition esolver_ks_pw.cpp:860
virtual void iter_finish(UnitCell &ucell, const int istep, int &iter, bool &conv_esolver) override
Something to do after hamilt2rho function in each iter loop.
Definition esolver_ks_pw.cpp:580
Device * ctx
Definition esolver_ks_pw.h:62
virtual void after_scf(UnitCell &ucell, const int istep, const bool conv_esolver) override
Something to do after SCF iterations when SCF is converged or comes to the max iter step.
Definition esolver_ks_pw.cpp:687
psi::Psi< std::complex< double >, Device > * __kspw_psi
Definition esolver_ks_pw.h:68
void before_all_runners(UnitCell &ucell, const Input_para &inp) override
Initialize of the first-principels energy solver.
Definition esolver_ks_pw.cpp:135
double cal_energy() override
calculate total energy of a given system
Definition esolver_ks_pw.cpp:824
virtual void allocate_hamilt(const UnitCell &ucell)
Definition esolver_ks_pw.cpp:119
psi::PSIInit< T, Device > * p_psi_init
Definition esolver_ks_pw.h:60
void cal_force(UnitCell &ucell, ModuleBase::matrix &force) override
calcualte forces for the atoms in the given cell
Definition esolver_ks_pw.cpp:830
typename GetTypeReal< T >::type Real
Definition esolver_ks_pw.h:19
virtual void deallocate_hamilt()
Definition esolver_ks_pw.cpp:125
~ESolver_KS_PW()
Definition esolver_ks_pw.cpp:78
void after_all_runners(UnitCell &ucell) override
perform post processing calculations
Definition esolver_ks_pw.cpp:895
virtual void update_pot(UnitCell &ucell, const int istep, const int iter, const bool conv_esolver) override
<Temporary> It should be replaced by a function in Hamilt Class
Definition esolver_ks_pw.cpp:562
virtual void iter_init(UnitCell &ucell, const int istep, const int iter) override
Something to do before hamilt2rho function in each iter loop.
Definition esolver_ks_pw.cpp:402
ESolver_KS_PW()
Definition esolver_ks_pw.cpp:55
virtual void before_scf(UnitCell &ucell, const int istep) override
Something to do before SCF iterations.
Definition esolver_ks_pw.cpp:246
psi::Psi< T, Device > * kspw_psi
Definition esolver_ks_pw.h:66
Definition esolver_ks.h:25
bool conv_esolver
Definition esolver.h:44
#define T
Definition exp.cpp:237
plane wave basis
Definition opt_test_tools.cpp:93
AbacusDevice_t
Definition types.h:12
Definition exx_helper.h:13
T type
Definition macros.h:8
Definition memory_op.h:61