#include <potential_new.h>
|
| | Potential () |
| |
| | Potential (const ModulePW::PW_Basis *rho_basis_in, const ModulePW::PW_Basis *rho_basis_smooth_in, const UnitCell *ucell_in, const ModuleBase::matrix *vloc_in, Structure_Factor *structure_factors_in, surchem *solvent_in, double *etxc_in, double *vtxc_in, VSep *vsep_cell_in=nullptr) |
| |
| | ~Potential () |
| |
| void | init_pot (int istep, const Charge *const chg) |
| |
| void | pot_register (const std::vector< std::string > &components_list) |
| |
| void | update_from_charge (const Charge *const chg, const UnitCell *const ucell) |
| |
| void | get_vnew (const Charge *chg, ModuleBase::matrix &vnew) |
| |
| PotBase * | get_pot_type (const std::string &pot_type) |
| |
| ModuleBase::matrix & | get_effective_v () |
| |
| const ModuleBase::matrix & | get_effective_v () const |
| |
| double * | get_effective_v (int is) |
| |
| const double * | get_effective_v (int is) const |
| |
| ModuleBase::matrix & | get_effective_vofk () |
| |
| const ModuleBase::matrix & | get_effective_vofk () const |
| |
| double * | get_effective_vofk (int is) |
| |
| const double * | get_effective_vofk (int is) const |
| |
| ModuleBase::matrix & | get_veff_smooth () |
| |
| const ModuleBase::matrix & | get_veff_smooth () const |
| |
| ModuleBase::matrix & | get_vofk_smooth () |
| |
| const ModuleBase::matrix & | get_vofk_smooth () const |
| |
| template<typename FPTYPE > |
| FPTYPE * | get_veff_smooth_data () |
| |
| template<typename FPTYPE > |
| FPTYPE * | get_vofk_smooth_data () |
| |
| double * | get_fixed_v () |
| |
| const double * | get_fixed_v () const |
| |
| const ModulePW::PW_Basis * | get_rho_basis () const |
| |
| double | get_vl_of_0 () const |
| | get the value of vloc at G=0;
|
| |
| template<> |
| float * | get_veff_smooth_data () |
| |
| template<> |
| double * | get_veff_smooth_data () |
| |
| template<> |
| float * | get_vofk_smooth_data () |
| |
| template<> |
| double * | get_vofk_smooth_data () |
| |
| | PotBase () |
| |
| virtual | ~PotBase () |
| |
Potential is the main class of potentials module, it contains:
- Constructors and deconstructor
- Func init_pot() a. need istep for update_for_tddft(); b. need Charge for update_from_charge(); c. it will reset fixed_done to false, v_effective_fixed will be calculated; d. it should be called after Charge is initialized; e. it can only be called once in one SCF loop
- Func pot_register() and components a. need vector<string> for choose target potentials b. "local", PotLocal introduces local pseudopotential part of potentials; c. "hartree", PotHartree introduces Coulombic interaction of electrons part of potentials; d. "xc", PotXC introduces exchange-correlation including meta-gga part of potentials; e. "surchem", PotSurChem introduces surface chemistry part of potentials; f. "efield", PotEfield introduces electronic field including dipole correction part of potentials; g. "gatefield", PotGate introduces gate field part of potentials;
- Func update_from_charge() a. regenerate v_effective b. if Meta-GGA is choosed, it will regenerate vofk_effective
- Func update_for_tddft() a. in principle, it should be added to components, but it related to real time(istep) b. it should be called after update_from_charge() as a compensation;
- Func get_vnew() a. this function is designed for a special demand:
- update etxc and vtxc when SCF converged and
- use the final delta_V_eff for calculating force correction
- Func write_potential()
- Func write_elecstat_pot()
- interfaces for v_effective_fixed/v_effective/vofk_effective
- Func interpolate_vrs() a. interpolate v_effective on the smooth mesh
◆ Potential() [1/2]
| elecstate::Potential::Potential |
( |
| ) |
|
|
inline |
◆ Potential() [2/2]
◆ ~Potential()
| elecstate::Potential::~Potential |
( |
| ) |
|
◆ allocate()
| void elecstate::Potential::allocate |
( |
| ) |
|
|
private |
◆ cal_fixed_v()
| void elecstate::Potential::cal_fixed_v |
( |
double * |
vl_pseudo | ) |
|
|
overrideprivatevirtual |
◆ cal_v_eff()
◆ get_effective_v() [1/4]
◆ get_effective_v() [2/4]
◆ get_effective_v() [3/4]
| double * elecstate::Potential::get_effective_v |
( |
int |
is | ) |
|
|
inline |
◆ get_effective_v() [4/4]
| const double * elecstate::Potential::get_effective_v |
( |
int |
is | ) |
const |
|
inline |
◆ get_effective_vofk() [1/4]
◆ get_effective_vofk() [2/4]
◆ get_effective_vofk() [3/4]
| double * elecstate::Potential::get_effective_vofk |
( |
int |
is | ) |
|
|
inline |
◆ get_effective_vofk() [4/4]
| const double * elecstate::Potential::get_effective_vofk |
( |
int |
is | ) |
const |
|
inline |
◆ get_fixed_v() [1/2]
| double * elecstate::Potential::get_fixed_v |
( |
| ) |
|
|
inline |
◆ get_fixed_v() [2/2]
| const double * elecstate::Potential::get_fixed_v |
( |
| ) |
const |
|
inline |
◆ get_pot_type()
| PotBase * elecstate::Potential::get_pot_type |
( |
const std::string & |
pot_type | ) |
|
◆ get_rho_basis()
◆ get_veff_smooth() [1/2]
◆ get_veff_smooth() [2/2]
◆ get_veff_smooth_data() [1/3]
template<>
| float * elecstate::Potential::get_veff_smooth_data |
( |
| ) |
|
◆ get_veff_smooth_data() [2/3]
template<>
| double * elecstate::Potential::get_veff_smooth_data |
( |
| ) |
|
◆ get_veff_smooth_data() [3/3]
template<typename FPTYPE >
| FPTYPE * elecstate::Potential::get_veff_smooth_data |
( |
| ) |
|
◆ get_vl_of_0()
| double elecstate::Potential::get_vl_of_0 |
( |
| ) |
const |
|
inline |
get the value of vloc at G=0;
- Returns
- vl(0)
◆ get_vnew()
◆ get_vofk_smooth() [1/2]
◆ get_vofk_smooth() [2/2]
◆ get_vofk_smooth_data() [1/3]
template<>
| float * elecstate::Potential::get_vofk_smooth_data |
( |
| ) |
|
◆ get_vofk_smooth_data() [2/3]
template<>
| double * elecstate::Potential::get_vofk_smooth_data |
( |
| ) |
|
◆ get_vofk_smooth_data() [3/3]
template<typename FPTYPE >
| FPTYPE * elecstate::Potential::get_vofk_smooth_data |
( |
| ) |
|
◆ init_pot()
| void elecstate::Potential::init_pot |
( |
int |
istep, |
|
|
const Charge *const |
chg |
|
) |
| |
◆ interpolate_vrs()
| void elecstate::Potential::interpolate_vrs |
( |
void |
| ) |
|
|
private |
◆ pot_register()
| void elecstate::Potential::pot_register |
( |
const std::vector< std::string > & |
components_list | ) |
|
◆ update_from_charge()
| void elecstate::Potential::update_from_charge |
( |
const Charge *const |
chg, |
|
|
const UnitCell *const |
ucell |
|
) |
| |
◆ components
| std::vector<PotBase*> elecstate::Potential::components |
|
private |
◆ d_veff_smooth
| double* elecstate::Potential::d_veff_smooth = nullptr |
|
private |
◆ d_vofk_smooth
| double * elecstate::Potential::d_vofk_smooth = nullptr |
|
private |
◆ etxc_
| double* elecstate::Potential::etxc_ = nullptr |
|
private |
◆ fixed_done
| bool elecstate::Potential::fixed_done = false |
|
private |
◆ s_veff_smooth
| float* elecstate::Potential::s_veff_smooth = nullptr |
|
private |
◆ s_vofk_smooth
| float * elecstate::Potential::s_vofk_smooth = nullptr |
|
private |
◆ solvent_
| surchem* elecstate::Potential::solvent_ = nullptr |
|
private |
◆ structure_factors_
◆ ucell_
| const UnitCell* elecstate::Potential::ucell_ = nullptr |
|
private |
◆ use_gpu_
| bool elecstate::Potential::use_gpu_ = false |
|
private |
◆ v_effective
◆ v_effective_fixed
| std::vector<double> elecstate::Potential::v_effective_fixed |
|
private |
◆ v_xc
◆ veff_smooth
◆ vl_of_0
| double elecstate::Potential::vl_of_0 = 0.0 |
|
private |
◆ vloc_
◆ vofk_effective
◆ vofk_smooth
◆ vsep_cell
| VSep* elecstate::Potential::vsep_cell = nullptr |
|
private |
◆ vtxc_
| double* elecstate::Potential::vtxc_ = nullptr |
|
private |
The documentation for this class was generated from the following files: