#include <kedf_manager.h>
|
| KEDF_Manager () |
|
| ~KEDF_Manager () |
|
void | init (const Input_para &inp, ModulePW::PW_Basis *pw_rho, const double dV, const double nelec) |
| [Interface to kedf] Initialize the KEDFs.
|
|
void | get_potential (const double *const *prho, const double *const *pphi, ModulePW::PW_Basis *pw_rho, ModuleBase::matrix &rpot) |
| [Interface to kedf] Calculated the kinetic potential and plus it to rpot,
|
|
double | get_energy () |
| [Interface to kedf] Return the kinetic energy
|
|
void | get_energy_density (const double *const *prho, const double *const *pphi, ModulePW::PW_Basis *pw_rho, double **rtau) |
| [Interface to kedf] Calculated the kinetic energy density, ONLY SPIN=1 SUPPORTED
|
|
void | get_stress (const double omega, const double *const *prho, const double *const *pphi, ModulePW::PW_Basis *pw_rho, ModuleBase::matrix &kinetic_stress_) |
| [Interface to kedf] Calculate the stress of kedf
|
|
void | record_energy (std::vector< std::string > &titles, std::vector< double > &energies_Ry) |
|
void | generate_ml_target (const double *const *prho, ModulePW::PW_Basis *pw_rho, const double *veff) |
|
◆ KEDF_Manager()
KEDF_Manager::KEDF_Manager |
( |
| ) |
|
|
inline |
◆ ~KEDF_Manager()
KEDF_Manager::~KEDF_Manager |
( |
| ) |
|
|
inline |
◆ generate_ml_target()
void KEDF_Manager::generate_ml_target |
( |
const double *const * |
prho, |
|
|
ModulePW::PW_Basis * |
pw_rho, |
|
|
const double * |
veff |
|
) |
| |
◆ get_energy()
double KEDF_Manager::get_energy |
( |
| ) |
|
[Interface to kedf] Return the kinetic energy
- Returns
- kinetic energy
◆ get_energy_density()
void KEDF_Manager::get_energy_density |
( |
const double *const * |
prho, |
|
|
const double *const * |
pphi, |
|
|
ModulePW::PW_Basis * |
pw_rho, |
|
|
double ** |
rtau |
|
) |
| |
[Interface to kedf] Calculated the kinetic energy density, ONLY SPIN=1 SUPPORTED
- Parameters
-
[in] | prho | charge density |
[in] | pphi | phi = sqrt(rho) |
[in] | pw_rho | pw basis for charge density |
[out] | rtau | kinetic energy density |
◆ get_potential()
[Interface to kedf] Calculated the kinetic potential and plus it to rpot,
- Parameters
-
[in] | prho | charge density |
[in] | pphi | phi^2 = rho |
[in] | pw_rho | pw basis for charge density |
[out] | rpot | rpot => (rpot + kietic potential) * 2 * pphi |
◆ get_stress()
[Interface to kedf] Calculate the stress of kedf
- Parameters
-
[in] | omega | Volume of the unit cell |
[in] | prho | charge density |
[in] | pphi | phi^2 = rho |
[in] | pw_rho | pw basis for charge density |
[out] | kinetic_stress_ | |
◆ init()
[Interface to kedf] Initialize the KEDFs.
- Parameters
-
inp | |
pw_rho | pw basis for charge density |
dV | volume of one grid point in real space |
nelec | number of electrons in the unit cell |
Thomas-Fermi (TF) KEDF, TF+ KEDF, Want-Teter (WT) KEDF, and XWM KEDF
vW, TF+, WT, XWM, and LKT KEDFs
Wang-Teter KEDF
Xu-Wang-Ma KEDF
LKT KEDF
◆ record_energy()
void KEDF_Manager::record_energy |
( |
std::vector< std::string > & |
titles, |
|
|
std::vector< double > & |
energies_Ry |
|
) |
| |
◆ lkt_
◆ ml_
KEDF_ML* KEDF_Manager::ml_ = nullptr |
|
private |
◆ of_kinetic_
std::string KEDF_Manager::of_kinetic_ = "wt" |
|
private |
◆ tf_
KEDF_TF* KEDF_Manager::tf_ = nullptr |
|
private |
◆ vw_
KEDF_vW* KEDF_Manager::vw_ = nullptr |
|
private |
◆ wt_
KEDF_WT* KEDF_Manager::wt_ = nullptr |
|
private |
◆ xwm_
The documentation for this class was generated from the following files:
- /home/runner/work/abacus-develop/abacus-develop/source/source_pw/module_ofdft/kedf_manager.h
- /home/runner/work/abacus-develop/abacus-develop/source/source_pw/module_ofdft/kedf_manager.cpp