36 double **
rho =
nullptr;
39 std::complex<double> **
rhog =
nullptr;
83 const void* klist =
nullptr,
84 const void* wfcpw =
nullptr);
89 void allocate(
const int &nspin_in,
const bool kin_den);
120 double cal_rho2ne(
const double *rho_in)
const;
double ** rho
Definition charge.h:36
int * dis
Definition charge.h:175
double * _space_kin_r
Definition charge.h:53
void save_rho_before_sum_band()
Definition charge.cpp:658
~Charge()
Definition charge.cpp:42
double ** nhat_save
Definition charge.h:59
int * rec
Definition charge.h:174
double * _space_kin_r_save
Definition charge.h:54
bool allocate_rho_final_scf
Definition charge.h:171
double sum_rho() const
Definition charge.cpp:184
void set_rho_core(const UnitCell &ucell, const ModuleBase::ComplexMatrix &structure_factor, const bool *numeric)
Definition charge_init.cpp:277
std::complex< double > ** rhog_save
Definition charge.h:40
bool cal_elf
Definition charge.h:161
std::complex< double > ** rhog
Definition charge.h:39
void reduce_diff_pools(double *array_rho) const
Reduce among different pools If NPROC_IN_POOLs are all the same, use GlobalV::KP_WORLD else,...
Definition charge_mpi.cpp:28
void kin_r_mpi()
Sum kin_r at different pools (k-point/band parallelism). Only used when GlobalV::KPAR * bndpar > 1.
Definition charge_mpi.cpp:142
void init_final_scf()
Definition charge.cpp:724
void check_rho()
Definition charge.cpp:688
std::complex< double > * rhog_core
Definition charge.h:63
void set_rhopw(ModulePW::PW_Basis *rhopw_in)
Definition charge.cpp:51
Charge()
Definition charge.cpp:36
void atomic_rho(const int spin_number_need, const double &omega, double **rho_in, const ModuleBase::ComplexMatrix &strucFac, const UnitCell &ucell) const
Definition charge.cpp:245
double ** kin_r
Definition charge.h:42
void allocate(const int &nspin_in, const bool kin_den)
Definition charge.cpp:93
double * _space_rho
Definition charge.h:49
void set_omega(double *omega_in)
Definition charge.h:153
void renormalize_rho()
Definition charge.cpp:217
void init_chgmpi()
init some arrays for mpi_inter_pools, rho_mpi
Definition charge_mpi.cpp:10
std::complex< double > * _space_rhog_save
Definition charge.h:52
bool kin_density()
Definition charge.cpp:57
void rho_mpi()
Sum rho at different pools (k-point parallelism). Only used when GlobalV::KPAR > 1.
Definition charge_mpi.cpp:120
const Parallel_Grid * pgrid
Definition charge.h:44
int ngmc
Definition charge.h:158
double ** kin_r_save
Definition charge.h:43
double ** rho_save
Definition charge.h:37
double cal_rho2ne(const double *rho_in) const
Definition charge.cpp:671
int nrxx
Definition charge.h:156
void non_linear_core_correction(const bool &numeric, const double omega, const double tpiba2, const int mesh, const double *r, const double *rab, const double *rhoc, double *rhocg) const
Definition charge_init.cpp:380
double ** nhat
Definition charge.h:58
double * _space_rho_save
Definition charge.h:50
int prenspin
Definition charge.h:65
std::complex< double > * _space_rhog
Definition charge.h:51
double * rho_core
Definition charge.h:62
ModulePW::PW_Basis * rhopw
Definition charge.h:160
void destroy()
Definition charge.cpp:69
double * omega_
Definition charge.h:167
int nxyz
Definition charge.h:157
bool allocate_rho
Definition charge.h:169
int nspin
Definition charge.h:159
void init_rho(const UnitCell &ucell, const Parallel_Grid &pgrid, const ModuleBase::ComplexMatrix &strucFac, ModuleSymmetry::Symmetry &symm, const void *klist=nullptr, const void *wfcpw=nullptr)
Init charge density from file or atomic pseudo-wave-functions.
Definition charge_init.cpp:23
Definition complexmatrix.h:13
A class which can convert a function of "r" to the corresponding linear superposition of plane waves ...
Definition pw_basis.h:56
Definition parallel_grid.h:7