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