ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
pot_xc.h
Go to the documentation of this file.
1#ifndef POTXC_H
2#define POTXC_H
3
5#include "pot_base.h"
6
7namespace elecstate
8{
9
10class PotXC : public PotBase
11{
12 public:
13 // constructor for exchange-correlation potential
14 // meta-GGA should input matrix of kinetic potential, it is optional
15 PotXC(const ModulePW::PW_Basis* rho_basis_in,
16 double* etxc_in,
17 double* vtxc_in,
18 ModuleBase::matrix* vofk_in = nullptr)
19 : etxc_(etxc_in), vtxc_(vtxc_in), vofk(vofk_in)
20 {
21 this->rho_basis_ = rho_basis_in;
22 this->dynamic_mode = true;
23 this->fixed_mode = false;
24 }
25
26 void cal_v_eff(const Charge*const chg, const UnitCell*const ucell, ModuleBase::matrix& v_eff) override;
27
29 double* etxc_ = nullptr;
30 double* vtxc_ = nullptr;
31};
32
33} // namespace elecstate
34
35#endif
Definition charge.h:20
Definition matrix.h:19
A class which can convert a function of "r" to the corresponding linear superposition of plane waves ...
Definition pw_basis.h:56
Definition unitcell.h:16
Definition pot_base.h:22
const ModulePW::PW_Basis * rho_basis_
Definition pot_base.h:35
bool dynamic_mode
Definition pot_base.h:32
bool fixed_mode
Definition pot_base.h:31
Definition pot_xc.h:11
void cal_v_eff(const Charge *const chg, const UnitCell *const ucell, ModuleBase::matrix &v_eff) override
Definition pot_xc.cpp:13
ModuleBase::matrix * vofk
Definition pot_xc.h:28
double * etxc_
Definition pot_xc.h:29
double * vtxc_
Definition pot_xc.h:30
PotXC(const ModulePW::PW_Basis *rho_basis_in, double *etxc_in, double *vtxc_in, ModuleBase::matrix *vofk_in=nullptr)
Definition pot_xc.h:15
Definition cal_dm.h:10