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
4#include "pot_base.h"
5
6namespace elecstate
7{
8
9class PotXC : public PotBase
10{
11 public:
12 // constructor for exchange-correlation potential
13 // meta-GGA should input matrix of kinetic potential, it is optional
14 PotXC(const ModulePW::PW_Basis* rho_basis_in,
15 double* etxc_in,
16 double* vtxc_in,
17 ModuleBase::matrix* vofk_in = nullptr)
18 : etxc_(etxc_in), vtxc_(vtxc_in), vofk(vofk_in)
19 {
20 this->rho_basis_ = rho_basis_in;
21 this->dynamic_mode = true;
22 this->fixed_mode = false;
23 }
24
25 void cal_v_eff(const Charge*const chg, const UnitCell*const ucell, ModuleBase::matrix& v_eff) override;
26
28 double* etxc_ = nullptr;
29 double* vtxc_ = nullptr;
30};
31
32} // namespace elecstate
33
34#endif
Definition charge.h:17
Definition matrix.h:18
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:15
Definition pot_base.h:22
const ModulePW::PW_Basis * rho_basis_
Definition pot_base.h:37
bool dynamic_mode
Definition pot_base.h:34
bool fixed_mode
Definition pot_base.h:33
Definition pot_xc.h:10
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:27
double * etxc_
Definition pot_xc.h:28
double * vtxc_
Definition pot_xc.h:29
PotXC(const ModulePW::PW_Basis *rho_basis_in, double *etxc_in, double *vtxc_in, ModuleBase::matrix *vofk_in=nullptr)
Definition pot_xc.h:14
Definition read_atoms_helper_test.cpp:11