ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
Gaussian_Abfs Class Reference

#include <gaussian_abfs.h>

Collaboration diagram for Gaussian_Abfs:

Public Member Functions

void init (const UnitCell &ucell, const int &Lmax, const std::vector< ModuleBase::Vector3< double > > &kvec_c, const ModuleBase::Matrix3 &G, const double &lambda)
 Calculating bare Coulomb integrals in reciprocal space, using Gaussians.
 
RI::Tensor< std::complex< double > > get_Vq (const int &lp_max, const int &lq_max, const size_t &ik, const double &chi, const ModuleBase::Vector3< double > &tau, const ModuleBase::realArray &gaunt)
 
std::array< RI::Tensor< std::complex< double > >, 3 > get_dVq (const int &lp_max, const int &lq_max, const size_t &ik, const double &chi, const ModuleBase::Vector3< double > &tau, const ModuleBase::realArray &gaunt)
 
std::vector< std::complex< double > > get_lattice_sum (const double &tpiba, const size_t &ik, const double &power, const double &exponent, const bool &exclude_Gamma, const int &lmax, const ModuleBase::Vector3< double > &tau)
 
std::vector< std::array< std::complex< double >, 3 > > get_d_lattice_sum (const double &tpiba, const size_t &ik, const double &power, const double &exponent, const bool &exclude_Gamma, const int &lmax, const ModuleBase::Vector3< double > &tau)
 
Numerical_Orbital_Lm Gauss (const Numerical_Orbital_Lm &orb, const double &lambda)
 
template<typename Tout , typename Tin >
auto DPcal_Vq_dVq (const double &omega, const int &lp_max, const int &lq_max, const size_t &ik, const double &chi, const ModuleBase::Vector3< double > &tau, const ModuleBase::realArray &gaunt, const T_func_DPcal_lattice_sum< Tin > &func_DPcal_lattice_sum) -> Tout
 
template<typename Tresult >
auto DPcal_lattice_sum (const double &tpiba, const size_t &ik, const double &power, const double &exponent, const bool &exclude_Gamma, const int &lmax, const T_func_DPcal_phase< Tresult > &func_DPcal_phase) -> std::vector< Tresult >
 

Private Types

template<typename Tresult >
using T_func_DPcal_phase = std::function< Tresult(const ModuleBase::Vector3< double > &vec)>
 
template<typename Tresult >
using T_func_DPcal_lattice_sum = std::function< std::vector< Tresult >(const double &power, const double &exponent, const bool &exclude_Gamma, const int &lmax)>
 

Private Member Functions

template<typename Tout , typename Tin >
Tout DPcal_Vq_dVq (const double &omega, const int &lp_max, const int &lq_max, const size_t &ik, const double &chi, const ModuleBase::Vector3< double > &tau, const ModuleBase::realArray &gaunt, const T_func_DPcal_lattice_sum< Tin > &func_DPcal_lattice_sum)
 
template<typename Tresult >
std::vector< Tresult > DPcal_lattice_sum (const double &tpiba, const size_t &ik, const double &power, const double &exponent, const bool &exclude_Gamma, const int &lmax, const T_func_DPcal_phase< Tresult > &func_DPcal_phase)
 

Static Private Member Functions

static double double_factorial (const int &n)
 
static std::vector< int > get_n_supercells (const double &lat0, const ModuleBase::Matrix3 &G, const double &Gmax)
 

Private Attributes

double lambda
 
double tpiba
 
double lat0
 
double omega
 
std::vector< ModuleBase::Vector3< double > > kvec_c
 
std::vector< std::vector< ModuleBase::Vector3< double > > > qGvecs
 
std::vector< int > n_cells
 
std::vector< std::vector< bool > > check_gamma
 
std::vector< ModuleBase::matrixylm
 

Member Typedef Documentation

◆ T_func_DPcal_lattice_sum

template<typename Tresult >
using Gaussian_Abfs::T_func_DPcal_lattice_sum = std::function<std::vector<Tresult>(const double& power, const double& exponent, const bool& exclude_Gamma, const int& lmax)>
private

◆ T_func_DPcal_phase

template<typename Tresult >
using Gaussian_Abfs::T_func_DPcal_phase = std::function<Tresult(const ModuleBase::Vector3<double>& vec)>
private

Member Function Documentation

◆ double_factorial()

double Gaussian_Abfs::double_factorial ( const int &  n)
staticprivate
Here is the caller graph for this function:

◆ DPcal_lattice_sum() [1/2]

