ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Classes | Typedefs | Functions
LCAO_domain Namespace Reference

Classes

class  Setup_DM
 

Typedefs

typedef std::tuple< int, int, int, int > key_tuple
 

Functions

template<typename T >
void DeePKS_init (const UnitCell &ucell, Parallel_Orbitals &pv, const int &nks, const LCAO_Orbitals &orb, LCAO_Deepks< T > &ld, std::ofstream &ofs)
 
template void DeePKS_init< double > (const UnitCell &ucell, Parallel_Orbitals &pv, const int &nks, const LCAO_Orbitals &orb, LCAO_Deepks< double > &ld, std::ofstream &ofs)
 
template void DeePKS_init< std::complex< double > > (const UnitCell &ucell, Parallel_Orbitals &pv, const int &nks, const LCAO_Orbitals &orb, LCAO_Deepks< std::complex< double > > &ld, std::ofstream &ofs)
 
void init_basis_lcao (Parallel_Orbitals &pv, const double &onsite_radius, const double &lcao_ecut, const double &lcao_dk, const double &lcao_dr, const double &lcao_rmax, UnitCell &ucell, TwoCenterBundle &two_center_bundle, LCAO_Orbitals &orb)
 
void build_Nonlocal_mu_new (const Parallel_Orbitals &pv, ForceStressArrays &fsr, double *HlocR, const bool &calc_deri, const UnitCell &ucell, const LCAO_Orbitals &orb, const TwoCenterIntegrator &intor_orb_beta, const Grid_Driver *GridD)
 
void set_force (const Parallel_Orbitals &pv, const int &iw1_all, const int &iw2_all, const double &vx, const double &vy, const double &vz, const char &dtype, double *dsloc_x, double *dsloc_y, double *dsloc_z, double *dhloc_fixed_x, double *dhloc_fixed_y, double *dhloc_fixed_z)
 set the elements of force-related matrices in LCAO method
 
void set_stress (const Parallel_Orbitals &pv, const int &iw1_all, const int &iw2_all, const double &vx, const double &vy, const double &vz, const char &dtype, const ModuleBase::Vector3< double > &dtau, double *dsloc_11, double *dsloc_12, double *dsloc_13, double *dsloc_22, double *dsloc_23, double *dsloc_33, double *dhloc_fixed_11, double *dhloc_fixed_12, double *dhloc_fixed_13, double *dhloc_fixed_22, double *dhloc_fixed_23, double *dhloc_fixed_33)
 set the elements of stress-related matrices in LCAO method
 
void single_overlap (const LCAO_Orbitals &orb, const TwoCenterBundle &two_center_bundle, const Parallel_Orbitals &pv, const UnitCell &ucell, const int nspin, const bool cal_stress, const int iw1_all, const int iw2_all, const int m1, const int m2, const char &dtype, const int T1, const int L1, const int N1, const int T2, const int L2, const int N2, const ModuleBase::Vector3< double > &dtau, const ModuleBase::Vector3< double > &tau1, const ModuleBase::Vector3< double > &tau2, const int npol, const int jj, const int jj0, const int kk, const int kk0, int &nnr, int &total_nnr, double *olm, double *HSloc)
 set each element without derivatives
 
void single_derivative (ForceStressArrays &fsr, const LCAO_Orbitals &orb, const TwoCenterBundle &two_center_bundle, const Parallel_Orbitals &pv, const UnitCell &ucell, const int nspin, const bool cal_stress, const int iw1_all, const int iw2_all, const int m1, const int m2, const char &dtype, const int T1, const int L1, const int N1, const int T2, const int L2, const int N2, const ModuleBase::Vector3< double > &dtau, const ModuleBase::Vector3< double > &tau1, const ModuleBase::Vector3< double > &tau2, const int npol, const int jj, const int jj0, const int kk, const int kk0, int &nnr, int &total_nnr, double *olm)
 set each element of T matrices
 
void build_ST_new (ForceStressArrays &fsr, const char &dtype, const bool &cal_deri, const bool &cal_stress, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const TwoCenterBundle &two_center_bundle, const Grid_Driver *GridD, double *SHlocR, bool cal_syns=false, double dmax=0.0)
 set the elements of S and T matrices
 
void zeros_HSR (const char &mtype, LCAO_HS_Arrays &HS_arrays)
 set zeros for HSR matrices
 
template<typename T >
void set_mat2d (const int &global_ir, const int &global_ic, const T &v, const Parallel_Orbitals &pv, T *mat)
 
template<typename TK >
void set_psi_occ_dm_chg (const K_Vectors &kv, psi::Psi< TK > *&psi, const Parallel_Orbitals &pv, elecstate::ElecState *pelec, LCAO_domain::Setup_DM< TK > &dmat, Charge &chr, const Input_para &inp)
 set up wave functions, occupation numbers, density matrix and charge density
 
