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

#include <sto_wf.h>

Collaboration diagram for Stochastic_WF< T, Device >:

Public Member Functions

 Stochastic_WF ()
 
 ~Stochastic_WF ()
 
void init (K_Vectors *p_kv, const int npwx_in)
 
void allocate_chiallorder (const int &norder)
 
void clean_chiallorder ()
 
void init_sto_orbitals (const int seed_in)
 
void init_sto_orbitals_Ecut (const int seed_in, const K_Vectors &kv, const ModulePW::PW_Basis_K &wfcpw, const int max_ecut)
 
void allocate_chi0 ()
 
void update_sto_orbitals (const int seed_in)
 
void init_com_orbitals ()
 
void sync_chi0 ()
 

Public Attributes

psi::Psi< T, base_device::DEVICE_CPU > * chi0_cpu = nullptr
 
psi::Psi< T, Device > * chi0 = nullptr
 
psi::Psi< T, Device > * chiortho = nullptr
 
psi::Psi< T, Device > * shchi = nullptr
 
int nchi = 0
 Total number of stochatic obitals.
 
int * nchip = nullptr
 The number of stochatic orbitals in current process of each k point.
 
int nchip_max = 0
 Max number of stochastic orbitals among all k points.
 
int nks = 0
 number of k-points
 
int npwx = 0
 max ngk[ik] in all processors
 
int nbands_diag = 0
 number of bands obtained from diagonalization
 
int nbands_total = 0
 number of bands in total, nbands_total=nchi+nbands_diag;
 
std::vector< int > ngk
 ngk in klist
 
psi::Psi< T, Device > * chiallorder = nullptr
 

Protected Types

using setmem_complex_op = base_device::memory::set_memory_op< T, Device >
 
using syncmem_h2d_op = base_device::memory::synchronize_memory_op< T, Device, base_device::DEVICE_CPU >
 

Member Typedef Documentation

◆ setmem_complex_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using Stochastic_WF< T, Device >::setmem_complex_op = base_device::memory::set_memory_op<T, Device>
protected

◆ syncmem_h2d_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using Stochastic_WF< T, Device >::syncmem_h2d_op = base_device::memory::synchronize_memory_op<T, Device, base_device::DEVICE_CPU>
protected

Constructor & Destructor Documentation

◆ Stochastic_WF()

template<typename T , typename Device >
Stochastic_WF< T, Device >::Stochastic_WF ( )

◆ ~Stochastic_WF()

template<typename T , typename Device >
Stochastic_WF< T, Device >::~Stochastic_WF ( )

Member Function Documentation

◆ allocate_chi0()

template<typename T , typename Device >
void Stochastic_WF< T, Device >::allocate_chi0 ( )
Here is the call graph for this function:

◆ allocate_chiallorder()

template<typename T , typename Device >
void Stochastic_WF< T, Device >::allocate_chiallorder ( const int &  norder)

◆ clean_chiallorder()

template<typename T , typename Device >
void Stochastic_WF< T, Device >::clean_chiallorder ( )

◆ init()

template<typename T , typename Device >
void Stochastic_WF< T, Device >::init ( K_Vectors p_kv,
const int  npwx_in 
)

◆ init_com_orbitals()

template<typename T , typename Device >
void Stochastic_WF< T, Device >::init_com_orbitals ( )
Here is the call graph for this function:

◆ init_sto_orbitals()

template<typename T , typename Device >
void Stochastic_WF< T, Device >::init_sto_orbitals ( const int  seed_in)

◆ init_sto_orbitals_Ecut()

template<typename T , typename Device >
void Stochastic_WF< T, Device >::init_sto_orbitals_Ecut ( const int  seed_in,
const K_Vectors kv,
const ModulePW::PW_Basis_K wfcpw,
const int  max_ecut 
)
Here is the call graph for this function:

◆ sync_chi0()

template<typename T , typename Device >
void Stochastic_WF< T, Device >::sync_chi0 ( )

◆ update_sto_orbitals()

template<typename T , typename Device >
void Stochastic_WF< T, Device >::update_sto_orbitals ( const int  seed_in)

Member Data Documentation

◆ chi0

template<typename T , typename Device = base_device::DEVICE_CPU>
psi::Psi<T, Device>* Stochastic_WF< T, Device >::chi0 = nullptr

◆ chi0_cpu

template<typename T , typename Device = base_device::DEVICE_CPU>
psi::Psi<T, base_device::DEVICE_CPU>* Stochastic_WF< T, Device >::chi0_cpu = nullptr

◆ chiallorder

template<typename T , typename Device = base_device::DEVICE_CPU>
psi::Psi<T, Device>* Stochastic_WF< T, Device >::chiallorder = nullptr

◆ chiortho

template<typename T , typename Device = base_device::DEVICE_CPU>
psi::Psi<T, Device>* Stochastic_WF< T, Device >::chiortho = nullptr

◆ nbands_diag

template<typename T , typename Device = base_device::DEVICE_CPU>
int Stochastic_WF< T, Device >::nbands_diag = 0

number of bands obtained from diagonalization

◆ nbands_total

template<typename T , typename Device = base_device::DEVICE_CPU>
int Stochastic_WF< T, Device >::nbands_total = 0

number of bands in total, nbands_total=nchi+nbands_diag;

◆ nchi

template<typename T , typename Device = base_device::DEVICE_CPU>
int Stochastic_WF< T, Device >::nchi = 0

Total number of stochatic obitals.

◆ nchip

template<typename T , typename Device = base_device::DEVICE_CPU>
int* Stochastic_WF< T, Device >::nchip = nullptr

The number of stochatic orbitals in current process of each k point.

◆ nchip_max

template<typename T , typename Device = base_device::DEVICE_CPU>
int Stochastic_WF< T, Device >::nchip_max = 0

Max number of stochastic orbitals among all k points.

◆ ngk

template<typename T , typename Device = base_device::DEVICE_CPU>
std::vector<int> Stochastic_WF< T, Device >::ngk

ngk in klist

◆ nks

template<typename T , typename Device = base_device::DEVICE_CPU>
int Stochastic_WF< T, Device >::nks = 0

number of k-points

◆ npwx

template<typename T , typename Device = base_device::DEVICE_CPU>
int Stochastic_WF< T, Device >::npwx = 0

max ngk[ik] in all processors

◆ shchi

template<typename T , typename Device = base_device::DEVICE_CPU>
psi::Psi<T, Device>* Stochastic_WF< T, Device >::shchi = nullptr

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