template<typename Tresult >
std::vector< Tresult > Gaussian_Abfs::DPcal_lattice_sum ( const double &  tpiba,
const size_t &  ik,
const double &  power,
const double &  exponent,
const bool &  exclude_Gamma,
const int &  lmax,
const T_func_DPcal_phase< Tresult > &  func_DPcal_phase 
)
private

◆ DPcal_lattice_sum() [2/2]

template<typename Tresult >
auto Gaussian_Abfs::DPcal_lattice_sum ( const double &  tpiba,
const size_t &  ik,
const double &  power,
const double &  exponent,
const bool &  exclude_Gamma,
const int &  lmax,
const T_func_DPcal_phase< Tresult > &  func_DPcal_phase 
) -> std::vector<Tresult>
Here is the call graph for this function:

◆ DPcal_Vq_dVq() [1/2]

template<typename Tout , typename Tin >
Tout Gaussian_Abfs::DPcal_Vq_dVq ( const double &  omega,
const int &  lp_max,
const int &  lq_max,
const size_t &  ik,
const double &  chi,
const ModuleBase::Vector3< double > &  tau,
const ModuleBase::realArray gaunt,
const T_func_DPcal_lattice_sum< Tin > &  func_DPcal_lattice_sum 
)
private

◆ DPcal_Vq_dVq() [2/2]

template<typename Tout , typename Tin >
auto Gaussian_Abfs::DPcal_Vq_dVq ( const double &  omega,
const int &  lp_max,
const int &  lq_max,
const size_t &  ik,
const double &  chi,
const ModuleBase::Vector3< double > &  tau,
const ModuleBase::realArray gaunt,
const T_func_DPcal_lattice_sum< Tin > &  func_DPcal_lattice_sum 
) -> Tout
Here is the call graph for this function:

◆ Gauss()

Numerical_Orbital_Lm Gaussian_Abfs::Gauss ( const Numerical_Orbital_Lm orb,
const double &  lambda 
)
Here is the call graph for this function:

◆ get_d_lattice_sum()

auto Gaussian_Abfs::get_d_lattice_sum ( const double &  tpiba,
const size_t &  ik,
const double &  power,
const double &  exponent,
const bool &  exclude_Gamma,
const int &  lmax,
const ModuleBase::Vector3< double > &  tau 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_dVq()

auto Gaussian_Abfs::get_dVq ( const int &  lp_max,
const int &  lq_max,
const size_t &  ik,
const double &  chi,
const ModuleBase::Vector3< double > &  tau,
const ModuleBase::realArray gaunt 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_lattice_sum()

auto Gaussian_Abfs::get_lattice_sum ( const double &  tpiba,
const size_t &  ik,
const double &  power,
const double &  exponent,
const bool &  exclude_Gamma,
const int &  lmax,
const ModuleBase::Vector3< double > &  tau 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_n_supercells()

std::vector< int > Gaussian_Abfs::get_n_supercells ( const double &  lat0,
const ModuleBase::Matrix3 G,
const double &  Gmax 
)
staticprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_Vq()

auto Gaussian_Abfs::get_Vq ( const int &  lp_max,
const int &  lq_max,
const size_t &  ik,
const double &  chi,
const ModuleBase::Vector3< double > &  tau,
const ModuleBase::realArray gaunt 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init()

void Gaussian_Abfs::init ( const UnitCell ucell,
const int &  Lmax,
const std::vector< ModuleBase::Vector3< double > > &  kvec_c,
const ModuleBase::Matrix3 G,
const double &  lambda 
)

Calculating bare Coulomb integrals in reciprocal space, using Gaussians.

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

Member Data Documentation

◆ check_gamma

std::vector<std::vector<bool> > Gaussian_Abfs::check_gamma
private

◆ kvec_c

std::vector<ModuleBase::Vector3<double> > Gaussian_Abfs::kvec_c
private

◆ lambda

double Gaussian_Abfs::lambda
private

◆ lat0

double Gaussian_Abfs::lat0
private

◆ n_cells

std::vector<int> Gaussian_Abfs::n_cells
private

◆ omega

double Gaussian_Abfs::omega
private

◆ qGvecs

std::vector<std::vector<ModuleBase::Vector3<double> > > Gaussian_Abfs::qGvecs
private

◆ tpiba

double Gaussian_Abfs::tpiba
private

◆ ylm

std::vector<ModuleBase::matrix> Gaussian_Abfs::ylm
private

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