ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
H_Hartree_pw.h
Go to the documentation of this file.
1#ifndef HHARTREEPW_H
2#define HHARTREEPW_H
3
9
10namespace elecstate
11{
12
14{
15 public:
18
19 // the Hartree energy
20 static double hartree_energy;
21
22 // compute the Hartree energy
23 static ModuleBase::matrix v_hartree(const UnitCell &cell,
24 ModulePW::PW_Basis *rho_basis,
25 const int &nspin,
26 const double *const *const rho);
27
28 static int get_Z(std::string str);
29
30 static void cast_C2R(std::complex<double> *src, double *dst, int dim);
31
32 static void lapl_rho(const std::complex<double> *rhog, double *lapn);
33
34 static void shape_gradn(const std::complex<double> *PS_TOTN, ModulePW::PW_Basis *rho_basis, double *eprime);
35
36 static void eps_pot(const std::complex<double>* PS_TOTN,
37 const std::complex<double>* phi,
38 const ModulePW::PW_Basis* rho_basis,
39 double* d_eps,
40 double* vwork);
41
42 static void test_res(const UnitCell &ucell,
43 ModulePW::PW_Basis *rho_basis,
44 const std::complex<double> *tot_N,
45 std::complex<double> *phi,
46 double *d_eps);
47
48 private:
49};
50
51} // namespace elecstate
52
53#include "pot_base.h"
54namespace elecstate
55{
56// new interface for elecstate::Potential
57class PotHartree : public PotBase
58{
59 public:
60 PotHartree(const ModulePW::PW_Basis* rho_basis_in);
61
62 void cal_v_eff(const Charge*const chg, const UnitCell*const ucell, ModuleBase::matrix& v_eff);
63};
64
65} // namespace elecstate
66
67#endif // Hartree energy
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 H_Hartree_pw.h:14
static void lapl_rho(const std::complex< double > *rhog, double *lapn)
static double hartree_energy
Definition H_Hartree_pw.h:20
static int get_Z(std::string str)
static void eps_pot(const std::complex< double > *PS_TOTN, const std::complex< double > *phi, const ModulePW::PW_Basis *rho_basis, double *d_eps, double *vwork)
static void cast_C2R(std::complex< double > *src, double *dst, int dim)
static ModuleBase::matrix v_hartree(const UnitCell &cell, ModulePW::PW_Basis *rho_basis, const int &nspin, const double *const *const rho)
Definition H_Hartree_pw.cpp:16
static void test_res(const UnitCell &ucell, ModulePW::PW_Basis *rho_basis, const std::complex< double > *tot_N, std::complex< double > *phi, double *d_eps)
static void shape_gradn(const std::complex< double > *PS_TOTN, ModulePW::PW_Basis *rho_basis, double *eprime)
Definition pot_base.h:22
Definition H_Hartree_pw.h:58
void cal_v_eff(const Charge *const chg, const UnitCell *const ucell, ModuleBase::matrix &v_eff)
Definition H_Hartree_pw.cpp:106
Definition cal_dm.h:10