template<typename TK >
void set_pot (UnitCell &ucell, K_Vectors &kv, Structure_Factor &sf, const ModulePW::PW_Basis &pw_rho, const ModulePW::PW_Basis &pw_rhod, elecstate::ElecState *pelec, const LCAO_Orbitals &orb, Parallel_Orbitals &pv, pseudopot_cell_vl &locpp, Plus_U &dftu, surchem &solvent, Exx_NAO< TK > &exx_nao, Setup_DeePKS< TK > &deepks, const Input_para &inp)
 set up potentials, including local pseudopotentials, +U potential, solvent potential, exx potential and deepks potential
 
template<typename TK >
void init_dm_from_file (const std::string dmfile, LCAO_domain::Setup_DM< TK > &dmat, const UnitCell &ucell, const Parallel_Orbitals *pv)
 
template void set_mat2d< double > (const int &global_ir, const int &global_ic, const double &v, const Parallel_Orbitals &pv, double *HSloc)
 
template void set_mat2d< std::complex< double > > (const int &global_ir, const int &global_ic, const std::complex< double > &v, const Parallel_Orbitals &pv, std::complex< double > *HSloc)
 
void dm2rho (std::vector< hamilt::HContainer< double > * > &dmr, const int nspin, Charge *chr, bool skip_normalize=false)
 
void dm2tau (std::vector< hamilt::HContainer< double > * > &dmr, const int nspin, Charge *chr)
 

Detailed Description

once the GlobalC::exx_info has been deleted, this include can be gone mohan note 2024-07-21

Typedef Documentation

◆ key_tuple

typedef std::tuple<int, int, int, int> LCAO_domain::key_tuple

Function Documentation

◆ build_Nonlocal_mu_new()

void LCAO_domain::build_Nonlocal_mu_new ( const Parallel_Orbitals pv,
ForceStressArrays fsr,
double *  HlocR,
const bool &  calc_deri,
const UnitCell ucell,
const LCAO_Orbitals orb,
const TwoCenterIntegrator intor_orb_beta,
const Grid_Driver GridD 
)

calc_deri

calc_deri

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

◆ build_ST_new()

void LCAO_domain::build_ST_new ( ForceStressArrays fsr,
const char &  dtype,
const bool &  cal_deri,
const bool &  cal_stress,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const TwoCenterBundle two_center_bundle,
const Grid_Driver GridD,
double *  SHlocR,
bool  cal_syns = false,
double  dmax = 0.0 
)

set the elements of S and T matrices

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

◆ DeePKS_init()

template<typename T >
void LCAO_domain::DeePKS_init ( const UnitCell ucell,
Parallel_Orbitals pv,
const int &  nks,
const LCAO_Orbitals orb,
LCAO_Deepks< T > &  ld,
std::ofstream &  ofs 
)
Here is the call graph for this function:

◆ DeePKS_init< double >()

template void LCAO_domain::DeePKS_init< double > ( const UnitCell ucell,
Parallel_Orbitals pv,
const int &  nks,
const LCAO_Orbitals orb,
LCAO_Deepks< double > &  ld,
std::ofstream &  ofs 
)

◆ DeePKS_init< std::complex< double > >()

template void LCAO_domain::DeePKS_init< std::complex< double > > ( const UnitCell ucell,
Parallel_Orbitals pv,
const int &  nks,
const LCAO_Orbitals orb,
LCAO_Deepks< std::complex< double > > &  ld,
std::ofstream &  ofs 
)

◆ dm2rho()

void LCAO_domain::dm2rho ( std::vector< hamilt::HContainer< double > * > &  dmr,
const int  nspin,
Charge chr,
bool  skip_normalize = false 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dm2tau()

void LCAO_domain::dm2tau ( std::vector< hamilt::HContainer< double > * > &  dmr,
const int  nspin,
Charge chr 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_basis_lcao()

void LCAO_domain::init_basis_lcao ( Parallel_Orbitals pv,
const double &  onsite_radius,
const double &  lcao_ecut,
const double &  lcao_dk,
const double &  lcao_dr,
const double &  lcao_rmax,
UnitCell ucell,
TwoCenterBundle two_center_bundle,
LCAO_Orbitals orb 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_dm_from_file()

template<typename TK >
void LCAO_domain::init_dm_from_file ( const std::string  dmfile,
LCAO_domain::Setup_DM< TK > &  dmat,
const UnitCell ucell,
const Parallel_Orbitals pv 
)
Here is the call graph for this function:

◆ set_force()

void LCAO_domain::set_force ( const Parallel_Orbitals pv,
const int &  iw1_all,
const int &  iw2_all,
const double &  vx,
const double &  vy,
const double &  vz,
const char &  dtype,
double *  dsloc_x,
double *  dsloc_y,
double *  dsloc_z,
double *  dhloc_fixed_x,
double *  dhloc_fixed_y,
double *  dhloc_fixed_z 
)

set the elements of force-related matrices in LCAO method

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

◆ set_mat2d()

template<typename T >
void LCAO_domain::set_mat2d ( const int &  global_ir,
const int &  global_ic,
const T v,
const Parallel_Orbitals pv,
T mat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_mat2d< double >()

template void LCAO_domain::set_mat2d< double > ( const int &  global_ir,
const int &  global_ic,
const double &  v,
const Parallel_Orbitals pv,
double *  HSloc 
)

◆ set_mat2d< std::complex< double > >()

template void LCAO_domain::set_mat2d< std::complex< double > > ( const int &  global_ir,
const int &  global_ic,
const std::complex< double > &  v,
const Parallel_Orbitals pv,
std::complex< double > *  HSloc 
)

◆ set_pot()

template<typename TK >
void LCAO_domain::set_pot ( UnitCell ucell,
K_Vectors kv,
Structure_Factor sf,
const ModulePW::PW_Basis pw_rho,
const ModulePW::PW_Basis pw_rhod,
elecstate::ElecState pelec,
const LCAO_Orbitals orb,
Parallel_Orbitals pv,
pseudopot_cell_vl locpp,
Plus_U dftu,
surchem solvent,
Exx_NAO< TK > &  exx_nao,
Setup_DeePKS< TK > &  deepks,
const Input_para inp 
)

set up potentials, including local pseudopotentials, +U potential, solvent potential, exx potential and deepks potential

1) init local pseudopotentials

2) init potentials

3) initialize DFT+U

4) init exact exchange calculations

5) init deepks

Here is the call graph for this function:

◆ set_psi_occ_dm_chg()

template<typename TK >
void LCAO_domain::set_psi_occ_dm_chg ( const K_Vectors kv,
psi::Psi< TK > *&  psi,
const Parallel_Orbitals pv,
elecstate::ElecState pelec,
LCAO_domain::Setup_DM< TK > &  dmat,
Charge chr,
const Input_para inp 
)

set up wave functions, occupation numbers, density matrix and charge density

1) init electronic wave function psi

2) read psi from file

3) set occupations, tddft does not need to set occupations in the first scf

4) init DMK, but DMR is constructed in before_scf()

Here is the call graph for this function:

◆ set_stress()

void LCAO_domain::set_stress ( const Parallel_Orbitals pv,
const int &  iw1_all,
const int &  iw2_all,
const double &  vx,
const double &  vy,
const double &  vz,
const char &  dtype,
const ModuleBase::Vector3< double > &  dtau,
double *  dsloc_11,
double *  dsloc_12,
double *  dsloc_13,
double *  dsloc_22,
double *  dsloc_23,
double *  dsloc_33,
double *  dhloc_fixed_11,
double *  dhloc_fixed_12,
double *  dhloc_fixed_13,
double *  dhloc_fixed_22,
double *  dhloc_fixed_23,
double *  dhloc_fixed_33 
)

set the elements of stress-related matrices in LCAO method

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

◆ single_derivative()

void LCAO_domain::single_derivative ( ForceStressArrays fsr,
const LCAO_Orbitals orb,
const TwoCenterBundle two_center_bundle,
const Parallel_Orbitals pv,
const UnitCell ucell,
const int  nspin,
const bool  cal_stress,
const int  iw1_all,
const int  iw2_all,
const int  m1,
const int  m2,
const char &  dtype,
const int  T1,
const int  L1,
const int  N1,
const int  T2,
const int  L2,
const int  N2,
const ModuleBase::Vector3< double > &  dtau,
const ModuleBase::Vector3< double > &  tau1,
const ModuleBase::Vector3< double > &  tau2,
const int  npol,
const int  jj,
const int  jj0,
const int  kk,
const int  kk0,
int &  nnr,
int &  total_nnr,
double *  olm 
)

set each element of T matrices

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

◆ single_overlap()

void LCAO_domain::single_overlap ( const LCAO_Orbitals orb,
const TwoCenterBundle two_center_bundle,
const Parallel_Orbitals pv,
const UnitCell ucell,
const int  nspin,
const bool  cal_stress,
const int  iw1_all,
const int  iw2_all,
const int  m1,
const int  m2,
const char &  dtype,
const int  T1,
const int  L1,
const int  N1,
const int  T2,
const int  L2,
const int  N2,
const ModuleBase::Vector3< double > &  dtau,
const ModuleBase::Vector3< double > &  tau1,
const ModuleBase::Vector3< double > &  tau2,
const int  npol,
const int  jj,
const int  jj0,
const int  kk,
const int  kk0,
int &  nnr,
int &  total_nnr,
double *  olm,
double *  HSloc 
)

set each element without derivatives

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

◆ zeros_HSR()

void LCAO_domain::zeros_HSR ( const char &  mtype,
LCAO_HS_Arrays HS_arrays 
)

set zeros for HSR matrices

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