|
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) |
|
void | cal_force_ew (const UnitCell &ucell, ModuleBase::matrix &forceion, const ModulePW::PW_Basis *const rho_basis, const Structure_Factor *p_sf) |
|
void | cal_force_cc (ModuleBase::matrix &forcecc, const ModulePW::PW_Basis *const rho_basis, const Charge *const chr, const bool *numeric, UnitCell &ucell_in) |
|
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,k}f_{nk}\sum_I \sum_{lm,l'm'}D_{l,l'}^{I} [ \sum_G \langle c_{nk}(\mathbf{G+K})|\beta_{lm}^I(\mathbf{G+K})\rangle * \sum_{G'}\langle \beta_{lm}^I(\mathbf{G+K})*(-j)^l(\mathbf{G+K})_i |c_{nk}(\mathbf{G+K})\rangle ] there would be three parts in the above equation: (1) sum over becp and dbecp with D_{l,l'}^{I} --— first line in the above equation (2) calculate becp = <psi | beta> --— second line in the above equation (3) calculate dbecp = <psi | \nabla beta> --— third line in the above equation.
|
|
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
|
|
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) |
|
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) |
|
void | cal_ylm (int lmax, int npw, const FPTYPE *gk_in, FPTYPE *ylm) |
|
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) |
|
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) |
|
|
using | gemm_op = ModuleBase::gemm_op< std::complex< FPTYPE >, Device > |
|
using | resmem_complex_op = base_device::memory::resize_memory_op< std::complex< FPTYPE >, Device > |
|
using | resmem_complex_h_op = base_device::memory::resize_memory_op< std::complex< FPTYPE >, base_device::DEVICE_CPU > |
|
using | delmem_complex_op = base_device::memory::delete_memory_op< std::complex< FPTYPE >, Device > |
|
using | delmem_complex_h_op = base_device::memory::delete_memory_op< std::complex< FPTYPE >, base_device::DEVICE_CPU > |
|
using | syncmem_complex_h2d_op = base_device::memory::synchronize_memory_op< std::complex< FPTYPE >, Device, base_device::DEVICE_CPU > |
|
using | syncmem_complex_d2h_op = base_device::memory::synchronize_memory_op< std::complex< FPTYPE >, base_device::DEVICE_CPU, Device > |
|
using | resmem_var_op = base_device::memory::resize_memory_op< FPTYPE, Device > |
|
using | delmem_var_op = base_device::memory::delete_memory_op< FPTYPE, Device > |
|
using | syncmem_var_h2d_op = base_device::memory::synchronize_memory_op< FPTYPE, Device, base_device::DEVICE_CPU > |
|
using | syncmem_var_d2h_op = base_device::memory::synchronize_memory_op< FPTYPE, base_device::DEVICE_CPU, Device > |
|
using | resmem_int_op = base_device::memory::resize_memory_op< int, Device > |
|
using | delmem_int_op = base_device::memory::delete_memory_op< int, Device > |
|
using | syncmem_int_h2d_op = base_device::memory::synchronize_memory_op< int, Device, base_device::DEVICE_CPU > |
|