11#ifndef EFIELD_H
22#define EFIELD_H
33
4- #include " module_cell/unitcell.h"
54#include " module_basis/module_pw/pw_basis.h"
5+ #include " module_cell/unitcell.h"
66#include " module_hamilt_general/module_surchem/surchem.h"
7+ #include " module_parameter/parameter.h"
78
89namespace elecstate
910{
@@ -17,7 +18,7 @@ class Efield
1718 const ModulePW::PW_Basis* rho_basis,
1819 const int & nspin,
1920 const double * const * const rho,
20- surchem& solvent);
21+ const surchem& solvent);
2122
2223 static double cal_elec_dipole (const UnitCell& cell,
2324 const ModulePW::PW_Basis* rho_basis,
@@ -29,7 +30,7 @@ class Efield
2930
3031 static double cal_induced_dipole (const UnitCell& cell,
3132 const ModulePW::PW_Basis* rho_basis,
32- surchem& solvent,
33+ const surchem& solvent,
3334 const double & bmod);
3435
3536 static double saw_function (const double &a, const double &b, const double &x);
@@ -59,7 +60,8 @@ namespace elecstate
5960class PotEfield : public PotBase
6061{
6162 public:
62- PotEfield (const ModulePW::PW_Basis* rho_basis_in, const UnitCell* ucell_in, bool dipole) : ucell_(ucell_in)
63+ PotEfield (const ModulePW::PW_Basis* rho_basis_in, const UnitCell* ucell_in, const surchem* solvent_in, bool dipole)
64+ : ucell_(ucell_in), solvent_(solvent_in)
6365 {
6466 this ->rho_basis_ = rho_basis_in;
6567 if (!dipole)
@@ -81,7 +83,7 @@ class PotEfield : public PotBase
8183 const_cast <const ModulePW::PW_Basis*>(rho_basis_),
8284 PARAM.inp .nspin ,
8385 nullptr ,
84- GlobalC::solvent_model );
86+ *solvent_ );
8587 for (int ir = 0 ; ir < rho_basis_->nrxx ; ++ir)
8688 {
8789 vl_pseudo[ir] += v_efield (0 , ir);
@@ -94,11 +96,12 @@ class PotEfield : public PotBase
9496 const_cast <const ModulePW::PW_Basis*>(rho_basis_),
9597 v_eff.nr ,
9698 chg->rho ,
97- GlobalC::solvent_model );
99+ *solvent_ );
98100 }
99101
100102 private:
101- const UnitCell *ucell_ = nullptr ;
103+ const UnitCell* ucell_ = nullptr ;
104+ const surchem* solvent_ = nullptr ;
102105};
103106
104107} // namespace elecstate
0 commit comments