ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
Force_Stress_LCAO< T > Class Template Reference

#include <FORCE_STRESS.h>

Collaboration diagram for Force_Stress_LCAO< T >:

Public Member Functions

 Force_Stress_LCAO (Record_adj &ra, const int nat_in)
 
 ~Force_Stress_LCAO ()
 
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)
 

Private Member Functions

void forceSymmetry (const UnitCell &ucell, ModuleBase::matrix &fcs, ModuleSymmetry::Symmetry *symm)
 
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)
 
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)
 
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)
 
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< double > *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)
 
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< std::complex< double > > *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)
 

Private Attributes

int nat
 
Record_adjRA
 
Force_LCAO< Tflk
 
Stress_Func< double > sc_pw
 

Static Private Attributes

static double force_invalid_threshold_ev = 0.00
 

Friends

class md
 
class ions
 
void Input_Conv::Convert ()
 

Constructor & Destructor Documentation

◆ Force_Stress_LCAO()

template<typename T >
Force_Stress_LCAO< T >::Force_Stress_LCAO ( Record_adj ra,
const int  nat_in 
)

◆ ~Force_Stress_LCAO()

template<typename T >
Force_Stress_LCAO< T >::~Force_Stress_LCAO ( )

Member Function Documentation

◆ calForcePwPart()

template<typename T >
void Force_Stress_LCAO< T >::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 
)
private
Here is the call graph for this function:

◆ calStressPwPart()

template<typename T >
void Force_Stress_LCAO< T >::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 
)
private
Here is the call graph for this function:

◆ forceSymmetry()

template<typename T >
void Force_Stress_LCAO< T >::forceSymmetry ( const UnitCell ucell,
ModuleBase::matrix fcs,
ModuleSymmetry::Symmetry symm 
)
private
Here is the call graph for this function:

◆ getForceStress()

template<typename T >
void Force_Stress_LCAO< T >::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 
)

stress

atomic forces from integration (4 terms)

forces and stress from vdw

forces from E-field

atomic forces from E-field of rt-TDDFT

atomic forces from gate field

atomic forces from implicit solvation model

atomic forces from DFT+U (Quxin version)

Here is the call graph for this function:
Here is the caller graph for this function:

◆ integral_part() [1/3]

void Force_Stress_LCAO< double >::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< double > *  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 
)
private
Here is the call graph for this function:

◆ integral_part() [2/3]

void Force_Stress_LCAO< std::complex< double > >::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< std::complex< double > > *  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 
)
private
Here is the call graph for this function:

◆ integral_part() [3/3]

template<typename T >
void Force_Stress_LCAO< T >::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 
)
private

Friends And Related Symbol Documentation

◆ Input_Conv::Convert

template<typename T >
void Input_Conv::Convert ( )
friend

◆ ions

template<typename T >
friend class ions
friend

◆ md

template<typename T >
friend class md
friend

Member Data Documentation

◆ flk

template<typename T >
Force_LCAO<T> Force_Stress_LCAO< T >::flk
private

◆ force_invalid_threshold_ev

template<typename T >
double Force_Stress_LCAO< T >::force_invalid_threshold_ev = 0.00
staticprivate

◆ nat

template<typename T >
int Force_Stress_LCAO< T >::nat
private

◆ RA

template<typename T >
Record_adj* Force_Stress_LCAO< T >::RA
private

◆ sc_pw

template<typename T >
Stress_Func<double> Force_Stress_LCAO< T >::sc_pw
private

The documentation for this class was generated from the following files: