ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
sto_forces.h
Go to the documentation of this file.
1#ifndef STO_FORCES_H
2#define STO_FORCES_H
3
5#include "source_psi/psi.h"
6#include "sto_wf.h"
7
8template <typename FPTYPE, typename Device = base_device::DEVICE_CPU>
9class Sto_Forces : public Forces<FPTYPE, Device>
10{
11 public:
12 /* This routine is a driver routine which compute the forces
13 * acting on the atoms, the complete forces in plane waves
14 * is computed from 4 main parts
15 * (1) cal_force_loc: contribution due to local potential.
16 * (2) cal_foce_ew: contribution due to ewald potential.
17 * (3) cal_force_cc: contributino due to NLCC.
18 * (4) cal_nl: contribution due to the non-local pseudopotential.
19 * (4) cal_scc: contributino due to incomplete SCF calculation.
20 */
21 Sto_Forces(const int nat_in) : Forces<FPTYPE, Device>(nat_in){};
23
25 const elecstate::ElecState& elec,
26 ModulePW::PW_Basis* rho_basis,
28 const Structure_Factor* p_sf,
29 K_Vectors* pkv,
30 ModulePW::PW_Basis_K* wfc_basis,
31 const pseudopot_cell_vl& locpp,
32 const pseudopot_cell_vnl& nlpp,
33 UnitCell& ucell,
34 const psi::Psi<std::complex<FPTYPE>, Device>& psi_in,
35 const Stochastic_WF<std::complex<FPTYPE>, Device>& stowf);
36
37 private:
39 const ModuleBase::matrix& wg,
40 K_Vectors* p_kv,
41 ModulePW::PW_Basis_K* wfc_basis,
42 const Structure_Factor* p_sf,
43 const pseudopot_cell_vnl& nlpp,
44 const UnitCell& ucell,
45 const psi::Psi<std::complex<FPTYPE>, Device>& psi_in,
46 const Stochastic_WF<std::complex<FPTYPE>, Device>& stowf);
47
52};
53
54#endif
Definition forces.h:20
Definition klist.h:13
Definition matrix.h:19
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 symmetry.h:16
Definition sto_forces.h:10
Sto_Forces(const int nat_in)
Definition sto_forces.h:21
void cal_sto_force_nl(ModuleBase::matrix &forcenl, const ModuleBase::matrix &wg, K_Vectors *p_kv, ModulePW::PW_Basis_K *wfc_basis, const Structure_Factor *p_sf, const pseudopot_cell_vnl &nlpp, const UnitCell &ucell, const psi::Psi< std::complex< FPTYPE >, Device > &psi_in, const Stochastic_WF< std::complex< FPTYPE >, Device > &stowf)
Definition sto_forces.cpp:190
~Sto_Forces()
Definition sto_forces.h:22
void cal_stoforce(ModuleBase::matrix &force, const elecstate::ElecState &elec, ModulePW::PW_Basis *rho_basis, ModuleSymmetry::Symmetry *p_symm, const Structure_Factor *p_sf, K_Vectors *pkv, ModulePW::PW_Basis_K *wfc_basis, const pseudopot_cell_vl &locpp, const pseudopot_cell_vnl &nlpp, UnitCell &ucell, const psi::Psi< std::complex< FPTYPE >, Device > &psi_in, const Stochastic_WF< std::complex< FPTYPE >, Device > &stowf)
Definition sto_forces.cpp:20
Definition sto_wf.h:13
Definition structure_factor.h:11
Definition unitcell.h:16
Definition elecstate.h:15
Definition VL_in_pw.h:11
Definition VNL_in_pw.h:21
Definition psi.h:37
Definition memory_op.h:77
Definition memory_op.h:17