#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) |
|
| ~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 |
( |
| ) |
|
|
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
◆ vtxc_
double* elecstate::Potential::vtxc_ = nullptr |
|
private |
The documentation for this class was generated from the following files: