#include <esolver_fp.h>
◆ ESolver_FP()
| ModuleESolver::ESolver_FP::ESolver_FP |
( |
| ) |
|
◆ ~ESolver_FP()
| ModuleESolver::ESolver_FP::~ESolver_FP |
( |
| ) |
|
|
virtual |
◆ after_all_runners()
| void ModuleESolver::ESolver_FP::after_all_runners |
( |
UnitCell & |
ucell | ) |
|
|
overridevirtual |
perform post processing calculations
Implements ModuleESolver::ESolver.
Reimplemented in ModuleESolver::ESolver_DM2rho< TK, TR >, ModuleESolver::ESolver_GetS, ModuleESolver::ESolver_KS< T, Device >, ModuleESolver::ESolver_KS< std::complex< double > >, ModuleESolver::ESolver_KS< T, base_device::DEVICE_CPU >, ModuleESolver::ESolver_KS< TK >, ModuleESolver::ESolver_KS_LCAO< TK, TR >, ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR >, ModuleESolver::ESolver_KS_LIP< T >, ModuleESolver::ESolver_KS_PW< T, Device >, ModuleESolver::ESolver_KS_PW< T, base_device::DEVICE_CPU >, ModuleESolver::ESolver_OF, ModuleESolver::ESolver_SDFT_PW< T, Device >, and LR::ESolver_LR< T, TR >.
◆ after_scf()
| void ModuleESolver::ESolver_FP::after_scf |
( |
UnitCell & |
ucell, |
|
|
const int |
istep, |
|
|
const bool |
conv_esolver |
|
) |
| |
|
protectedvirtual |
Output convergence information
Write Fermi energy
Update delta_rho for charge extrapolation
print out charge density, potential, elf, etc.
Reimplemented in ModuleESolver::ESolver_KS< T, Device >, ModuleESolver::ESolver_KS< std::complex< double > >, ModuleESolver::ESolver_KS< T, base_device::DEVICE_CPU >, ModuleESolver::ESolver_KS< TK >, ModuleESolver::ESolver_KS_LCAO< TK, TR >, ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR >, ModuleESolver::ESolver_KS_LCAO_TDDFT< TR, Device >, ModuleESolver::ESolver_KS_PW< T, Device >, ModuleESolver::ESolver_KS_PW< T, base_device::DEVICE_CPU >, and ModuleESolver::ESolver_SDFT_PW< T, Device >.
◆ before_all_runners()
| void ModuleESolver::ESolver_FP::before_all_runners |
( |
UnitCell & |
ucell, |
|
|
const Input_para & |
inp |
|
) |
| |
|
overridevirtual |
Initialize of the first-principels energy solver.
read pseudopotentials
Implements ModuleESolver::ESolver.
Reimplemented in ModuleESolver::ESolver_DM2rho< TK, TR >, ModuleESolver::ESolver_DoubleXC< TK, TR >, ModuleESolver::ESolver_GetS, ModuleESolver::ESolver_KS< T, Device >, ModuleESolver::ESolver_KS< std::complex< double > >, ModuleESolver::ESolver_KS< T, base_device::DEVICE_CPU >, ModuleESolver::ESolver_KS< TK >, ModuleESolver::ESolver_KS_LCAO< TK, TR >, ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR >, ModuleESolver::ESolver_KS_LCAO_TDDFT< TR, Device >, ModuleESolver::ESolver_KS_LIP< T >, ModuleESolver::ESolver_KS_PW< T, Device >, ModuleESolver::ESolver_KS_PW< T, base_device::DEVICE_CPU >, ModuleESolver::ESolver_OF, ModuleESolver::ESolver_SDFT_PW< T, Device >, and LR::ESolver_LR< T, TR >.
◆ before_scf()
| void ModuleESolver::ESolver_FP::before_scf |
( |
UnitCell & |
ucell, |
|
|
const int |
istep |
|
) |
| |
|
protectedvirtual |
calculate D2 or D3 vdW
calculate ewald energy
set direction of magnetism, used in non-collinear case
output the initial charge density and potential
Reimplemented in ModuleESolver::ESolver_DoubleXC< TK, TR >, ModuleESolver::ESolver_KS< T, Device >, ModuleESolver::ESolver_KS< std::complex< double > >, ModuleESolver::ESolver_KS< T, base_device::DEVICE_CPU >, ModuleESolver::ESolver_KS< TK >, ModuleESolver::ESolver_KS_LCAO< TK, TR >, ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR >, ModuleESolver::ESolver_KS_LIP< T >, ModuleESolver::ESolver_KS_PW< T, Device >, ModuleESolver::ESolver_KS_PW< T, base_device::DEVICE_CPU >, and ModuleESolver::ESolver_SDFT_PW< T, Device >.
◆ iter_finish()
| void ModuleESolver::ESolver_FP::iter_finish |
( |
UnitCell & |
ucell, |
|
|
const int |
istep, |
|
|
int & |
iter, |
|
|
bool & |
conv_esolver |
|
) |
| |
|
protectedvirtual |
output charge density in G-space, or if available, kinetic energy density in G-space
Reimplemented in ModuleESolver::ESolver_DoubleXC< TK, TR >, ModuleESolver::ESolver_KS< T, Device >, ModuleESolver::ESolver_KS< std::complex< double > >, ModuleESolver::ESolver_KS< T, base_device::DEVICE_CPU >, ModuleESolver::ESolver_KS< TK >, ModuleESolver::ESolver_KS_LCAO< TK, TR >, ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR >, ModuleESolver::ESolver_KS_LIP< T >, ModuleESolver::ESolver_KS_PW< T, Device >, ModuleESolver::ESolver_KS_PW< T, base_device::DEVICE_CPU >, and ModuleESolver::ESolver_SDFT_PW< T, Device >.
◆ CE
charge extrapolation method
◆ chr
| Charge ModuleESolver::ESolver_FP::chr |
|
protected |
◆ iter_time
| double ModuleESolver::ESolver_FP::iter_time |
|
protected |
the start time of scf iteration
◆ kv
K points in Brillouin zone.
◆ locpp
◆ pelec
These pointers will be deleted in the free_pointers() function every ion step.
Electronic states
◆ Pgrid
◆ pw_big
dense grid for USPP
[temp] pw_basis_big class
◆ pw_rho
pw_rho: Plane-wave basis set for charge density pw_rhod: same as pw_rho for NCPP. Here 'd' stands for 'dense', dense grid for for uspp, used for ultrasoft augmented charge density. charge density and potential are defined on dense grids, but effective potential needs to be interpolated on smooth grids in order to compute Veff|psi>
◆ pw_rho_flag
| bool ModuleESolver::ESolver_FP::pw_rho_flag = false |
|
protected |
flag for pw_rho, 0: not initialized, 1: initialized
◆ pw_rhod
◆ sf
Structure factors that used with plane-wave basis set.
◆ solvent
| surchem ModuleESolver::ESolver_FP::solvent |
|
protected |
The documentation for this class was generated from the following files:
- /home/runner/work/abacus-develop/abacus-develop/source/source_esolver/esolver_fp.h
- /home/runner/work/abacus-develop/abacus-develop/source/source_esolver/esolver_fp.cpp