18template <
typename FPTYPE,
typename Device = base_device::DEVICE_CPU>
48 const psi::Psi<std::complex<FPTYPE>, Device>* psi_in =
nullptr);
86 const psi::Psi<std::complex<FPTYPE>, Device>* psi_in =
nullptr);
97 const psi::Psi <std::complex<FPTYPE>, Device>* psi_in =
nullptr);
101 const bool vnew_exist,
109 void cal_ylm(
int lmax,
int npw,
const FPTYPE* gk_in, FPTYPE* ylm);
Definition FORCE_STRESS.h:22
void cal_force_nl(ModuleBase::matrix &forcenl, const ModuleBase::matrix &wg, const ModuleBase::matrix &ekb, const K_Vectors *p_kv, const ModulePW::PW_Basis_K *psi_basis, const Structure_Factor *p_sf, const pseudopot_cell_vnl &nlpp_in, const UnitCell &ucell_in, const psi::Psi< std::complex< FPTYPE >, Device > *psi_in=nullptr)
This routine computes the atomic force of non-local pseudopotential F^{NL}_i = \sum_{n,...
Definition forces_nl.cpp:11
base_device::AbacusDevice_t device
Definition forces.h:130
int nat
Definition forces.h:51
void cal_force_cc(ModuleBase::matrix &forcecc, const ModulePW::PW_Basis *const rho_basis, const Charge *const chr, const bool *numeric, UnitCell &ucell_in)
Definition forces_cc.cpp:31
void cal_force_onsite(ModuleBase::matrix &force_onsite, const ModuleBase::matrix &wg, const ModulePW::PW_Basis_K *wfc_basis, const UnitCell &ucell_in, const psi::Psi< std::complex< FPTYPE >, Device > *psi_in=nullptr)
atomic force for DFT+U and DeltaSpin
Definition forces_onsite.cpp:11
void cal_force_scc(ModuleBase::matrix &forcescc, const ModulePW::PW_Basis *const rho_basis, const ModuleBase::matrix &v_current, const bool vnew_exist, const bool *numeric, const UnitCell &ucell_in)
Definition forces_scc.cpp:24
void deriv_drhoc(const bool &numeric, const int mesh, const FPTYPE *r, const FPTYPE *rab, const FPTYPE *rhoc, FPTYPE *drhocg, const ModulePW::PW_Basis *const rho_basis, int type, const UnitCell &ucell_in)
Definition forces_cc.cpp:233
int npwx
Definition forces.h:52
Device * ctx
Definition forces.h:128
void cal_force(UnitCell &ucell, ModuleBase::matrix &force, const elecstate::ElecState &elec, const ModulePW::PW_Basis *const rho_basis, ModuleSymmetry::Symmetry *p_symm, Structure_Factor *p_sf, surchem &solvent, const pseudopot_cell_vl *locpp, const pseudopot_cell_vnl *nlpp=nullptr, K_Vectors *pkv=nullptr, ModulePW::PW_Basis_K *psi_basis=nullptr, const psi::Psi< std::complex< FPTYPE >, Device > *psi_in=nullptr)
Definition forces.cpp:25
base_device::DEVICE_CPU * cpu_ctx
Definition forces.h:129
Forces(const int nat_in)
Definition forces.h:34
void deriv_drhoc_scc(const bool &numeric, const int mesh, const FPTYPE *r, const FPTYPE *rab, const FPTYPE *rhoc, FPTYPE *drhocg, const ModulePW::PW_Basis *const rho_basis, const UnitCell &ucell_in)
Definition forces_scc.cpp:142
~Forces()
Definition forces.h:35
void cal_force_us(ModuleBase::matrix &forcenl, const ModulePW::PW_Basis *const rho_basis, const pseudopot_cell_vnl &ppcell_in, const elecstate::ElecState &elec, const UnitCell &ucell)
Definition forces_us.cpp:17
void cal_force_ew(const UnitCell &ucell, ModuleBase::matrix &forceion, const ModulePW::PW_Basis *const rho_basis, const Structure_Factor *p_sf)
Definition forces.cpp:472
void cal_ylm(int lmax, int npw, const FPTYPE *gk_in, FPTYPE *ylm)
void cal_force_loc(const UnitCell &ucell, ModuleBase::matrix &forcelc, const ModulePW::PW_Basis *const rho_basis, const ModuleBase::matrix &vloc, const Charge *const chr)
Definition forces.cpp:324
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 structure_factor.h:11
Definition elecstate.h:15
Definition VNL_in_pw.h:21
AbacusDevice_t
Definition types.h:12
Definition math_kernel_op.h:217
Definition memory_op.h:77
Definition memory_op.h:17
Definition memory_op.h:45