#include <onsite_projector.h>
|
void | init_proj (const std::string &orbital_dir, const std::vector< std::string > &orb_files, const std::vector< int > &nproj, const std::vector< int > &lproj, const std::vector< int > &iproj, const std::vector< double > &onsite_r) |
| initialize the radial projector for real-space projection involving operators
|
|
void | tabulate_atomic (const int ik, const char grad='n') |
| calculate the onsite projectors in reciprocal space(|G+K>) for all atoms
|
|
void | overlap_proj_psi (const int npm, const std::complex< double > *ppsi) |
|
void | read_abacus_orb (std::ifstream &ifs, std::string &elem, double &ecut, int &nr, double &dr, std::vector< int > &nzeta, std::vector< std::vector< double > > &radials, const int rank=0) |
|
void | init (const std::string &orbital_dir, const UnitCell *ucell_in, const psi::Psi< std::complex< T >, Device > &psi, const K_Vectors &kv, const ModulePW::PW_Basis_K &pw_basis, Structure_Factor &sf, const double onsite_radius, const int nq, const double dq, const ModuleBase::matrix &wg, const ModuleBase::matrix &ekb) |
|
void | cal_occupations (const psi::Psi< std::complex< T >, Device > *psi, const ModuleBase::matrix &wg_in) |
| calculate and print the occupations of all lm orbitals
|
|
int | get_size_becp () const |
|
std::complex< double > * | get_becp () const |
|
std::complex< double > * | get_h_becp () const |
|
std::complex< double > * | get_tab_atomic () const |
|
int | get_tot_nproj () const |
|
int | get_npw () const |
|
int | get_npwx () const |
|
const int & | get_nh (int iat) const |
|
hamilt::Onsite_Proj_tools< T, Device > * | get_fs_tools () const |
|
|
using | gemm_op = ModuleBase::gemm_op< std::complex< T >, Device > |
| rename the operators for CPU/GPU device
|
|
using | resmem_complex_op = base_device::memory::resize_memory_op< std::complex< T >, Device > |
|
using | resmem_complex_h_op = base_device::memory::resize_memory_op< std::complex< T >, base_device::DEVICE_CPU > |
|
using | setmem_complex_op = base_device::memory::set_memory_op< std::complex< T >, Device > |
|
using | delmem_complex_op = base_device::memory::delete_memory_op< std::complex< T >, Device > |
|
using | delmem_complex_h_op = base_device::memory::delete_memory_op< std::complex< T >, base_device::DEVICE_CPU > |
|
using | syncmem_complex_h2d_op = base_device::memory::synchronize_memory_op< std::complex< T >, Device, base_device::DEVICE_CPU > |
|
using | syncmem_complex_d2h_op = base_device::memory::synchronize_memory_op< std::complex< T >, base_device::DEVICE_CPU, Device > |
|
using | resmem_var_op = base_device::memory::resize_memory_op< T, Device > |
|
using | resmem_var_h_op = base_device::memory::resize_memory_op< T, base_device::DEVICE_CPU > |
|
using | setmem_var_op = base_device::memory::set_memory_op< T, Device > |
|
using | delmem_var_op = base_device::memory::delete_memory_op< T, Device > |
|
using | delmem_var_h_op = base_device::memory::delete_memory_op< T, base_device::DEVICE_CPU > |
|
using | syncmem_var_h2d_op = base_device::memory::synchronize_memory_op< T, Device, base_device::DEVICE_CPU > |
|
using | syncmem_var_d2h_op = base_device::memory::synchronize_memory_op< T, base_device::DEVICE_CPU, Device > |
|
using | resmem_int_op = base_device::memory::resize_memory_op< int, Device > |
|
using | delmem_int_op = base_device::memory::delete_memory_op< int, Device > |
|
using | syncmem_int_h2d_op = base_device::memory::synchronize_memory_op< int, Device, base_device::DEVICE_CPU > |
|
◆ delmem_complex_h_op
template<typename
T , typename Device >
◆ delmem_complex_op
template<typename
T , typename Device >
◆ delmem_int_op
template<typename
T , typename Device >
◆ delmem_var_h_op
template<typename
T , typename Device >
◆ delmem_var_op
template<typename
T , typename Device >
◆ gemm_op
template<typename
T , typename Device >
rename the operators for CPU/GPU device
◆ resmem_complex_h_op
template<typename
T , typename Device >
◆ resmem_complex_op
template<typename
T , typename Device >
◆ resmem_int_op
template<typename
T , typename Device >
◆ resmem_var_h_op
template<typename
T , typename Device >
◆ resmem_var_op
template<typename
T , typename Device >
◆ setmem_complex_op
template<typename
T , typename Device >
◆ setmem_var_op
template<typename
T , typename Device >
◆ syncmem_complex_d2h_op
template<typename
T , typename Device >
◆ syncmem_complex_h2d_op
template<typename
T , typename Device >
◆ syncmem_int_h2d_op
template<typename
T , typename Device >
◆ syncmem_var_d2h_op
template<typename
T , typename Device >
◆ syncmem_var_h2d_op
template<typename
T , typename Device >
◆ OnsiteProjector()
template<typename
T , typename Device >
◆ ~OnsiteProjector()
template<typename
T , typename Device >
◆ cal_occupations()
template<typename
T , typename Device >
calculate and print the occupations of all lm orbitals
◆ get_becp()
template<typename
T , typename Device >
◆ get_fs_tools()
template<typename
T , typename Device >
◆ get_h_becp()
template<typename
T , typename Device >
◆ get_instance()
template<typename
T , typename Device >
static access to this class instance
◆ get_nh()
template<typename
T , typename Device >
◆ get_npw()
template<typename
T , typename Device >
◆ get_npwx()
template<typename
T , typename Device >
◆ get_size_becp()
template<typename
T , typename Device >
◆ get_tab_atomic()
template<typename
T , typename Device >
◆ get_tot_nproj()
template<typename
T , typename Device >
◆ init()
template<typename
T , typename Device >
void projectors::OnsiteProjector< T, Device >::init |
( |
const std::string & |
orbital_dir, |
|
|
const UnitCell * |
ucell_in, |
|
|
const psi::Psi< std::complex< T >, Device > & |
psi, |
|
|
const K_Vectors & |
kv, |
|
|
const ModulePW::PW_Basis_K & |
pw_basis, |
|
|
Structure_Factor & |
sf, |
|
|
const double |
onsite_radius, |
|
|
const int |
nq, |
|
|
const double |
dq, |
|
|
const ModuleBase::matrix & |
wg, |
|
|
const ModuleBase::matrix & |
ekb |
|
) |
| |
◆ init_proj()
template<typename
T , typename Device >
void projectors::OnsiteProjector< T, Device >::init_proj |
( |
const std::string & |
orbital_dir, |
|
|
const std::vector< std::string > & |
orb_files, |
|
|
const std::vector< int > & |
nproj, |
|
|
const std::vector< int > & |
lproj, |
|
|
const std::vector< int > & |
iproj, |
|
|
const std::vector< double > & |
onsite_r |
|
) |
| |
initialize the radial projector for real-space projection involving operators
- Parameters
-
orbital_dir | You know what it is |
orb_files | You know what it is |
nproj | # of projectors for each type defined in UnitCell, can be zero |
lproj | angular momentum for each projector |
iproj | index of zeta function that each projector generated from |
onsite_r | onsite-radius for all valid projectors |
rgrid | [out] the radial grid shared by all projectors |
projs | [out] projectors indexed by iproj |
it2iproj | [out] for each type, the projector index (across all types) |
◆ overlap_proj_psi()
template<typename
T , typename Device >
◆ read_abacus_orb()
template<typename
T , typename Device >
void projectors::OnsiteProjector< T, Device >::read_abacus_orb |
( |
std::ifstream & |
ifs, |
|
|
std::string & |
elem, |
|
|
double & |
ecut, |
|
|
int & |
nr, |
|
|
double & |
dr, |
|
|
std::vector< int > & |
nzeta, |
|
|
std::vector< std::vector< double > > & |
radials, |
|
|
const int |
rank = 0 |
|
) |
| |
◆ tabulate_atomic()
template<typename
T , typename Device >
calculate the onsite projectors in reciprocal space(|G+K>) for all atoms
◆ becp
template<typename
T , typename Device >
◆ cpu_ctx
template<typename
T , typename Device >
◆ ctx
template<typename
T , typename Device >
◆ device
template<typename
T , typename Device >
◆ fs_tools
template<typename
T , typename Device >
◆ h_becp
template<typename
T , typename Device >
◆ iat_nh
template<typename
T , typename Device >
◆ ik_
template<typename
T , typename Device >
◆ initialed
template<typename
T , typename Device >
◆ instance
template<typename
T , typename Device >
◆ irow2iproj_
template<typename
T , typename Device >
◆ irow2it_
template<typename
T , typename Device >
◆ irow2m_
template<typename
T , typename Device >
◆ it2ia
template<typename
T , typename Device >
◆ it2iproj
template<typename
T , typename Device >
◆ itiaiprojm2irow_
template<typename
T , typename Device >
◆ lproj
template<typename
T , typename Device >
◆ nhtol
template<typename
T , typename Device >
◆ npw_
template<typename
T , typename Device >
◆ npwx_
template<typename
T , typename Device >
◆ ntype
template<typename
T , typename Device >
◆ projs
template<typename
T , typename Device >
◆ pw_basis_
template<typename
T , typename Device >
◆ rgrid
template<typename
T , typename Device >
◆ rp_
template<typename
T , typename Device >
◆ sf_
template<typename
T , typename Device >
◆ size_becp
template<typename
T , typename Device >
◆ size_vproj
template<typename
T , typename Device >
◆ tab
template<typename
T , typename Device >
◆ tab_atomic_
template<typename
T , typename Device >
◆ tot_nproj
template<typename
T , typename Device >
◆ ucell
template<typename
T , typename Device >
The documentation for this class was generated from the following file:
- /home/runner/work/abacus-develop/abacus-develop/source/source_pw/module_pwdft/onsite_projector.h