55 std::vector<double>
U = {};
56 std::vector<double>
U0;
72 std::vector<double> orb_cutoff_;
76 std::vector<std::vector<std::vector<std::vector<std::vector<int>>>>>
85 void cal_eff_pot_mat_complex(
const int ik, std::complex<double>* eff_pot,
const std::vector<int>& isk,
const std::complex<double>* sk);
86 void cal_eff_pot_mat_real(
const int ik,
double* eff_pot,
const std::vector<int>& isk,
const double* sk);
87 void cal_eff_pot_mat_R_double(
const int ispin,
double* SR,
double* HR);
88 void cal_eff_pot_mat_R_complex_double(
const int ispin, std::complex<double>* SR, std::complex<double>* HR);
108 void cal_occup_m_k(
const int iter,
110 const std::vector<std::vector<std::complex<double>>>& dm_k,
112 const double& mixing_beta,
114 void cal_occup_m_gamma(
const int iter,
116 const std::vector<std::vector<double>>& dm_gamma,
117 const double& mixing_beta,
136 std::vector<std::vector<std::vector<std::vector<ModuleBase::matrix>>>>
locale;
137 std::vector<std::vector<std::vector<std::vector<ModuleBase::matrix>>>>
locale_save;
146 void cal_VU_pot_mat_complex(
const int spin,
const bool newlocale, std::complex<double>* VU);
147 void cal_VU_pot_mat_real(
const int spin,
const bool newlocale,
double* VU);
149 double get_onebody_eff_pot(
const int T,
156 const bool newlocale);
163 void fold_dSR_gamma(
const UnitCell& ucell,
178 void folding_matrix_k(
const UnitCell& ucell,
185 std::complex<double>* mat_k,
193 void folding_matrix_k_new(
const int ik,
201 void force_stress(
const UnitCell& ucell,
211 void cal_force_k(
const UnitCell& ucell,
216 const std::complex<double>* rho_VU,
220 void cal_stress_k(
const UnitCell& ucell,
225 const std::complex<double>* rho_VU,
229 void cal_force_gamma(
const UnitCell& ucell,
230 const double* rho_VU,
237 void cal_stress_gamma(
const UnitCell& ucell,
244 const double* rho_VU,
260 const std::string& fn);
274 std::vector<std::vector<std::vector<std::vector<double>>>>
Fk;
275 std::vector<std::vector<std::vector<double>>>
U_Yukawa;
276 std::vector<std::vector<std::vector<double>>>
J_Yukawa;
308void dftu_cal_occup_m(
const int iter,
310 const std::vector<std::vector<T>>& dm,
312 const double& mixing_beta,
Definition force_stress_arrays.h:5
Definition sltk_grid_driver.h:43
3 elements vector
Definition vector3.h:22
void uramping_update()
Definition dftu.cpp:383
void local_occup_bcast(const UnitCell &ucell)
Definition dftu_io.cpp:390
int omc
Definition dftu.h:59
const Parallel_Orbitals * paraV
Definition dftu.h:64
bool Yukawa
Definition dftu.h:269
int get_size_eff_pot_pw() const
Definition dftu.h:104
void zero_locale(const UnitCell &ucell)
Definition dftu_occup.cpp:50
std::vector< std::vector< std::vector< std::vector< ModuleBase::matrix > > > > locale_save
Definition dftu.h:137
void cal_slater_UJ(const UnitCell &ucell, double **rho, const int &nrxx)
bool initialed_locale
Definition dftu.h:122
void write_occup_m(const UnitCell &ucell, std::ofstream &ofs, bool diag=false)
Definition dftu_io.cpp:76
DFTU()
Definition for_testing_input_conv.h:139
std::vector< std::vector< std::vector< std::vector< ModuleBase::matrix > > > > locale
Definition dftu.h:136
~DFTU()
Definition for_testing_input_conv.h:142
std::vector< std::vector< std::vector< std::vector< std::vector< int > > > > > iatlnmipol2iwt
Definition dftu.h:77
std::vector< std::vector< std::vector< std::vector< double > > > > Fk
Definition dftu.h:274
static DFTU * get_instance()
Definition dftu_pw.cpp:10
void read_occup_m(const UnitCell &ucell, const std::string &fn)
Definition dftu_io.cpp:225
void init(UnitCell &cell, const Parallel_Orbitals *pv, const int nks)
Definition dftu.cpp:38
double uramping
Definition dftu.h:58
int mixing_dftu
Definition dftu.h:60
double spherical_Bessel(const int k, const double r, const double lambda)
std::vector< double > U0
Definition dftu.h:56
void cal_slater_Fk(const UnitCell &ucell, const int L, const int T)
int cal_type
Definition dftu.h:65
double get_energy()
Definition dftu.h:51
std::vector< std::complex< double > > eff_pot_pw
Definition dftu.h:129
void copy_locale(const UnitCell &ucell)
Definition dftu_occup.cpp:12
std::vector< double > U
Definition dftu.h:55
double lambda
Definition dftu.h:273
std::vector< int > eff_pot_pw_index
Definition dftu.h:130
void cal_VU_pot_pw(const int spin)
calculate the local DFT+U effective potential matrix for PW base.
Definition dftu_pw.cpp:207
std::vector< std::vector< std::vector< double > > > J_Yukawa
Definition dftu.h:276
void cal_occ_pw(const int iter, const void *psi_in, const ModuleBase::matrix &wg_in, const UnitCell &cell, const double &mixing_beta)
calculate occupation matrix for DFT+U
Definition dftu_pw.cpp:15
void mix_locale(const UnitCell &ucell, const double &mixing_beta)
Definition dftu_occup.cpp:88
void cal_yukawa_lambda(double **rho, const int &nrxx)
std::vector< int > orbital_corr
Definition dftu.h:57
double spherical_Hankel(const int k, const double r, const double lambda)
const std::complex< double > * get_eff_pot_pw(const int iat) const
get effective potential matrix for PW base
Definition dftu.h:103
void cal_energy_correction(const UnitCell &ucell, const int istep)
bool u_converged()
Definition dftu.cpp:403
std::vector< std::vector< std::vector< double > > > U_Yukawa
Definition dftu.h:275
double EU
Definition dftu.h:62
Definition parallel_orbitals.h:9
Definition density_matrix.h:36
Definition elecstate.h:15
Definition hcontainer.h:144
#define N
Definition exp.cpp:24
#define T
Definition exp.cpp:237
Definition cal_epsilon_test.cpp:31
ModuleDFTU::DFTU dftu
Definition for_testing_input_conv.h:254
base device SOURCES math_dngvd_test cpp endif() if(ENABLE_GOOGLEBENCH) AddTest(TARGET PERF_MODULE_HSOLVER_KERNELS LIBS parameter $
Definition CMakeLists.txt:10