ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
FORCE_STRESS.h
Go to the documentation of this file.
1#ifndef FORCE_STRESS_LCAO_H
2#define FORCE_STRESS_LCAO_H
3
4#include "FORCE.h"
12#include "source_psi/psi.h"
13#ifdef __EXX
15#endif
16#include "force_stress_arrays.h"
19
20template <typename T>
22{
23 // mohan add 2021-02-09
24 friend class md;
25 friend void Input_Conv::Convert();
26 friend class ions;
27
28 public:
29 Force_Stress_LCAO(Record_adj& ra, const int nat_in);
31
32 void getForceStress(UnitCell& ucell,
33 const bool isforce,
34 const bool isstress,
35 const bool istestf,
36 const bool istests,
37 const Grid_Driver& gd,
39 const elecstate::ElecState* pelec,
40 const psi::Psi<T>* psi,
41 Gint_Gamma& gint_gamma, // mohan add 2024-04-01
42 Gint_k& gint_k, // mohan add 2024-04-01
43 const TwoCenterBundle& two_center_bundle,
44 const LCAO_Orbitals& orb,
47 const pseudopot_cell_vl& locpp,
48 const Structure_Factor& sf,
49 const K_Vectors& kv,
50 ModulePW::PW_Basis* rhopw,
51 surchem& solvent,
52#ifdef __MLALGO
54#endif
55#ifdef __EXX
57 Exx_LRI_Interface<T, std::complex<double>>& exc,
58#endif
60
61 private:
62 int nat;
66
68
69 void calForcePwPart(UnitCell& ucell,
70 ModuleBase::matrix& fvl_dvl,
71 ModuleBase::matrix& fewalds,
74 const double& etxc,
75 const ModuleBase::matrix& vnew,
76 const bool vnew_exist,
77 const Charge* const chr,
78 ModulePW::PW_Basis* rhopw,
79 const pseudopot_cell_vl& locpp,
80 const Structure_Factor& sf);
81
82 void integral_part(const bool isGammaOnly,
83 const bool isforce,
84 const bool isstress,
85 const UnitCell& ucell,
86 const Grid_Driver& gd,
87 ForceStressArrays& fsr, // mohan add 2024-06-15
88 const elecstate::ElecState* pelec,
89 const psi::Psi<T>* psi,
90 ModuleBase::matrix& foverlap,
91 ModuleBase::matrix& ftvnl_dphi,
92 ModuleBase::matrix& fvnl_dbeta,
93 ModuleBase::matrix& fvl_dphi,
94 ModuleBase::matrix& soverlap,
95 ModuleBase::matrix& stvnl_dphi,
96 ModuleBase::matrix& svnl_dbeta,
97 ModuleBase::matrix& svl_dphi,
98#if __MLALGO
99 ModuleBase::matrix& fvnl_dalpha,
100 ModuleBase::matrix& svnl_dalpha,
101 LCAO_Deepks<T>& ld,
102#endif
103 Gint_Gamma& gint_gamma,
104 Gint_k& gint_k,
105 const TwoCenterBundle& two_center_bundle,
106 const LCAO_Orbitals& orb,
107 const Parallel_Orbitals& pv,
108 const K_Vectors& kv);
109
110 void calStressPwPart(UnitCell& ucell,
111 ModuleBase::matrix& sigmadvl,
112 ModuleBase::matrix& sigmahar,
113 ModuleBase::matrix& sigmaewa,
114 ModuleBase::matrix& sigmacc,
115 ModuleBase::matrix& sigmaxc,
116 const double& etxc,
117 const Charge* const chr,
118 ModulePW::PW_Basis* rhopw,
119 const pseudopot_cell_vl& locpp,
120 const Structure_Factor& sf);
121
123};
124
125template <typename T>
127
128#endif
Definition charge.h:20
Definition Exx_LRI_interface.h:32
Definition force_stress_arrays.h:5
Definition FORCE.h:38
Definition FORCE_STRESS.h:22
Record_adj * RA
Definition FORCE_STRESS.h:63
void calStressPwPart(UnitCell &ucell, ModuleBase::matrix &sigmadvl, ModuleBase::matrix &sigmahar, ModuleBase::matrix &sigmaewa, ModuleBase::matrix &sigmacc, ModuleBase::matrix &sigmaxc, const double &etxc, const Charge *const chr, ModulePW::PW_Basis *rhopw, const pseudopot_cell_vl &locpp, const Structure_Factor &sf)
Definition FORCE_STRESS.cpp:947
int nat
Definition FORCE_STRESS.h:62
void getForceStress(UnitCell &ucell, const bool isforce, const bool isstress, const bool istestf, const bool istests, const Grid_Driver &gd, Parallel_Orbitals &pv, const elecstate::ElecState *pelec, const psi::Psi< T > *psi, Gint_Gamma &gint_gamma, Gint_k &gint_k, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, ModuleBase::matrix &fcs, ModuleBase::matrix &scs, const pseudopot_cell_vl &locpp, const Structure_Factor &sf, const K_Vectors &kv, ModulePW::PW_Basis *rhopw, surchem &solvent, LCAO_Deepks< T > &ld, ModuleSymmetry::Symmetry *symm)
Definition FORCE_STRESS.cpp:34
~Force_Stress_LCAO()
Definition FORCE_STRESS.cpp:30
void forceSymmetry(const UnitCell &ucell, ModuleBase::matrix &fcs, ModuleSymmetry::Symmetry *symm)
Definition FORCE_STRESS.cpp:997
Stress_Func< double > sc_pw
Definition FORCE_STRESS.h:65
void calForcePwPart(UnitCell &ucell, ModuleBase::matrix &fvl_dvl, ModuleBase::matrix &fewalds, ModuleBase::matrix &fcc, ModuleBase::matrix &fscc, const double &etxc, const ModuleBase::matrix &vnew, const bool vnew_exist, const Charge *const chr, ModulePW::PW_Basis *rhopw, const pseudopot_cell_vl &locpp, const Structure_Factor &sf)
Definition FORCE_STRESS.cpp:793
friend class ions
Definition FORCE_STRESS.h:26
void integral_part(const bool isGammaOnly, const bool isforce, const bool isstress, const UnitCell &ucell, const Grid_Driver &gd, ForceStressArrays &fsr, const elecstate::ElecState *pelec, const psi::Psi< T > *psi, ModuleBase::matrix &foverlap, ModuleBase::matrix &ftvnl_dphi, ModuleBase::matrix &fvnl_dbeta, ModuleBase::matrix &fvl_dphi, ModuleBase::matrix &soverlap, ModuleBase::matrix &stvnl_dphi, ModuleBase::matrix &svnl_dbeta, ModuleBase::matrix &svl_dphi, Gint_Gamma &gint_gamma, Gint_k &gint_k, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const K_Vectors &kv)
static double force_invalid_threshold_ev
Definition FORCE_STRESS.h:122
Force_LCAO< T > flk
Definition FORCE_STRESS.h:64
friend class md
Definition FORCE_STRESS.h:24
Definition gint_gamma.h:23
Definition gint_k.h:13
Definition sltk_grid_driver.h:43
Definition klist.h:13
Definition LCAO_deepks.h:52
Definition ORB_read.h:19
Definition matrix.h:19
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 parallel_orbitals.h:9
Definition record_adj.h:11
Definition stress_func.h:57
Definition structure_factor.h:11
Definition two_center_bundle.h:11
Definition unitcell.h:16
Definition elecstate.h:15
Definition VL_in_pw.h:11
Definition psi.h:37
Definition surchem.h:15
#define T
Definition exp.cpp:237
void Convert()
Pass the data members from the INPUT instance(defined in source_io/input.cpp) to GlobalV and GlobalC.
Definition input_conv.cpp:163
Definition exx_lip.h:23
base device SOURCES math_dngvd_test cpp endif() if(ENABLE_GOOGLEBENCH) AddTest(TARGET PERF_MODULE_HSOLVER_KERNELS LIBS parameter $
Definition CMakeLists.txt:10