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

#include <FORCE.h>

Collaboration diagram for Force_LCAO< T >:

Public Member Functions

 Force_LCAO ()
 
 ~Force_LCAO ()
 

Private Member Functions

void ftable (const bool isforce, const bool isstress, ForceStressArrays &fsr, const UnitCell &ucell, const Grid_Driver &gd, const psi::Psi< T > *psi, const elecstate::ElecState *pelec, 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, ModuleBase::matrix &fvnl_dalpha, ModuleBase::matrix &svnl_dalpha, LCAO_Deepks< T > &ld, typename TGint< T >::type &gint, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const K_Vectors *kv=nullptr, Record_adj *ra=nullptr)
 
void allocate (const UnitCell &ucell, const Grid_Driver &gd, const Parallel_Orbitals &pv, ForceStressArrays &fsr, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, const int &nks=0, const std::vector< ModuleBase::Vector3< double > > &kvec_d={})
 
void finish_ftable (ForceStressArrays &fsr)
 
void average_force (double *fm)
 
void cal_fedm (const bool isforce, const bool isstress, ForceStressArrays &fsr, const UnitCell &ucell, const elecstate::DensityMatrix< T, double > &dm, const psi::Psi< T > *psi, const Parallel_Orbitals &pv, const elecstate::ElecState *pelec, ModuleBase::matrix &foverlap, ModuleBase::matrix &soverlap, const K_Vectors *kv=nullptr, Record_adj *ra=nullptr)
 
void cal_ftvnl_dphi (const elecstate::DensityMatrix< T, double > *dm, const Parallel_Orbitals &pv, const UnitCell &ucell, ForceStressArrays &fsr, const bool isforce, const bool isstress, ModuleBase::matrix &ftvnl_dphi, ModuleBase::matrix &stvnl_dphi, Record_adj *ra=nullptr)
 
void cal_fvl_dphi (const bool isforce, const bool isstress, const elecstate::Potential *pot_in, typename TGint< T >::type &gint, ModuleBase::matrix &fvl_dphi, ModuleBase::matrix &svl_dphi)
 
elecstate::DensityMatrix< T, double > cal_edm (const elecstate::ElecState *pelec, const psi::Psi< T > &psi, const elecstate::DensityMatrix< T, double > &dm, const K_Vectors &kv, const Parallel_Orbitals &pv, const int &nspin, const int &nbands, const UnitCell &ucell, Record_adj &ra) const
 
elecstate::DensityMatrix< double, double > cal_edm (const elecstate::ElecState *pelec, const psi::Psi< double > &psi, const elecstate::DensityMatrix< double, double > &dm, const K_Vectors &kv, const Parallel_Orbitals &pv, const int &nspin, const int &nbands, const UnitCell &ucell, Record_adj &ra) const
 
elecstate::DensityMatrix< std::complex< double >, double > cal_edm (const elecstate::ElecState *pelec, const psi::Psi< std::complex< double > > &psi, const elecstate::DensityMatrix< std::complex< double >, double > &dm, const K_Vectors &kv, const Parallel_Orbitals &pv, const int &nspin, const int &nbands, const UnitCell &ucell, Record_adj &ra) const
 
void allocate (const UnitCell &ucell, const Grid_Driver &gd, const Parallel_Orbitals &pv, ForceStressArrays &fsr, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, const int &nks, const std::vector< ModuleBase::Vector3< double > > &kvec_d)
 
void finish_ftable (ForceStressArrays &fsr)
 
void ftable (const bool isforce, const bool isstress, ForceStressArrays &fsr, const UnitCell &ucell, const Grid_Driver &gd, const psi::Psi< double > *psi, const elecstate::ElecState *pelec, 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, ModuleBase::matrix &fvnl_dalpha, ModuleBase::matrix &svnl_dalpha, LCAO_Deepks< double > &ld, TGint< double >::type &gint, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const K_Vectors *kv, Record_adj *ra)
 
