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

#include <psi_initializer_nao_random.h>

Inheritance diagram for psi_initializer_nao_random< T >:
Collaboration diagram for psi_initializer_nao_random< T >:

Public Member Functions

 psi_initializer_nao_random ()
 
 ~psi_initializer_nao_random ()
 
virtual void initialize (const Structure_Factor *, const ModulePW::PW_Basis_K *, const UnitCell *, const K_Vectors *, const int &=1, const pseudopot_cell_vnl *=nullptr, const int &=0) override
 initialize the psi_initializer with external data and methods
 
virtual void init_psig (T *psig, const int &ik) override
 CENTRAL FUNCTION: init psi in pw basis.
 
- Public Member Functions inherited from psi_initializer_nao< T >
 psi_initializer_nao ()
 
 ~psi_initializer_nao ()
 
void read_external_orbs (const std::string *orbital_files, const int &rank)
 
virtual void tabulate () override
 CENTRAL FUNCTION: calculate the interpolate table if needed.
 
std::vector< std::string > external_orbs () const
 
std::vector< std::vector< int > > nr () const
 
std::vector< int > nr (const int &itype) const
 
int nr (const int &itype, const int &ichi) const
 
std::vector< std::vector< std::vector< double > > > chi () const
 
std::vector< std::vector< double > > chi (const int &itype) const
 
std::vector< double > chi (const int &itype, const int &ichi) const
 
double chi (const int &itype, const int &ichi, const int &ir) const
 
std::vector< std::vector< std::vector< double > > > rgrid () const
 
std::vector< std::vector< double > > rgrid (const int &itype) const
 
std::vector< double > rgrid (const int &itype, const int &ichi) const
 
double rgrid (const int &itype, const int &ichi, const int &ir) const
 
- Public Member Functions inherited from psi_initializer< T >
 psi_initializer ()
 
virtual ~psi_initializer ()
 
std::string method () const
 
int nbands_start () const
 
int nbands_complem () const
 
template<typename U >
std::enable_if< std::is_same< U, float >::value, U >::type cast_to_T (const std::complex< double > in)
 
template<typename U >
std::enable_if< std::is_same< U, double >::value, U >::type cast_to_T (const std::complex< double > in)
 
template<typename U >
std::enable_if< std::is_same< U, std::complex< float > >::value, U >::type cast_to_T (const std::complex< double > in)
 
template<typename U >
std::enable_if< std::is_same< U, std::complex< double > >::value, U >::type cast_to_T (const std::complex< double > in)
 

Private Types

using Real = typename GetTypeReal< T >::type
 

Additional Inherited Members

- Protected Member Functions inherited from psi_initializer_nao< T >
void allocate_ao_table ()
 allocate memory for overlap table
 
- Protected Member Functions inherited from psi_initializer< T >
void stick_to_pool (Real *stick, const int &ir, Real *out) const
 mapping from (ix, iy) to is
 
void random_t (T *psi, const int iw_start, const int iw_end, const int ik, const int mode=1)
 mode, 0 for rr*exp(i*arg), 1 for rr/(1+gk2)*exp(i*arg)
 
- Protected Attributes inherited from psi_initializer_nao< T >
std::vector< std::string > orbital_files_
 
std::unique_ptr< ModuleBase::CubicSplinecubspl_
 cubic spline for interpolation
 
ModuleBase::realArray projmap_
 radial map, [itype][l][izeta] -> i
 
std::vector< std::vector< int > > nr_
 number of realspace grids per type per chi, [itype][ichi]
 
std::vector< std::vector< std::vector< double > > > chi_
 data of numerical atomic orbital per type per chi per position, [itype][ichi][ir]
 
std::vector< std::vector< std::vector< double > > > rgrid_
 r of numerical atomic orbital per type per chi per position, [itype][ichi][ir]
 
ModuleBase::SphericalBesselTransformer sbt
 useful for atomic-like methods
 
- Protected Attributes inherited from psi_initializer< T >
const Structure_Factorsf_ = nullptr
 Structure_Factor.
 
const ModulePW::PW_Basis_Kpw_wfc_ = nullptr
 use |k+G>, |G>, getgpluskcar and so on in PW_Basis_K
 
const UnitCellp_ucell_ = nullptr
 UnitCell.
 
const K_Vectorsp_kv = nullptr
 Parallel_Kpoints.
 
const pseudopot_cell_vnlp_pspot_nl_ = nullptr
 pseudopot_cell_vnl
 
int random_seed_ = 1
 random seed, shared by random, atomic+random, nao+random
 
std::vector< int > ixy2is_
 used by stick_to_pool function
 
int mem_saver_ = 0
 if save memory, only for nscf
 
std::string method_ = "none"
 method name
 
int nbands_complem_ = 0
 complement number of bands, which is nbands_start_ - ucell.natomwfc
 
double mixing_coef_ = 0
 mixing coefficient for atomic+random and nao+random
 
int nbands_start_ = 0
 starting nbands, which is no less than PARAM.inp.nbands
 

Member Typedef Documentation

◆ Real

template<typename T >
using psi_initializer_nao_random< T >::Real = typename GetTypeReal<T>::type
private

Constructor & Destructor Documentation

◆ psi_initializer_nao_random()

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

◆ ~psi_initializer_nao_random()

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

Member Function Documentation

◆ init_psig()

template<typename T >
void psi_initializer_nao_random< T >::init_psig ( T psig,
const int &  ik 
)
overridevirtual

CENTRAL FUNCTION: init psi in pw basis.

Reimplemented from psi_initializer_nao< T >.

Here is the call graph for this function:

◆ initialize()

template<typename T >
void psi_initializer_nao_random< T >::initialize ( const Structure_Factor sf,
const ModulePW::PW_Basis_K pw_wfc,
const UnitCell p_ucell,
const K_Vectors p_kv_in,
const int &  random_seed = 1,
const pseudopot_cell_vnl p_pspot_nl = nullptr,
const int &  rank = 0 
)
overridevirtual

initialize the psi_initializer with external data and methods

Reimplemented from psi_initializer_nao< T >.

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

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