virtual void runner(UnitCell &cell, const int istep)=0
run energy solver
virtual void cal_stress(UnitCell &ucell, ModuleBase::matrix &stress)=0
calcualte stress of given cell
virtual ~ESolver()
Definition esolver.h:18
ESolver()
Definition esolver.h:13
virtual double cal_energy()=0
calculate total energy of a given system
virtual void after_all_runners(UnitCell &ucell)=0
perform post processing calculations
bool conv_esolver
Definition esolver.h:44
std::string classname
Definition esolver.h:46
virtual void cal_force(UnitCell &ucell, ModuleBase::matrix &force)=0
calcualte forces for the atoms in the given cell
virtual void others(UnitCell &ucell, const int istep)
Definition esolver.h:33
virtual void before_all_runners(UnitCell &ucell, const Input_para &inp)=0
initialize the energy solver by using input parameters and cell modules
plane wave basis
Definition opt_test_tools.cpp:93
ESolver * init_esolver(const Input_para &inp, UnitCell &ucell)
Determine and initialize an ESolver based on input information.
Definition esolver.cpp:125
void clean_esolver(ESolver *&pesolver, const bool lcao_cblacs_exit)
Definition esolver.cpp:326
std::string determine_type()
A subrutine called in init_esolver() This function returns type of ESolver Based on PARAM....
Definition esolver.cpp:29