void allocate (const UnitCell &ucell, const Grid_Driver &gd, const Parallel_Orbitals &pv, ForceStressArrays &fsr, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, const int &nks, const std::vector< ModuleBase::Vector3< double > > &kvec_d)
 
void finish_ftable (ForceStressArrays &fsr)
 
void ftable (const bool isforce, const bool isstress, ForceStressArrays &fsr, const UnitCell &ucell, const Grid_Driver &gd, const psi::Psi< std::complex< double > > *psi, const elecstate::ElecState *pelec, 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, ModuleBase::matrix &fvnl_dalpha, ModuleBase::matrix &svnl_dalpha, LCAO_Deepks< std::complex< double > > &ld, TGint< std::complex< double > >::type &gint, const TwoCenterBundle &two_center_bundle, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const K_Vectors *kv, Record_adj *ra)
 

Private Attributes

const Parallel_OrbitalsParaV
 
elecstate::Potentialpot
 

Friends

class Force_Stress_LCAO< T >
 

Constructor & Destructor Documentation

◆ Force_LCAO()

template<typename T >
Force_LCAO< T >::Force_LCAO ( )
inline

◆ ~Force_LCAO()

template<typename T >
Force_LCAO< T >::~Force_LCAO ( )
inline

Member Function Documentation

◆ allocate() [1/3]

void Force_LCAO< double >::allocate ( const UnitCell ucell,
const Grid_Driver gd,
const Parallel_Orbitals pv,
ForceStressArrays fsr,
const TwoCenterBundle two_center_bundle,
const LCAO_Orbitals orb,
const int &  nks,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d 
)
private
Here is the call graph for this function:

◆ allocate() [2/3]

void Force_LCAO< std::complex< double > >::allocate ( const UnitCell ucell,
const Grid_Driver gd,
const Parallel_Orbitals pv,
ForceStressArrays fsr,
const TwoCenterBundle two_center_bundle,
const LCAO_Orbitals orb,
const int &  nks,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d 
)
private
Here is the call graph for this function:

◆ allocate() [3/3]

template<typename T >
void Force_LCAO< T >::allocate ( const UnitCell ucell,
const Grid_Driver gd,
const Parallel_Orbitals pv,
ForceStressArrays fsr,
const TwoCenterBundle two_center_bundle,
const LCAO_Orbitals orb,
const int &  nks = 0,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d = {} 
)
private

◆ average_force()

template<typename T >
void Force_LCAO< T >::average_force ( double *  fm)
private

◆ cal_edm() [1/3]

elecstate::DensityMatrix< double, double > Force_LCAO< double >::cal_edm ( const elecstate::ElecState pelec,
const psi::Psi< double > &  psi,
const elecstate::DensityMatrix< double, double > &  dm,
const K_Vectors kv,
const Parallel_Orbitals pv,
const int &  nspin,
const int &  nbands,
const UnitCell ucell,
Record_adj ra 
) const
private
Here is the call graph for this function:

◆ cal_edm() [2/3]

elecstate::DensityMatrix< std::complex< double >, double > Force_LCAO< std::complex< double > >::cal_edm ( const elecstate::ElecState pelec,
const psi::Psi< std::complex< double > > &  psi,
const elecstate::DensityMatrix< std::complex< double >, double > &  dm,
const K_Vectors kv,
const Parallel_Orbitals pv,
const int &  nspin,
const int &  nbands,
const UnitCell ucell,
Record_adj ra 
) const
private
Here is the call graph for this function:

◆ cal_edm() [3/3]

template<typename T >
elecstate::DensityMatrix< T, double > Force_LCAO< T >::cal_edm ( const elecstate::ElecState pelec,
const psi::Psi< T > &  psi,
const elecstate::DensityMatrix< T, double > &  dm,
const K_Vectors kv,
const Parallel_Orbitals pv,
const int &  nspin,
const int &  nbands,
const UnitCell ucell,
Record_adj ra 
) const
private

◆ cal_fedm()

