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_file< T > Class Template Reference

#include <psi_initializer_file.h>

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

Public Member Functions

 psi_initializer_file ()
 
 ~psi_initializer_file ()
 
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
 calculate and output planewave wavefunction
 
- Public Member Functions inherited from psi_initializer< T >
 psi_initializer ()
 
virtual ~psi_initializer ()
 
virtual void tabulate ()
 CENTRAL FUNCTION: calculate the interpolate table if needed.
 
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< 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< 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_file< T >::Real = typename GetTypeReal<T>::type
private

Constructor & Destructor Documentation

◆ psi_initializer_file()

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

◆ ~psi_initializer_file()

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

Member Function Documentation

◆ init_psig()

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

calculate and output planewave wavefunction

Parameters
ikkpoint index
Returns
initialized planewave wavefunction (psi::Psi<std::complex<double>>*)

Implements psi_initializer< T >.

Here is the call graph for this function:

◆ initialize()

template<typename T >
void psi_initializer_file< 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< T >.

Here is the call graph for this function:

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