#include <rdmft.h>
|
| RDMFT () |
|
| ~RDMFT () |
|
void | init (Gint_Gamma &GG_in, Gint_k &GK_in, Parallel_Orbitals &ParaV_in, UnitCell &ucell_in, const Grid_Driver &gd_in, K_Vectors &kv_in, elecstate::ElecState &pelec_in, LCAO_Orbitals &orb_in, TwoCenterBundle &two_center_bundle_in, std::string XC_func_rdmft_in, double alpha_power_in) |
| initialization of rdmft calculation
|
|
void | update_ion (UnitCell &ucell_in, ModulePW::PW_Basis &rho_basis_in, ModuleBase::matrix &vloc_in, ModuleBase::ComplexMatrix &sf_in) |
| update in ion-step and get V_TV
|
|
void | update_elec (UnitCell &ucell, const ModuleBase::matrix &occ_number_in, const psi::Psi< TK > &wfc_in, const Charge *charge_in=nullptr) |
| update in elec-step
|
|
double | cal_E_grad_wfc_occ_num () |
| obtain the gradient of total energy with respect to occupation number and wfc
|
|
void | cal_Energy (const int cal_type=1) |
|
void | update_occNumber (const ModuleBase::matrix &occ_number_in) |
| update occ_number for optimization algorithms that depend on Hamilton
|
|
void | update_wg (const ModuleBase::matrix &wg_in) |
| update occ_number for optimization algorithms that depend on Hamilton
|
|
double | run (ModuleBase::matrix &E_gradient_occNum, psi::Psi< TK > &E_gradient_wfc) |
| do all calculation after update occNum&wfc, get Etotal and the gradient of energy with respect to the occNum&wfc
|
|
◆ RDMFT()
template<typename TK , typename TR >
◆ ~RDMFT()
template<typename TK , typename TR >
◆ cal_E_grad_wfc_occ_num()
template<typename TK , typename TR >
obtain the gradient of total energy with respect to occupation number and wfc
◆ cal_Energy()
template<typename TK , typename TR >
void rdmft::RDMFT< TK, TR >::cal_Energy |
( |
const int |
cal_type = 1 | ) |
|
◆ cal_Hk_Hpsi()
template<typename TK , typename TR >
get the total Hamilton in k-space
◆ cal_V_hartree()
template<typename TK , typename TR >
◆ cal_V_TV()
template<typename TK , typename TR >
◆ cal_V_XC()
template<typename TK , typename TR >
construct V_XC based on different XC_functional( i.e. RDMFT class member XC_func_rdmft)
◆ get_DM_XC()
template<typename TK , typename TR >
void rdmft::RDMFT< TK, TR >::get_DM_XC |
( |
std::vector< std::vector< TK > > & |
DM_XC | ) |
|
|
protected |
get the special density matrix DM_XC(nk*nbasis_local*nbasis_local)
This file is to get each potential matrix in NAOs, 'V' represents the potential matrix.
◆ init()
template<typename TK , typename TR >
void rdmft::RDMFT< TK, TR >::init |
( |
Gint_Gamma & |
GG_in, |
|
|
Gint_k & |
GK_in, |
|
|
Parallel_Orbitals & |
ParaV_in, |
|
|
UnitCell & |
ucell_in, |
|
|
const Grid_Driver & |
gd_in, |
|
|
K_Vectors & |
kv_in, |
|
|
elecstate::ElecState & |
pelec_in, |
|
|
LCAO_Orbitals & |
orb_in, |
|
|
TwoCenterBundle & |
two_center_bundle_in, |
|
|
std::string |
XC_func_rdmft_in, |
|
|
double |
alpha_power_in |
|
) |
| |
initialization of rdmft calculation
◆ run()
template<typename TK , typename TR >
do all calculation after update occNum&wfc, get Etotal and the gradient of energy with respect to the occNum&wfc
◆ update_charge()
template<typename TK , typename TR >
◆ update_elec()
template<typename TK , typename TR >
◆ update_ion()
template<typename TK , typename TR >
update in ion-step and get V_TV
◆ update_occNumber()
template<typename TK , typename TR >
update occ_number for optimization algorithms that depend on Hamilton
◆ update_wg()
template<typename TK , typename TR >
update occ_number for optimization algorithms that depend on Hamilton
◆ alpha_power
template<typename TK , typename TR >
0.656 for soilds, 0.525 for dissociation of H2, 0.55~0.58 for HEG
◆ cal_E_type
template<typename TK , typename TR >
◆ charge
template<typename TK , typename TR >
◆ DM_XC_pass
template<typename TK , typename TR >
std::vector< std::vector<TK> > rdmft::RDMFT< TK, TR >::DM_XC_pass |
|
private |
◆ E_RDMFT
template<typename TK , typename TR >
E_RDMFT[4] stores ETV, Ehartree, Exc, Etotal.
◆ Eij_exx_XC
template<typename TK , typename TR >
◆ Eij_hartree
template<typename TK , typename TR >
◆ Eij_TV
template<typename TK , typename TR >
◆ Eij_XC
template<typename TK , typename TR >
◆ Etotal
template<typename TK , typename TR >
◆ Etotal_n_k
template<typename TK , typename TR >
◆ etxc
template<typename TK , typename TR >
◆ gd
template<typename TK , typename TR >
◆ GG
template<typename TK , typename TR >
◆ GK
template<typename TK , typename TR >
◆ H_wfc_dft_XC
template<typename TK , typename TR >
◆ H_wfc_exx_XC
template<typename TK , typename TR >
◆ H_wfc_hartree
template<typename TK , typename TR >
◆ H_wfc_TV
template<typename TK , typename TR >
◆ H_wfc_XC
template<typename TK , typename TR >
◆ HK_XC
template<typename TK , typename TR >
◆ HR_dft_XC
template<typename TK , typename TR >
◆ HR_exx_XC
template<typename TK , typename TR >
◆ HR_hartree
template<typename TK , typename TR >
◆ HR_TV
template<typename TK , typename TR >
Hamiltonian matrices in real space.
◆ hsk_dft_XC
template<typename TK , typename TR >
◆ hsk_exx_XC
template<typename TK , typename TR >
◆ hsk_hartree
template<typename TK , typename TR >
◆ hsk_TV
template<typename TK , typename TR >
Hamiltonian matrices in reciprocal space.
◆ kv
template<typename TK , typename TR >
◆ nbands_total
template<typename TK , typename TR >
◆ nk_total
template<typename TK , typename TR >
◆ nspin
template<typename TK , typename TR >
◆ occ_number
template<typename TK , typename TR >
natrual occupation numbers and wavefunction
◆ occNum_HamiltWfc
template<typename TK , typename TR >
◆ occNum_wfcHamiltWfc
template<typename TK , typename TR >
gradients of total energy with respect to the natural occupation numbers and wfc
◆ only_exx_type
template<typename TK , typename TR >
◆ orb
template<typename TK , typename TR >
◆ para_Eij
template<typename TK , typename TR >
◆ ParaV
template<typename TK , typename TR >
◆ pelec
template<typename TK , typename TR >
obain Ewald and this->pelec->pot
◆ rho_basis
template<typename TK , typename TR >
◆ sf
template<typename TK , typename TR >
◆ two_center_bundle
template<typename TK , typename TR >
◆ ucell
template<typename TK , typename TR >
◆ V_dft_XC
template<typename TK , typename TR >
◆ V_ekinetic_potential
template<typename TK , typename TR >
◆ V_exx_XC
template<typename TK , typename TR >
◆ V_hartree
template<typename TK , typename TR >
◆ V_local
template<typename TK , typename TR >
◆ V_nonlocal
template<typename TK , typename TR >
◆ vloc
template<typename TK , typename TR >
◆ vtxc
template<typename TK , typename TR >
◆ wfc
template<typename TK , typename TR >
◆ wfcHwfc_dft_XC
template<typename TK , typename TR >
◆ wfcHwfc_exx_XC
template<typename TK , typename TR >
◆ wfcHwfc_hartree
template<typename TK , typename TR >
◆ wfcHwfc_TV
template<typename TK , typename TR >
◆ wfcHwfc_XC
template<typename TK , typename TR >
◆ wg
template<typename TK , typename TR >
◆ wk_fun_occNum
template<typename TK , typename TR >
◆ XC_func_rdmft
template<typename TK , typename TR >
The documentation for this class was generated from the following files:
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_rdmft/rdmft.h
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_rdmft/rdmft.cpp
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_rdmft/rdmft_pot.cpp
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_rdmft/update_state_rdmft.cpp