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

A class which calculates the kinetic energy, potential, and stress with Thomas-Fermi (TF) KEDF. See Fermi E. Rend. Accad. Naz. Lincei, 1927, 6(602-607): 5. Thomas L H. Cambridge University Press, 1927, 23(5): 542-548. More...

#include <kedf_tf.h>

Collaboration diagram for KEDF_TF:

Public Member Functions

 KEDF_TF ()
 
 ~KEDF_TF ()
 
void set_para (int nx, double dV, double tf_weight)
 
double get_energy (const double *const *prho)
 Get the energy of TF KEDF,.
 
double get_energy_density (const double *const *prho, int is, int ir)
 Get the energy density of TF KEDF.
 
void tau_tf (const double *const *prho, double *rtau_tf)
 Get the kinetic energy of TF KEDF, and add it onto rtau_tf.
 
void tf_potential (const double *const *prho, ModuleBase::matrix &rpotential)
 Get the potential of TF KEDF, and add it into rpotential, and the TF energy will be calculated and stored in this->tf_energy.
 
void get_stress (double cell_vol)
 Get the stress of TF KEDF, and store it into this->stress.
 

Public Attributes

double tf_energy = 0.
 
ModuleBase::matrix stress
 

Private Attributes

int nx_ = 0
 
double dV_ = 0.
 
double tf_weight_ = 1.
 
const double c_tf_
 

Detailed Description

A class which calculates the kinetic energy, potential, and stress with Thomas-Fermi (TF) KEDF. See Fermi E. Rend. Accad. Naz. Lincei, 1927, 6(602-607): 5. Thomas L H. Cambridge University Press, 1927, 23(5): 542-548.

Author
sunliang on 2022-05

Constructor & Destructor Documentation

◆ KEDF_TF()

KEDF_TF::KEDF_TF ( )
inline
Here is the call graph for this function:

◆ ~KEDF_TF()

KEDF_TF::~KEDF_TF ( )
inline

Member Function Documentation

◆ get_energy()

double KEDF_TF::get_energy ( const double *const *  prho)

Get the energy of TF KEDF,.

\[ E_{TF} = c_{TF} * \int{\rho^{5/3} dr} \]

Parameters
prhocharge density
Returns
the energy of TF KEDF
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_energy_density()

double KEDF_TF::get_energy_density ( const double *const *  prho,
int  is,
int  ir 
)

Get the energy density of TF KEDF.

\[ \tau_{TF} = c_{TF} * \rho^{5/3} \]

Parameters
prhocharge density
isthe index of spin
irthe index of real space grid
Returns
the energy density of TF KEDF

◆ get_stress()

void KEDF_TF::get_stress ( double  cell_vol)

Get the stress of TF KEDF, and store it into this->stress.

Parameters
cell_volthe volume of cell
Here is the caller graph for this function:

◆ set_para()

void KEDF_TF::set_para ( int  nx,
double  dV,
double  tf_weight 
)
Here is the caller graph for this function:

◆ tau_tf()

void KEDF_TF::tau_tf ( const double *const *  prho,
double *  rtau_tf 
)

Get the kinetic energy of TF KEDF, and add it onto rtau_tf.

\[ \tau_{TF} = c_{TF} * \prho^{5/3} \]

Parameters
prhocharge density
rtau_tfrtau_tf => rtau_tf + tau_tf
Here is the caller graph for this function:

◆ tf_potential()

void KEDF_TF::tf_potential ( const double *const *  prho,
ModuleBase::matrix rpotential 
)

Get the potential of TF KEDF, and add it into rpotential, and the TF energy will be calculated and stored in this->tf_energy.

\[ V_{TF} = \delta E_{TF}/\delta \rho = 5/3 * c_{TF} * \rho^{2/3} \]

Parameters
prhocharge density
rpotentialrpotential => rpotential + V_{TF}
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ c_tf_

const double KEDF_TF::c_tf_
private
Initial value:
= 3.0 / 10.0 * std::pow(3 * std::pow(M_PI, 2.0), 2.0 / 3.0)
* 2

◆ dV_

double KEDF_TF::dV_ = 0.
private

◆ nx_

int KEDF_TF::nx_ = 0
private

◆ stress

ModuleBase::matrix KEDF_TF::stress

◆ tf_energy

double KEDF_TF::tf_energy = 0.

◆ tf_weight_

double KEDF_TF::tf_weight_ = 1.
private

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