|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <esolver_ks_lcao_tddft.h>
Public Member Functions | |
| ESolver_KS_LCAO_TDDFT () | |
| ~ESolver_KS_LCAO_TDDFT () | |
| void | before_all_runners (UnitCell &ucell, const Input_para &inp) override |
| Initialize of the first-principels energy solver. | |
Public Member Functions inherited from ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR > | |
| ESolver_KS_LCAO () | |
| ~ESolver_KS_LCAO () | |
| 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< std::complex< double >, TR > & | get_rdmft_solver () const |
| const LCAO_Orbitals & | get_orb () const |
| const ModuleBase::matrix & | get_scs () const |
| const Setup_DeePKS< std::complex< double > > & | get_deepks () const |
| const Exx_NAO< std::complex< double > > & | get_exx_nao () const |
Public Member Functions inherited from ModuleESolver::ESolver_KS< T, Device > | |
| ESolver_KS () | |
| Constructor. | |
| virtual | ~ESolver_KS () |
| Deconstructor. | |
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 | runner (UnitCell &cell, const int istep) override |
| run energy solver | |
| virtual void | hamilt2rho_single (UnitCell &ucell, const int istep, const int iter, const double ethr) override |
| void | store_h_s_psi (UnitCell &ucell, const int istep, const int iter, const bool conv_esolver) |
| void | iter_finish (UnitCell &ucell, const int istep, const int estep, const int estep_max, int &iter, bool &conv_esolver) |
| 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. | |
| void | print_step () |
Protected Member Functions inherited from ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR > | |
| 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 | 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 | others (UnitCell &ucell, const int istep) override |
Protected Member Functions inherited from ModuleESolver::ESolver_KS< T, Device > | |
| void | hamilt2rho (UnitCell &ucell, const int istep, const int iter, const double ethr) |
Protected Attributes | |
| psi::Psi< std::complex< double > > * | psi_laststep = nullptr |
| Wave function for all k-points of last time step. | |
| ct::Tensor | Hk_laststep = ct::Tensor(ct::DataType::DT_COMPLEX_DOUBLE) |
| Hamiltonian for all k-points of last time step. | |
| ct::Tensor | Sk_laststep = ct::Tensor(ct::DataType::DT_COMPLEX_DOUBLE) |
| Overlap matrix for all k-points of last time step. | |
| bool | use_tensor = false |
| Control heterogeneous computing of the TDDFT solver. | |
| bool | use_lapack = false |
| int | totstep = -1 |
| Total steps for evolving the wave function. | |
| Velocity_op< TR > * | velocity_mat = nullptr |
| Velocity matrix for calculating current. | |
| TD_info * | td_p = nullptr |
| bool | restart_done = false |
| Restart flag. | |
Protected Attributes inherited from ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR > | |
| 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< std::complex< double > > | dmat |
| Add density matrix class, mohan add 2025-10-30. | |
| rdmft::RDMFT< std::complex< double >, 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 |
| Setup_DeePKS< std::complex< double > > | deepks |
| Exx_NAO< std::complex< double > > | exx_nao |
Protected Attributes inherited from ModuleESolver::ESolver_KS< T, Device > | |
| hamilt::Hamilt< T, Device > * | p_hamilt = nullptr |
| Hamiltonian. | |
| ModulePW::PW_Basis_K * | pw_wfc = nullptr |
| PW for wave functions, only used in KSDFT, not in OFDFT. | |
| Charge_Mixing * | p_chgmix = nullptr |
| Charge mixing method. | |
| pseudopot_cell_vnl | ppcell |
| nonlocal pseudopotentials | |
| psi::Psi< T > * | psi = nullptr |
| Electronic wavefunctions. | |
| std::string | basisname |
| double | esolver_KS_ne = 0.0 |
| 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 = false |
| iter steps actually used in scf | |
| bool | scf_nmax_flag = false |
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 | |
Static Protected Attributes | |
| static constexpr ct::DeviceType | ct_device_type_hs = ct::DeviceType::CpuDevice |
Private Member Functions | |
| void | weight_dm_rho (const UnitCell &ucell) |
Additional Inherited Members | |
Public Attributes inherited from ModuleESolver::ESolver | |
| bool | conv_esolver = true |
| std::string | classname |
| ModuleESolver::ESolver_KS_LCAO_TDDFT< TR, Device >::ESolver_KS_LCAO_TDDFT | ( | ) |
| ModuleESolver::ESolver_KS_LCAO_TDDFT< TR, Device >::~ESolver_KS_LCAO_TDDFT | ( | ) |
|
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_LCAO< std::complex< double >, TR >.
|
overridevirtual |
Initialize of the first-principels energy solver.
read psi from file
Reimplemented from ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR >.
|
overrideprotectedvirtual |
Reimplemented from ModuleESolver::ESolver_KS_LCAO< std::complex< double >, TR >.
|
protected |
|
protected |
|
overrideprotectedvirtual |
run energy solver
Reimplemented from ModuleESolver::ESolver_KS< T, Device >.
|
protected |
|
private |
|
staticconstexprprotected |
|
protected |
Hamiltonian for all k-points of last time step.
|
protected |
Wave function for all k-points of last time step.
|
protected |
Restart flag.
|
protected |
Overlap matrix for all k-points of last time step.
|
protected |
|
protected |
Total steps for evolving the wave function.
|
protected |
|
protected |
Control heterogeneous computing of the TDDFT solver.
|
protected |
Velocity matrix for calculating current.