template<typename T >
void Force_LCAO< T >::cal_fedm ( const bool  isforce,
const bool  isstress,
ForceStressArrays fsr,
const UnitCell ucell,
const elecstate::DensityMatrix< T, double > &  dm,
const psi::Psi< T > *  psi,
const Parallel_Orbitals pv,
const elecstate::ElecState pelec,
ModuleBase::matrix foverlap,
ModuleBase::matrix soverlap,
const K_Vectors kv = nullptr,
Record_adj ra = nullptr 
)
private

◆ cal_ftvnl_dphi()

template<typename T >
void Force_LCAO< T >::cal_ftvnl_dphi ( const elecstate::DensityMatrix< T, double > *  dm,
const Parallel_Orbitals pv,
const UnitCell ucell,
ForceStressArrays fsr,
const bool  isforce,
const bool  isstress,
ModuleBase::matrix ftvnl_dphi,
ModuleBase::matrix stvnl_dphi,
Record_adj ra = nullptr 
)
private

◆ cal_fvl_dphi()

template<typename T >
void Force_LCAO< T >::cal_fvl_dphi ( const bool  isforce,
const bool  isstress,
const elecstate::Potential pot_in,
typename TGint< T >::type &  gint,
ModuleBase::matrix fvl_dphi,
ModuleBase::matrix svl_dphi 
)
private

◆ finish_ftable() [1/3]

template<typename T >
void Force_LCAO< T >::finish_ftable ( ForceStressArrays fsr)
private

◆ finish_ftable() [2/3]

void Force_LCAO< double >::finish_ftable ( ForceStressArrays fsr)
private

◆ finish_ftable() [3/3]

void Force_LCAO< std::complex< double > >::finish_ftable ( ForceStressArrays fsr)
private

◆ ftable() [1/3]

void Force_LCAO< double >::ftable ( const bool  isforce,
const bool  isstress,
ForceStressArrays fsr,
const UnitCell ucell,
const Grid_Driver gd,
const psi::Psi< double > *  psi,
const elecstate::ElecState pelec,
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,
ModuleBase::matrix fvnl_dalpha,
ModuleBase::matrix svnl_dalpha,
LCAO_Deepks< double > &  ld,
TGint< double >::type &  gint,
const TwoCenterBundle two_center_bundle,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const K_Vectors kv,
Record_adj ra 
)
private
Here is the call graph for this function:

◆ ftable() [2/3]

void Force_LCAO< std::complex< double > >::ftable ( const bool  isforce,
const bool  isstress,
ForceStressArrays fsr,
const UnitCell ucell,
const Grid_Driver gd,
const psi::Psi< std::complex< double > > *  psi,
const elecstate::ElecState pelec,
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,
ModuleBase::matrix fvnl_dalpha,
ModuleBase::matrix svnl_dalpha,
LCAO_Deepks< std::complex< double > > &  ld,
TGint< std::complex< double > >::type &  gint,
const TwoCenterBundle two_center_bundle,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const K_Vectors kv,
Record_adj ra 
)
private
Here is the call graph for this function:

◆ ftable() [3/3]

template<typename T >
void Force_LCAO< T >::ftable ( const bool  isforce,
const bool  isstress,
ForceStressArrays fsr,
const UnitCell ucell,
const Grid_Driver gd,
const psi::Psi< T > *  psi,
const elecstate::ElecState pelec,
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,
ModuleBase::matrix fvnl_dalpha,
ModuleBase::matrix svnl_dalpha,
LCAO_Deepks< T > &  ld,
typename TGint< T >::type &  gint,
const TwoCenterBundle two_center_bundle,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const K_Vectors kv = nullptr,
Record_adj ra = nullptr 
)
private

Friends And Related Symbol Documentation

◆ Force_Stress_LCAO< T >

template<typename T >
friend class Force_Stress_LCAO< T >
friend

Member Data Documentation

◆ ParaV

template<typename T >
const Parallel_Orbitals* Force_LCAO< T >::ParaV
private

◆ pot

template<typename T >
elecstate::Potential* Force_LCAO< T >::pot
private

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