|
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. | |
| LCAO_Orbitals | orb_ |
| NAO: store related information. | |
| TwoCenterBundle | two_center_bundle_ |
| NAO orbitals: two-center integrations. | |
| LCAO_domain::Setup_DM< TK > | dmat |
| Add density matrix class, mohan add 2025-10-30. | |
| Setup_DeePKS< TK > | deepks |
| Exx_NAO< TK > | exx_nao |
| rdmft::RDMFT< TK, TR > | rdmft_solver |
| For RDMFT calculations, added by jghan, 2024-03-16. | |
| ModuleBase::matrix | scs |
| bool | have_force = false |
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. | |
| Plus_U | dftu |
| DFT+U method, mohan add 2025-11-07. | |
| 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 > |
| For linear-response TDDFT. | |
| 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.
4.1) init density matrix from file
if kpar is not divisible by nks, print a warning
init rdmft, added by jghan
1) setup "before_all_runniers" in ESolver_FP
2) setup some parameters
3) setup charge mixing
4) setup plane wave for electronic wave functions
5) read in charge density, mohan add 2025-11-28 Inititlize the charge density.
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 |
For linear-response TDDFT.
|
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.