55template <
typename FPTYPE,
typename Device = base_device::DEVICE_CPU>
70 const psi::Psi <std::complex<FPTYPE>, Device>* psi_in =
nullptr);
98 const FPTYPE* vloc_at,
125 const double& tpiba2,
146 const psi::Psi <std::complex<FPTYPE>, Device>* psi_in);
165 const psi::Psi <std::complex<FPTYPE>, Device>* psi_in,
183 const psi::Psi <std::complex<FPTYPE>, Device>* psi_in,
200 const FPTYPE& table_interval,
237 std::complex<FPTYPE>* dqg);
Definition complexmatrix.h:14
3 elements vector
Definition vector3.h:22
double float array
Definition realarray.h:21
Special pw_basis class. It includes different k-points.
Definition pw_basis_k.h:57
A class which can convert a function of "r" to the corresponding linear superposition of plane waves ...
Definition pw_basis.h:56
Definition stress_func.h:57
base_device::DEVICE_CPU * cpu_ctx
Definition stress_func.h:241
void stress_har(const UnitCell &ucell, ModuleBase::matrix &sigma, ModulePW::PW_Basis *rho_basis, const bool is_pw, const Charge *const chr)
Definition stress_func_har.cpp:9
Stress_Func()
Definition stress_func.h:59
void stress_kin(ModuleBase::matrix &sigma, const ModuleBase::matrix &wg, ModuleSymmetry::Symmetry *p_symm, K_Vectors *p_kv, ModulePW::PW_Basis_K *wfc_basis, const UnitCell &ucell_in, const psi::Psi< std::complex< FPTYPE >, Device > *psi_in=nullptr)
Definition stress_func_kin.cpp:9
void stress_onsite(ModuleBase::matrix &sigma, const ModuleBase::matrix &wg, const ModulePW::PW_Basis_K *wfc_basis, const UnitCell &ucell_in, const psi::Psi< std::complex< FPTYPE >, Device > *psi_in, ModuleSymmetry::Symmetry *p_symm)
This routine computes the stress contribution from the DFT+U and DeltaSpin calculations Stress^{NL}_{...
Definition stress_func_onsite.cpp:10
void get_dvnl1(ModuleBase::ComplexMatrix &vkb, const int ik, const int ipol, Structure_Factor *p_sf, ModulePW::PW_Basis_K *wfc_basis)
Definition stress_func_nl.cpp:105
~Stress_Func()
Definition stress_func.h:60
void stress_nl(ModuleBase::matrix &sigma, const ModuleBase::matrix &wg, const ModuleBase::matrix &ekb, Structure_Factor *p_sf, K_Vectors *p_kv, ModuleSymmetry::Symmetry *p_symm, ModulePW::PW_Basis_K *wfc_basis, const psi::Psi< std::complex< FPTYPE >, Device > *psi_in, const pseudopot_cell_vnl &nlpp_in, const UnitCell &ucell_in)
This routine computes the atomic force of non-local pseudopotential Stress^{NL}_{ij} = -1/\Omega \sum...
Definition stress_func_nl.cpp:13
void stress_cc(ModuleBase::matrix &sigma, ModulePW::PW_Basis *rho_basis, UnitCell &ucell, const Structure_Factor *p_sf, const bool is_pw, const bool *numeric, const Charge *const chr)
Definition stress_func_cc.cpp:16
void stress_ewa(const UnitCell &ucell, ModuleBase::matrix &sigma, ModulePW::PW_Basis *rho_basis, const bool is_pw)
Definition stress_func_ewa.cpp:14
void dvloc_of_g(const int &msh, const FPTYPE *rab, const FPTYPE *r, const FPTYPE *vloc_at, const FPTYPE &zp, FPTYPE *dvloc, ModulePW::PW_Basis *rho_basis, const UnitCell &ucell_in)
Definition stress_func_loc.cpp:170
void stress_loc(const UnitCell &ucell, ModuleBase::matrix &sigma, ModulePW::PW_Basis *rho_basis, const ModuleBase::matrix &vloc, const Structure_Factor *p_sf, const bool is_pw, const Charge *const chr)
Definition stress_func_loc.cpp:11
pseudopot_cell_vnl * nlpp
Definition stress_func.h:277
void dqvan2(const pseudopot_cell_vnl &ppcell_in, const int ih, const int jh, const int itype, const int ipol, const int ng, const ModuleBase::Vector3< FPTYPE > *g, const FPTYPE *qnorm, const FPTYPE &tpiba, const ModuleBase::matrix &ylmk0, const ModuleBase::matrix &dylmk0, std::complex< FPTYPE > *dqg)
Compute the derivatives of the radial Fourier transform of the Q functions.
Definition stress_func_us.cpp:192
void get_dvnl2(ModuleBase::ComplexMatrix &vkb, const int ik, Structure_Factor *p_sf, ModulePW::PW_Basis_K *wfc_basis)
Definition stress_func_nl.cpp:232
Device * ctx
Definition stress_func.h:240
void deriv_drhoc(const bool &numeric, const double &omega, const double &tpiba2, const int mesh, const FPTYPE *r, const FPTYPE *rab, const FPTYPE *rhoc, FPTYPE *drhocg, ModulePW::PW_Basis *rho_basis, int type)
Definition stress_func_cc.cpp:217
void stress_gga(const UnitCell &ucell, ModuleBase::matrix &sigma, ModulePW::PW_Basis *rho_basis, const Charge *const chr)
Definition stress_func_gga.cpp:8
base_device::AbacusDevice_t device
Definition stress_func.h:242
void stress_mgga(const UnitCell &ucell, ModuleBase::matrix &sigma, const ModuleBase::matrix &wg, const ModuleBase::matrix &v_ofk, const Charge *const chr, K_Vectors *p_kv, ModulePW::PW_Basis_K *wfc_basis, const psi::Psi< std::complex< FPTYPE >, Device > *psi_in)
Definition stress_func_mgga.cpp:12
void dvloc_coulomb(const UnitCell &ucell, const FPTYPE &zp, FPTYPE *dvloc, ModulePW::PW_Basis *rho_basis)
compute the derivative of the coulomb potential in reciprocal space D V(g^2) / D g^2 = 4pi e^2/omegai...
Definition stress_func_loc.cpp:275
const UnitCell * ucell
Definition stress_func.h:278
FPTYPE Polynomial_Interpolation_nl(const ModuleBase::realArray &table, const int &dim1, const int &dim2, const int &dim3, const FPTYPE &table_interval, const FPTYPE &x)
Definition stress_func_nl.cpp:353
Definition structure_factor.h:11
Definition VNL_in_pw.h:21
AbacusDevice_t
Definition types.h:12
Definition math_kernel_op.h:217
Definition memory_op.cpp:92
Definition memory_op.h:77
Definition memory_op.cpp:20
Definition memory_op.h:17
Definition memory_op.h:31
Definition memory_op.h:45
Definition stress_op.h:15
Definition stress_op.h:57
Definition stress_op.h:181
Definition stress_op.h:166
Definition stress_op.h:217
Definition stress_op.h:201