|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <esolver_ks_lcao.h>
Public Member Functions | |
| ESolver_KS_LCAO () | |
| ~ESolver_KS_LCAO () | |
| void | before_all_runners (UnitCell &ucell, const Input_para &inp) override |
| Initialize of the first-principels energy solver. | |
| double | cal_energy () override |
| calculate total energy of a given system | |
| void | cal_force (UnitCell &ucell, ModuleBase::matrix &force) override |
| calcualte forces for the atoms in the given cell | |
| void | cal_stress (UnitCell &ucell, ModuleBase::matrix &stress) override |
| calcualte stress of given cell | |
| void | after_all_runners (UnitCell &ucell) override |
| perform post processing calculations | |
| const Record_adj & | get_RA () const |
| const Grid_Driver & | get_gd () const |
| const Parallel_Orbitals & | get_pv () const |
| const std::unique_ptr< ModuleGint::GintInfo > & | get_gint_info () const |
| const TwoCenterBundle & | get_two_center_bundle () const |
| const rdmft::RDMFT< TK, TR > & | get_rdmft_solver () const |
| const LCAO_Orbitals & | get_orb () const |
| const ModuleBase::matrix & | get_scs () const |
| const Setup_DeePKS< TK > & | get_deepks () const |
| const Exx_NAO< TK > & | get_exx_nao () const |
Public Member Functions inherited from ModuleESolver::ESolver_KS< TK > | |
| ESolver_KS () | |
| Constructor. | |
| virtual | ~ESolver_KS () |
| Deconstructor. | |
| virtual void | runner (UnitCell &ucell, const int istep) override |
| run energy solver | |
Public Member Functions inherited from ModuleESolver::ESolver_FP | |
| ESolver_FP () | |
| virtual | ~ESolver_FP () |
Public Member Functions inherited from ModuleESolver::ESolver | |
| ESolver () | |
| virtual | ~ESolver () |
Protected Member Functions | |
| virtual void | before_scf (UnitCell &ucell, const int istep) override |
| Something to do before SCF iterations. | |
| virtual void | iter_init (UnitCell &ucell, const int istep, const int iter) override |
| Something to do before hamilt2rho function in each iter loop. | |
| virtual void | hamilt2rho_single (UnitCell &ucell, const int istep, const int iter, const double ethr) override |
| 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. | |
| 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. | |
| virtual void | others (UnitCell &ucell, const int istep) override |
Protected Member Functions inherited from ModuleESolver::ESolver_KS< TK > | |
| void | hamilt2rho (UnitCell &ucell, const int istep, const int iter, const double ethr) |
Protected Attributes | |
| Record_adj | RA |
| Store information about Adjacent Atoms. | |
| Grid_Driver | gd |
| Store information about Adjacent Atoms. | |
| Parallel_Orbitals | pv |
| NAO orbitals: 2d block-cyclic distribution info. | |
| std::unique_ptr< ModuleGint::GintInfo > | gint_info_ |
| GintInfo: used to store some basic infomation about module_gint. | |
| TwoCenterBundle | two_center_bundle_ |
| NAO orbitals: two-center integrations. | |
| LCAO_domain::Setup_DM< TK > | dmat |
| Add density matrix class, mohan add 2025-10-30. | |
| rdmft::RDMFT< TK, TR > | rdmft_solver |
| For RDMFT calculations, added by jghan, 2024-03-16. | |
| LCAO_Orbitals | orb_ |
| NAO: store related information. | |
| ModuleBase::matrix | scs |
| bool | have_force = false |
| Setup_DeePKS< TK > | deepks |
| Exx_NAO< TK > | exx_nao |
Protected Attributes inherited from ModuleESolver::ESolver_KS< TK > | |
| hamilt::Hamilt< TK, base_device::DEVICE_CPU > * | p_hamilt |
| Hamiltonian. | |
| ModulePW::PW_Basis_K * | pw_wfc |
| PW for wave functions, only used in KSDFT, not in OFDFT. | |
| Charge_Mixing * | p_chgmix |
| Charge mixing method. | |
| pseudopot_cell_vnl | ppcell |
| nonlocal pseudopotentials | |
| psi::Psi< TK > * | psi |
| Electronic wavefunctions. | |
| std::string | basisname |
| double | esolver_KS_ne |
| esolver_ks_lcao.cpp | |
| double | diag_ethr |
| number of electrons | |
| double | scf_thr |
| the threshold for diagonalization | |
| double | scf_ene_thr |
| scf density threshold | |
| double | drho |
| scf energy threshold | |
| double | hsolver_error |
| the difference between rho_in (before HSolver) and rho_out (After HSolver) | |
| int | maxniter |
| the error of HSolver | |
| int | niter |
| maximum iter steps for scf | |
| bool | oscillate_esolver |
| iter steps actually used in scf | |
| bool | scf_nmax_flag |
Protected Attributes inherited from ModuleESolver::ESolver_FP | |
| elecstate::ElecState * | pelec = nullptr |
| These pointers will be deleted in the free_pointers() function every ion step. | |
| K_Vectors | kv |
| K points in Brillouin zone. | |
| Charge | chr |
| Electorn charge density. | |
| ModulePW::PW_Basis * | pw_rho |
| ModulePW::PW_Basis * | pw_rhod |
| ModulePW::PW_Basis_Big * | pw_big |
| dense grid for USPP | |
| Parallel_Grid | Pgrid |
| parallel for rho grid | |
| Structure_Factor | sf |
| Structure factors that used with plane-wave basis set. | |
| pseudopot_cell_vl | locpp |
| local pseudopotentials | |
| Charge_Extra | CE |
| charge extrapolation method | |
| surchem | solvent |
| solvent model | |
| bool | pw_rho_flag = false |
| flag for pw_rho, 0: not initialized, 1: initialized | |
| double | iter_time |
| the start time of scf iteration | |
Friends | |
| class | LR::ESolver_LR< double, double > |
| class | LR::ESolver_LR< std::complex< double >, double > |
Additional Inherited Members | |
Public Attributes inherited from ModuleESolver::ESolver | |
| bool | conv_esolver = true |
| std::string | classname |
| ModuleESolver::ESolver_KS_LCAO< TK, TR >::ESolver_KS_LCAO | ( | ) |
| ModuleESolver::ESolver_KS_LCAO< TK, TR >::~ESolver_KS_LCAO | ( | ) |
|
overridevirtual |
perform post processing calculations
Reimplemented from ModuleESolver::ESolver_KS< TK >.
|
overrideprotectedvirtual |
Something to do after SCF iterations when SCF is converged or comes to the max iter step.
1) call after_scf() of ESolver_KS
2) output of lcao every few ionic steps
3) Clean up RA, which is used to serach for adjacent atoms
Reimplemented from ModuleESolver::ESolver_KS< TK >.
Reimplemented in ModuleESolver::ESolver_KS_LCAO_TDDFT< TR, Device >.
|
overridevirtual |
Initialize of the first-principels energy solver.
read psi from file
1) setup "before_all_runniers" in ESolver_FP
2) setup some parameters
3) setup charge mixing
4) setup Exc for the first element '0' (all elements have same exc)
5) setup the charge mixing parameters
6) symmetry analysis should be performed every time the cell is changed
7) setup k points in the Brillouin zone according to symmetry.
8) print information
9) setup plane wave for electronic wave functions
10) parallel of FFT grid
11) calculate the structure factor
Reimplemented from ModuleESolver::ESolver_KS< TK >.
Reimplemented in ModuleESolver::ESolver_KS_LCAO_TDDFT< TR, Device >.
|
overrideprotectedvirtual |
Something to do before SCF iterations.
1) call before_scf() of ESolver_KS.
2) find search radius
3) use search_radius to search adj atoms
4) initialize NAO basis set
Reimplemented from ModuleESolver::ESolver_KS< TK >.
Reimplemented in ModuleESolver::ESolver_DoubleXC< TK, TR >.
|
overridevirtual |
calculate total energy of a given system
Implements ModuleESolver::ESolver.
|
overridevirtual |
calcualte forces for the atoms in the given cell
Implements ModuleESolver::ESolver.
|
overridevirtual |
calcualte stress of given cell
Implements ModuleESolver::ESolver.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
overrideprotectedvirtual |
Reimplemented from ModuleESolver::ESolver_KS< TK >.
Reimplemented in ModuleESolver::ESolver_KS_LCAO_TDDFT< TR, Device >.
|
overrideprotectedvirtual |
Something to do after hamilt2rho function in each iter loop.
Reimplemented from ModuleESolver::ESolver_KS< TK >.
Reimplemented in ModuleESolver::ESolver_DoubleXC< TK, TR >.
|
overrideprotectedvirtual |
Something to do before hamilt2rho function in each iter loop.
Reimplemented from ModuleESolver::ESolver_KS< TK >.
|
overrideprotectedvirtual |
deal with exx and other calculation than scf/md/relax/cell-relax: such as nscf, get_wf and get_pchg
Reimplemented from ModuleESolver::ESolver.
|
friend |
|
friend |
|
protected |
|
protected |
Add density matrix class, mohan add 2025-10-30.
|
protected |
|
protected |
Store information about Adjacent Atoms.
|
protected |
GintInfo: used to store some basic infomation about module_gint.
|
protected |
|
protected |
NAO: store related information.
|
protected |
NAO orbitals: 2d block-cyclic distribution info.
|
protected |
Store information about Adjacent Atoms.
|
protected |
For RDMFT calculations, added by jghan, 2024-03-16.
|
protected |
|
protected |
NAO orbitals: two-center integrations.