ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
KEDF_Manager Class Reference

#include <kedf_manager.h>

Collaboration diagram for KEDF_Manager:

Public Member Functions

 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)
 

Private Attributes

KEDF_LKTlkt_ = nullptr
 
KEDF_TFtf_ = nullptr
 
KEDF_vWvw_ = nullptr
 
KEDF_WTwt_ = nullptr
 
KEDF_XWMxwm_ = nullptr
 
KEDF_MLml_ = nullptr
 
std::string of_kinetic_ = "wt"
 

Constructor & Destructor Documentation

◆ KEDF_Manager()

KEDF_Manager::KEDF_Manager ( )
inline

◆ ~KEDF_Manager()

KEDF_Manager::~KEDF_Manager ( )
inline

Member Function Documentation

◆ generate_ml_target()

void KEDF_Manager::generate_ml_target ( const double *const *  prho,
ModulePW::PW_Basis pw_rho,
const double *  veff 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_energy()

double KEDF_Manager::get_energy ( )

[Interface to kedf] Return the kinetic energy

Returns
kinetic energy
Here is the caller graph for this function:

◆ 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]prhocharge density
[in]pphiphi = sqrt(rho)
[in]pw_rhopw basis for charge density
[out]rtaukinetic energy density
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_potential()

void KEDF_Manager::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,

Parameters
[in]prhocharge density
[in]pphiphi^2 = rho
[in]pw_rhopw basis for charge density
[out]rpotrpot => (rpot + kietic potential) * 2 * pphi
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_stress()

void KEDF_Manager::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

Parameters
[in]omegaVolume of the unit cell
[in]prhocharge density
[in]pphiphi^2 = rho
[in]pw_rhopw basis for charge density
[out]kinetic_stress_
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init()

void KEDF_Manager::init ( const Input_para inp,
ModulePW::PW_Basis pw_rho,
const double  dV,
const double  nelec 
)

[Interface to kedf] Initialize the KEDFs.

Parameters
inp
pw_rhopw basis for charge density
dVvolume of one grid point in real space
nelecnumber 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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ record_energy()

void KEDF_Manager::record_energy ( std::vector< std::string > &  titles,
std::vector< double > &  energies_Ry 
)
Here is the caller graph for this function:

Member Data Documentation

◆ lkt_

KEDF_LKT* KEDF_Manager::lkt_ = nullptr
private

◆ 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_

KEDF_XWM* KEDF_Manager::xwm_ = nullptr
private

The documentation for this class was generated from the following files: