ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
ModuleESolver::ESolver Class Referenceabstract

#include <esolver.h>

Inheritance diagram for ModuleESolver::ESolver:
Collaboration diagram for ModuleESolver::ESolver:

Public Member Functions

 ESolver ()
 
virtual ~ESolver ()
 
virtual void before_all_runners (UnitCell &ucell, const Input_para &inp)=0
 initialize the energy solver by using input parameters and cell modules
 
virtual void runner (UnitCell &cell, const int istep)=0
 run energy solver
 
virtual void after_all_runners (UnitCell &ucell)=0
 perform post processing calculations
 
virtual void others (UnitCell &ucell, const int istep)
 
virtual double cal_energy ()=0
 calculate total energy of a given system
 
virtual void cal_force (UnitCell &ucell, ModuleBase::matrix &force)=0
 calcualte forces for the atoms in the given cell
 
virtual void cal_stress (UnitCell &ucell, ModuleBase::matrix &stress)=0
 calcualte stress of given cell
 

Public Attributes

bool conv_esolver = true
 
std::string classname
 

Constructor & Destructor Documentation

◆ ESolver()

ModuleESolver::ESolver::ESolver ( )
inline

◆ ~ESolver()

virtual ModuleESolver::ESolver::~ESolver ( )
inlinevirtual

Member Function Documentation

◆ after_all_runners()

virtual void ModuleESolver::ESolver::after_all_runners ( UnitCell ucell)
pure virtual

◆ before_all_runners()

virtual void ModuleESolver::ESolver::before_all_runners ( UnitCell ucell,
const Input_para inp 
)
pure virtual

◆ cal_energy()

virtual double ModuleESolver::ESolver::cal_energy ( )
pure virtual

◆ cal_force()

virtual void ModuleESolver::ESolver::cal_force ( UnitCell ucell,
ModuleBase::matrix force 
)
pure virtual

◆ cal_stress()

virtual void ModuleESolver::ESolver::cal_stress ( UnitCell ucell,
ModuleBase::matrix stress 
)
pure virtual

◆ others()

virtual void ModuleESolver::ESolver::others ( UnitCell ucell,
const int  istep 
)
inlinevirtual

deal with exx and other calculation than scf/md/relax/cell-relax: such as nscf, get_wf and get_pchg

Reimplemented in ModuleESolver::ESolver_KS_LCAO< TK, TR >, ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR >, ModuleESolver::ESolver_KS_PW< T, Device >, and ModuleESolver::ESolver_KS_PW< T, base_device::DEVICE_CPU >.

Here is the caller graph for this function:

◆ runner()

virtual void ModuleESolver::ESolver::runner ( UnitCell cell,
const int  istep 
)
pure virtual

Member Data Documentation

◆ classname

std::string ModuleESolver::ESolver::classname

◆ conv_esolver

bool ModuleESolver::ESolver::conv_esolver = true

The documentation for this class was generated from the following file: