ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Functions
DeePKS_domain Namespace Reference

Functions

void load_model (const std::string &model_file, torch::jit::script::Module &model)
 
void cal_gevdm (const int nat, const int inlmax, const std::vector< int > &inl2l, const std::vector< torch::Tensor > &pdm, std::vector< torch::Tensor > &gevdm)
 
void cal_edelta_gedm (const int nat, const int inlmax, const int des_per_atom, const std::vector< int > &inl2l, const std::vector< torch::Tensor > &descriptor, const std::vector< torch::Tensor > &pdm, torch::jit::script::Module &model_deepks, double **gedm, double &E_delta)
 calculate partial of energy correction to descriptors
 
void check_gedm (const int inlmax, const std::vector< int > &inl2l, double **gedm)
 
void cal_edelta_gedm_equiv (const int nat, const int lmaxd, const int nmaxd, const int inlmax, const int des_per_atom, const std::vector< int > &inl2l, const std::vector< torch::Tensor > &descriptor, double **gedm, double &E_delta, const int rank)
 
void prepare_atom (const UnitCell &ucell, torch::Tensor &atom_out)
 
void prepare_box (const UnitCell &ucell, torch::Tensor &box_out)
 
template<typename T >
void check_tensor (const torch::Tensor &tensor, const std::string &filename, const int rank)
 
void cal_descriptor (const int nat, const int inlmax, const std::vector< int > &inl2l, const std::vector< torch::Tensor > &pdm, std::vector< torch::Tensor > &descriptor, const int des_per_atom)
 
void check_descriptor (const int inlmax, const int des_per_atom, const std::vector< int > &inl2l, const UnitCell &ucell, const std::string &out_dir, const std::vector< torch::Tensor > &descriptor, const int rank)
 print descriptors based on LCAO basis
 
void cal_descriptor_equiv (const int nat, const int des_per_atom, const std::vector< torch::Tensor > &pdm, std::vector< torch::Tensor > &descriptor)
 
template<typename TK >
void cal_f_delta (const hamilt::HContainer< double > *dmr, const UnitCell &ucell, const LCAO_Orbitals &orb, const Grid_Driver &GridD, const Parallel_Orbitals &pv, const int nks, const std::vector< ModuleBase::Vector3< double > > &kvec_d, std::vector< hamilt::HContainer< double > * > phialpha, double **gedm, ModuleBase::IntArray *inl_index, ModuleBase::matrix &f_delta, const bool isstress, ModuleBase::matrix &svnl_dalpha)
 
template<typename TK >
void cal_gdmx (const int lmaxd, const int inlmax, const int nks, const std::vector< ModuleBase::Vector3< double > > &kvec_d, std::vector< hamilt::HContainer< double > * > phialpha, const ModuleBase::IntArray *inl_index, const hamilt::HContainer< double > *dmr, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const Grid_Driver &GridD, torch::Tensor &gdmx)
 
void cal_gvx (const int nat, const int inlmax, const int des_per_atom, const std::vector< int > &inl2l, const std::vector< torch::Tensor > &gevdm, const torch::Tensor &gdmx, torch::Tensor &gvx, const int rank)
 
void iterate_ad1 (const UnitCell &ucell, const Grid_Driver &GridD, const LCAO_Orbitals &orb, const bool with_trace, std::function< void(const int, const ModuleBase::Vector3< double > &, const int, const ModuleBase::Vector3< double > &, const int, const int, ModuleBase::Vector3< int >)> callback)
 
void iterate_ad2 (const UnitCell &ucell, const Grid_Driver &GridD, const LCAO_Orbitals &orb, const bool with_trace, std::function< void(const int, const ModuleBase::Vector3< double > &, const int, const ModuleBase::Vector3< double > &, const int, const int, ModuleBase::Vector3< int >, const int, const ModuleBase::Vector3< double > &, const int, const int, ModuleBase::Vector3< int >)> callback)
 
template<typename TK , typename TH >
void cal_o_delta (const std::vector< TH > &dm_hl, const std::vector< std::vector< TK > > &h_delta, ModuleBase::matrix &o_delta, const Parallel_Orbitals &pv, const int nks, const int nspin)
 
template<typename TK , typename TH >
void cal_orbital_precalc (const std::vector< TH > &dm_hl, const int lmaxd, const int inlmax, const int nat, const int nks, const std::vector< int > &inl2l, const std::vector< ModuleBase::Vector3< double > > &kvec_d, const std::vector< hamilt::HContainer< double > * > phialpha, const std::vector< torch::Tensor > gevdm, const ModuleBase::IntArray *inl_index, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const Grid_Driver &GridD, torch::Tensor &orbital_precalc)
 
void read_pdm (bool read_pdm_file, bool is_equiv, bool &init_pdm, const int nat, const int inlmax, const int lmaxd, const std::vector< int > &inl2l, const Numerical_Orbital &alpha, std::vector< torch::Tensor > &pdm)
 
template<typename TK >
void update_dmr (const std::vector< ModuleBase::Vector3< double > > &kvec_d, const std::vector< std::vector< TK > > &dmk, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const Grid_Driver &GridD, hamilt::HContainer< double > *dmr_deepks)
 
template<typename TK >
void cal_pdm (bool &init_pdm, const int inlmax, const int lmaxd, const std::vector< int > &inl2l, const ModuleBase::IntArray *inl_index, const std::vector< ModuleBase::Vector3< double > > &kvec_d, const hamilt::HContainer< double > *dmr, const std::vector< hamilt::HContainer< double > * > phialpha, const UnitCell &ucell, const LCAO_Orbitals &orb, const Grid_Driver &GridD, const Parallel_Orbitals &pv, std::vector< torch::Tensor > &pdm)
 
void check_pdm (const int inlmax, const std::vector< int > &inl2l, const std::vector< torch::Tensor > &pdm)
 
void allocate_phialpha (const bool &cal_deri, const UnitCell &ucell, const LCAO_Orbitals &orb, const Grid_Driver &GridD, const Parallel_Orbitals *pv, std::vector< hamilt::HContainer< double > * > &phialpha)
 
void build_phialpha (const bool &cal_deri, const UnitCell &ucell, const LCAO_Orbitals &orb, const Grid_Driver &GridD, const Parallel_Orbitals *pv, const TwoCenterIntegrator &overlap_orb_alpha, std::vector< hamilt::HContainer< double > * > &phialpha)
 
void check_phialpha (const bool &cal_deri, const UnitCell &ucell, const LCAO_Orbitals &orb, const Grid_Driver &GridD, const Parallel_Orbitals *pv, std::vector< hamilt::HContainer< double > * > &phialpha, const int rank)
 
template<typename TK >
void cal_gdmepsl (const int lmaxd, const int inlmax, const int nks, const std::vector< ModuleBase::Vector3< double > > &kvec_d, std::vector< hamilt::HContainer< double > * > phialpha, const ModuleBase::IntArray *inl_index, const hamilt::HContainer< double > *dmr, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const Grid_Driver &GridD, torch::Tensor &gdmepsl)
 
void cal_gvepsl (const int nat, const int inlmax, const int des_per_atom, const std::vector< int > &inl2l, const std::vector< torch::Tensor > &gevdm, const torch::Tensor &gdmepsl, torch::Tensor &gvepsl, const int rank)
 
template<typename TK >
void cal_e_delta_band (const std::vector< std::vector< TK > > &dm, const std::vector< std::vector< TK > > &V_delta, const int nks, const int nspin, const Parallel_Orbitals *pv, double &e_delta_band)
 calculate tr(\rho V_delta)
 
template<typename TK , typename TH >
void collect_h_mat (const Parallel_Orbitals &pv, const std::vector< std::vector< TK > > &h_in, std::vector< TH > &h_out, const int nlocal, const int nks)
 
template<typename TK , typename TH , typename TR >
void get_h_tot (const Parallel_Orbitals &pv, hamilt::HamiltLCAO< TK, TR > *p_ham, std::vector< TH > &h_tot, const int nlocal, const int nks, const char matrix_type)
 
template<typename TK >
void cal_v_delta_precalc (const int nlocal, const int lmaxd, const int inlmax, const int nat, const int nks, const std::vector< int > &inl2l, const std::vector< ModuleBase::Vector3< double > > &kvec_d, const std::vector< hamilt::HContainer< double > * > phialpha, const std::vector< torch::Tensor > gevdm, const ModuleBase::IntArray *inl_index, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const Grid_Driver &GridD, torch::Tensor &v_delta_precalc)
 cal_v_delta_precalc : v_delta_precalc is used for training with v_delta label,
 
template<typename TK >
void prepare_phialpha (const int nlocal, const int lmaxd, const int inlmax, const int nat, const int nks, const std::vector< ModuleBase::Vector3< double > > &kvec_d, const std::vector< hamilt::HContainer< double > * > phialpha, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const Grid_Driver &GridD, torch::Tensor &phialpha_out)
 
void prepare_gevdm (const int nat, const int lmaxd, const int inlmax, const LCAO_Orbitals &orb, const std::vector< torch::Tensor > &gevdm_in, torch::Tensor &gevdm_out)
 
void prepare_phialpha_r (const int nlocal, const int lmaxd, const int inlmax, const int nat, const int R_size, const std::vector< hamilt::HContainer< double > * > phialpha, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const Grid_Driver &GridD, torch::Tensor &phialpha_r_out)
 
void cal_vdr_precalc (const int nlocal, const int lmaxd, const int inlmax, const int nat, const int nks, const int R_size, const std::vector< int > &inl2l, const std::vector< ModuleBase::Vector3< double > > &kvec_d, const std::vector< hamilt::HContainer< double > * > phialpha, const std::vector< torch::Tensor > gevdm, const ModuleBase::IntArray *inl_index, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const Grid_Driver &GridD, torch::Tensor &vdr_precalc)
 
int mapping_R (int R)
 
template<typename T >
int get_R_size (const hamilt::HContainer< T > &hcontainer)
 

Function Documentation

◆ allocate_phialpha()

void DeePKS_domain::allocate_phialpha ( const bool &  cal_deri,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Grid_Driver GridD,
const Parallel_Orbitals pv,
std::vector< hamilt::HContainer< double > * > &  phialpha 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_phialpha()

void DeePKS_domain::build_phialpha ( const bool &  cal_deri,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Grid_Driver GridD,
const Parallel_Orbitals pv,
const TwoCenterIntegrator overlap_orb_alpha,
std::vector< hamilt::HContainer< double > * > &  phialpha 
)
Parameters
[in]cal_deri0 for 2-center intergration, 1 for its derivation
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cal_descriptor()

void DeePKS_domain::cal_descriptor ( const int  nat,
const int  inlmax,
const std::vector< int > &  inl2l,
const std::vector< torch::Tensor > &  pdm,
std::vector< torch::Tensor > &  descriptor,
const int  des_per_atom = -1 
)

Calculates descriptors which are eigenvalues of pdm in blocks of I_n_l

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

◆ cal_descriptor_equiv()

void DeePKS_domain::cal_descriptor_equiv ( const int  nat,
const int  des_per_atom,
const std::vector< torch::Tensor > &  pdm,
std::vector< torch::Tensor > &  descriptor 
)
  1. cal_descriptor : obtains descriptors which are eigenvalues of pdm by calling torch::linalg::eigh
  2. check_descriptor : prints descriptor for checking
  3. cal_descriptor_equiv : calculates descriptor in equivalent version
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cal_e_delta_band()

template<typename TK >
void DeePKS_domain::cal_e_delta_band ( const std::vector< std::vector< TK > > &  dm,
const std::vector< std::vector< TK > > &  V_delta,
const int  nks,
const int  nspin,
const Parallel_Orbitals pv,
double &  e_delta_band 
)

calculate tr(\rho V_delta)

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

◆ cal_edelta_gedm()

void DeePKS_domain::cal_edelta_gedm ( const int  nat,
const int  inlmax,
const int  des_per_atom,
const std::vector< int > &  inl2l,
const std::vector< torch::Tensor > &  descriptor,
const std::vector< torch::Tensor > &  pdm,
torch::jit::script::Module &  model_deepks,
double **  gedm,
double &  E_delta 
)

calculate partial of energy correction to descriptors

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

◆ cal_edelta_gedm_equiv()

void DeePKS_domain::cal_edelta_gedm_equiv ( const int  nat,
const int  lmaxd,
const int  nmaxd,
const int  inlmax,
const int  des_per_atom,
const std::vector< int > &  inl2l,
const std::vector< torch::Tensor > &  descriptor,
double **  gedm,
double &  E_delta,
const int  rank 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cal_f_delta()

template<typename TK >
template void DeePKS_domain::cal_f_delta< double > ( const hamilt::HContainer< double > *  dmr,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Grid_Driver GridD,
const Parallel_Orbitals pv,
const int  nks,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d,
std::vector< hamilt::HContainer< double > * >  phialpha,
double **  gedm,
ModuleBase::IntArray inl_index,
ModuleBase::matrix f_delta,
const bool  isstress,
ModuleBase::matrix svnl_dalpha 
)
Here is the call graph for this function:

◆ cal_gdmepsl()

template<typename TK >
template void DeePKS_domain::cal_gdmepsl< double > ( const int  lmaxd,
const int  inlmax,
const int  nks,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d,
std::vector< hamilt::HContainer< double > * >  phialpha,
const ModuleBase::IntArray inl_index,
const hamilt::HContainer< double > *  dmr,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const Grid_Driver GridD,
torch::Tensor &  gdmepsl 
)

this subroutine calculates the gradient of PDM wrt strain tensor: gdmepsl = d/d\epsilon_{ab} * sum_{mu,nu} rho_{mu,nu} <chi_mu|alpha_m><alpha_m'|chi_nu>

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

◆ cal_gdmx()

template<typename TK >
template void DeePKS_domain::cal_gdmx< double > ( const int  lmaxd,
const int  inlmax,
const int  nks,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d,
std::vector< hamilt::HContainer< double > * >  phialpha,
const ModuleBase::IntArray inl_index,
const hamilt::HContainer< double > *  dmr,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const Grid_Driver GridD,
torch::Tensor &  gdmx 
)

this subroutine calculates the gradient of projected density matrices gdmx_m,m = d/dX sum_{mu,nu} rho_{mu,nu} <chi_mu|alpha_m><alpha_m'|chi_nu>

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

◆ cal_gevdm()

void DeePKS_domain::cal_gevdm ( const int  nat,
const int  inlmax,
const std::vector< int > &  inl2l,
const std::vector< torch::Tensor > &  pdm,
std::vector< torch::Tensor > &  gevdm 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cal_gvepsl()

void DeePKS_domain::cal_gvepsl ( const int  nat,
const int  inlmax,
const int  des_per_atom,
const std::vector< int > &  inl2l,
const std::vector< torch::Tensor > &  gevdm,
const torch::Tensor &  gdmepsl,
torch::Tensor &  gvepsl,
const int  rank 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cal_gvx()

void DeePKS_domain::cal_gvx ( const int  nat,
const int  inlmax,
const int  des_per_atom,
const std::vector< int > &  inl2l,
const std::vector< torch::Tensor > &  gevdm,
const torch::Tensor &  gdmx,
torch::Tensor &  gvx,
const int  rank 
)

calculates gradient of descriptors w.r.t atomic positions

m, n: 2*l+1 v: eigenvalues of dm , 2*l+1 a,b: natom

  • (a: the center of descriptor orbitals
  • b: the atoms whose force being calculated)

gevdm*gdmx->gvx

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

◆ cal_o_delta()

template<typename TK , typename TH >
void DeePKS_domain::cal_o_delta ( const std::vector< TH > &  dm_hl,
const std::vector< std::vector< TK > > &  h_delta,
ModuleBase::matrix o_delta,
const Parallel_Orbitals pv,
const int  nks,
const int  nspin 
)
Here is the call graph for this function:

◆ cal_orbital_precalc()

template<typename TK , typename TH >
void DeePKS_domain::cal_orbital_precalc ( const std::vector< TH > &  dm_hl,
const int  lmaxd,
const int  inlmax,
const int  nat,
const int  nks,
const std::vector< int > &  inl2l,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d,
const std::vector< hamilt::HContainer< double > * >  phialpha,
const std::vector< torch::Tensor >  gevdm,
const ModuleBase::IntArray inl_index,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const Grid_Driver GridD,
torch::Tensor &  orbital_precalc 
)

cal_orbital_precalc : orbital_precalc is used for training with orbital label, which equals gevdm * orbital_pdm, orbital_pdm[nks,Inl,nm,nm] = dm_hl * overlap * overlap

Here is the call graph for this function:

◆ cal_pdm()

template<typename TK >
template void DeePKS_domain::cal_pdm< double > ( bool &  init_pdm,
const int  inlmax,
const int  lmaxd,
const std::vector< int > &  inl2l,
const ModuleBase::IntArray inl_index,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d,
const hamilt::HContainer< double > *  dmr,
const std::vector< hamilt::HContainer< double > * >  phialpha,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Grid_Driver GridD,
const Parallel_Orbitals pv,
std::vector< torch::Tensor > &  pdm 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cal_v_delta_precalc()

template<typename TK >
template void DeePKS_domain::cal_v_delta_precalc< double > ( const int  nlocal,
const int  lmaxd,
const int  inlmax,
const int  nat,
const int  nks,
const std::vector< int > &  inl2l,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d,
const std::vector< hamilt::HContainer< double > * >  phialpha,
const std::vector< torch::Tensor >  gevdm,
const ModuleBase::IntArray inl_index,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const Grid_Driver GridD,
torch::Tensor &  v_delta_precalc 
)

cal_v_delta_precalc : v_delta_precalc is used for training with v_delta label,

Here is the call graph for this function:

◆ cal_vdr_precalc()

void DeePKS_domain::cal_vdr_precalc ( const int  nlocal,
const int  lmaxd,
const int  inlmax,
const int  nat,
const int  nks,
const int  R_size,
const std::vector< int > &  inl2l,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d,
const std::vector< hamilt::HContainer< double > * >  phialpha,
const std::vector< torch::Tensor >  gevdm,
const ModuleBase::IntArray inl_index,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const Grid_Driver GridD,
torch::Tensor &  vdr_precalc 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_descriptor()

void DeePKS_domain::check_descriptor ( const int  inlmax,
const int  des_per_atom,
const std::vector< int > &  inl2l,
const UnitCell ucell,
const std::string &  out_dir,
const std::vector< torch::Tensor > &  descriptor,
const int  rank 
)

print descriptors based on LCAO basis

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

◆ check_gedm()

void DeePKS_domain::check_gedm ( const int  inlmax,
const std::vector< int > &  inl2l,
double **  gedm 
)
Here is the caller graph for this function:

◆ check_pdm()

void DeePKS_domain::check_pdm ( const int  inlmax,
const std::vector< int > &  inl2l,
const std::vector< torch::Tensor > &  pdm 
)
Here is the caller graph for this function:

◆ check_phialpha()

void DeePKS_domain::check_phialpha ( const bool &  cal_deri,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Grid_Driver GridD,
const Parallel_Orbitals pv,
std::vector< hamilt::HContainer< double > * > &  phialpha,
const int  rank 
)
Parameters
[in]cal_deri0 for 2-center intergration, 1 for its derivation
Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_tensor()

template<typename T >
template void DeePKS_domain::check_tensor< double > ( const torch::Tensor &  tensor,
const std::string &  filename,
const int  rank 
)

◆ collect_h_mat()

template<typename TK , typename TH >
void DeePKS_domain::collect_h_mat ( const Parallel_Orbitals pv,
const std::vector< std::vector< TK > > &  h_in,
std::vector< TH > &  h_out,
const int  nlocal,
const int  nks 
)
Here is the call graph for this function:

◆ get_h_tot()

template<typename TK , typename TH , typename TR >
void DeePKS_domain::get_h_tot ( const Parallel_Orbitals pv,
hamilt::HamiltLCAO< TK, TR > *  p_ham,
std::vector< TH > &  h_tot,
const int  nlocal,
const int  nks,
const char  matrix_type 
)
Here is the call graph for this function:

◆ get_R_size()

template<typename T >
int DeePKS_domain::get_R_size ( const hamilt::HContainer< T > &  hcontainer)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iterate_ad1()

void DeePKS_domain::iterate_ad1 ( const UnitCell ucell,
const Grid_Driver GridD,
const LCAO_Orbitals orb,
const bool  with_trace,
std::function< void(const int, const ModuleBase::Vector3< double > &, const int, const ModuleBase::Vector3< double > &, const int, const int, ModuleBase::Vector3< int >)>  callback 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iterate_ad2()

void DeePKS_domain::iterate_ad2 ( const UnitCell ucell,
const Grid_Driver GridD,
const LCAO_Orbitals orb,
const bool  with_trace,
std::function< void(const int, const ModuleBase::Vector3< double > &, const int, const ModuleBase::Vector3< double > &, const int, const int, ModuleBase::Vector3< int >, const int, const ModuleBase::Vector3< double > &, const int, const int, ModuleBase::Vector3< int >)>  callback 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_model()

void DeePKS_domain::load_model ( const std::string &  model_file,
torch::jit::script::Module &  model 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mapping_R()

int DeePKS_domain::mapping_R ( int  R)
Here is the caller graph for this function:

◆ prepare_atom()

void DeePKS_domain::prepare_atom ( const UnitCell ucell,
torch::Tensor &  atom_out 
)
Here is the caller graph for this function:

◆ prepare_box()

void DeePKS_domain::prepare_box ( const UnitCell ucell,
torch::Tensor &  box_out 
)
Here is the caller graph for this function:

◆ prepare_gevdm()

void DeePKS_domain::prepare_gevdm ( const int  nat,
const int  lmaxd,
const int  inlmax,
const LCAO_Orbitals orb,
const std::vector< torch::Tensor > &  gevdm_in,
torch::Tensor &  gevdm_out 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ prepare_phialpha()

template<typename TK >
template void DeePKS_domain::prepare_phialpha< double > ( const int  nlocal,
const int  lmaxd,
const int  inlmax,
const int  nat,
const int  nks,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d,
const std::vector< hamilt::HContainer< double > * >  phialpha,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const Grid_Driver GridD,
torch::Tensor &  phialpha_out 
)
Here is the call graph for this function:

◆ prepare_phialpha_r()

void DeePKS_domain::prepare_phialpha_r ( const int  nlocal,
const int  lmaxd,
const int  inlmax,
const int  nat,
const int  R_size,
const std::vector< hamilt::HContainer< double > * >  phialpha,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const Grid_Driver GridD,
torch::Tensor &  phialpha_r_out 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ read_pdm()

void DeePKS_domain::read_pdm ( bool  read_pdm_file,
bool  is_equiv,
bool &  init_pdm,
const int  nat,
const int  inlmax,
const int  lmaxd,
const std::vector< int > &  inl2l,
const Numerical_Orbital alpha,
std::vector< torch::Tensor > &  pdm 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_dmr()

template<typename TK >
void DeePKS_domain::update_dmr ( const std::vector< ModuleBase::Vector3< double > > &  kvec_d,
const std::vector< std::vector< TK > > &  dmk,
const UnitCell ucell,
const LCAO_Orbitals orb,
const Parallel_Orbitals pv,
const Grid_Driver GridD,
hamilt::HContainer< double > *  dmr_deepks 
)
Here is the call graph for this function:
Here is the caller graph for this function: