|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
Functions | |
| template<typename T , typename Device > | |
| void | setup_pot (const int istep, UnitCell &ucell, const K_Vectors &kv, Structure_Factor &sf, elecstate::ElecState *pelec, const Parallel_Grid ¶_grid, const Charge &chr, pseudopot_cell_vl &locpp, pseudopot_cell_vnl &ppcell, VSep *vsep_cell, psi::Psi< T, Device > *kspw_psi, hamilt::Hamilt< T, Device > *p_hamilt, ModulePW::PW_Basis_K *pw_wfc, const ModulePW::PW_Basis *pw_rhod, const Input_para &inp) |
| void | setup_pwrho (UnitCell &ucell, const bool double_grid, bool &pw_rho_flag, ModulePW::PW_Basis *&pw_rho, ModulePW::PW_Basis *&pw_rhod, ModulePW::PW_Basis_Big *&pw_big, const std::string &classname, const Input_para &inp) |
| void | teardown_pwrho (bool &pw_rho_flag, const bool double_grid, ModulePW::PW_Basis *&pw_rho, ModulePW::PW_Basis *&pw_rhod) |
| void | teardown_pwwfc (ModulePW::PW_Basis_K *&pw_wfc) |
| void | setup_pwwfc (const Input_para &inp, const UnitCell &ucell, const ModulePW::PW_Basis &pw_rho, K_Vectors &kv, ModulePW::PW_Basis_K *&pw_wfc) |
| void pw::setup_pot | ( | const int | istep, |
| UnitCell & | ucell, | ||
| const K_Vectors & | kv, | ||
| Structure_Factor & | sf, | ||
| elecstate::ElecState * | pelec, | ||
| const Parallel_Grid & | para_grid, | ||
| const Charge & | chr, | ||
| pseudopot_cell_vl & | locpp, | ||
| pseudopot_cell_vnl & | ppcell, | ||
| VSep * | vsep_cell, | ||
| psi::Psi< T, Device > * | kspw_psi, | ||
| hamilt::Hamilt< T, Device > * | p_hamilt, | ||
| ModulePW::PW_Basis_K * | pw_wfc, | ||
| const ModulePW::PW_Basis * | pw_rhod, | ||
| const Input_para & | inp | ||
| ) |
0) DFT-1/2 calculations, sep potential need to generate
1) Renew local pseudopotential
2) Symmetrize the charge density (rho)
Symmetry_rho should behind init_scf, because charge should be initialized first. liuyu comment: Symmetry_rho should be located between init_rho and v_of_rho?
3) Calculate the effective potential with rho
liuyu move here 2023-10-09 D in uspp need vloc, thus behind init_scf() calculate the effective coefficient matrix for non-local pseudopotential projectors
4) Onsite projectors
5) Spin-constrained algorithms
6) DFT+U algorithm
| void pw::setup_pwrho | ( | UnitCell & | ucell, |
| const bool | double_grid, | ||
| bool & | pw_rho_flag, | ||
| ModulePW::PW_Basis *& | pw_rho, | ||
| ModulePW::PW_Basis *& | pw_rhod, | ||
| ModulePW::PW_Basis_Big *& | pw_big, | ||
| const std::string & | classname, | ||
| const Input_para & | inp | ||
| ) |
initialie the plane wave basis for rho
for OFDFT calculations
initialize the FFT grid
initialize the double grid (for uspp) if necessary
| void pw::setup_pwwfc | ( | const Input_para & | inp, |
| const UnitCell & | ucell, | ||
| const ModulePW::PW_Basis & | pw_rho, | ||
| K_Vectors & | kv, | ||
| ModulePW::PW_Basis_K *& | pw_wfc | ||
| ) |
setup pw_wfc
new plane wave basis, fft grids, etc.
initialize the number of plane waves for each k point
| void pw::teardown_pwrho | ( | bool & | pw_rho_flag, |
| const bool | double_grid, | ||
| ModulePW::PW_Basis *& | pw_rho, | ||
| ModulePW::PW_Basis *& | pw_rhod | ||
| ) |
| void pw::teardown_pwwfc | ( | ModulePW::PW_Basis_K *& | pw_wfc | ) |