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

#include <setup_psi_pw.h>

Collaboration diagram for Setup_Psi_pw< T, Device >:

Public Member Functions

 Setup_Psi_pw ()
 
 ~Setup_Psi_pw ()
 
void before_runner (const UnitCell &ucell, const K_Vectors &kv, const Structure_Factor &sf, const ModulePW::PW_Basis_K &pw_wfc, const pseudopot_cell_vnl &ppcell, const Input_para &inp)
 
void init (hamilt::Hamilt< T, Device > *p_hamilt)
 
void update_psi_d ()
 
void copy_d2h (const base_device::AbacusDevice_t &device)
 
void clean ()
 

Public Attributes

psi::Psi< std::complex< double >, base_device::DEVICE_CPU > * psi_cpu = nullptr
 
psi::Psi< T, Device > * psi_t = nullptr
 
psi::Psi< std::complex< double >, Device > * psi_d = nullptr
 
psi::PSIInit< T, Device > * p_psi_init = nullptr
 
bool already_initpsi = false
 

Private Types

using castmem_2d_d2h_op = base_device::memory::cast_memory_op< std::complex< double >, T, base_device::DEVICE_CPU, Device >
 

Member Typedef Documentation

◆ castmem_2d_d2h_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using Setup_Psi_pw< T, Device >::castmem_2d_d2h_op = base_device::memory::cast_memory_op<std::complex<double>, T, base_device::DEVICE_CPU, Device>
private

Constructor & Destructor Documentation

◆ Setup_Psi_pw()

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

◆ ~Setup_Psi_pw()

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

Member Function Documentation

◆ before_runner()

template<typename T , typename Device >
void Setup_Psi_pw< T, Device >::before_runner ( const UnitCell ucell,
const K_Vectors kv,
const Structure_Factor sf,
const ModulePW::PW_Basis_K pw_wfc,
const pseudopot_cell_vnl ppcell,
const Input_para inp 
)

Allocate and initialize psi

Allocate memory for cpu version of psi

If GPU or single precision, allocate a new psi (psi_t). otherwise, transform psi_cpu to psi_t

◆ clean()

template<typename T , typename Device >
void Setup_Psi_pw< T, Device >::clean ( )

◆ copy_d2h()

template<typename T , typename Device >
void Setup_Psi_pw< T, Device >::copy_d2h ( const base_device::AbacusDevice_t device)
Here is the caller graph for this function:

◆ init()

template<typename T , typename Device >
void Setup_Psi_pw< T, Device >::init ( hamilt::Hamilt< T, Device > *  p_hamilt)

Initialize wave functions

◆ update_psi_d()

template<typename T , typename Device >
void Setup_Psi_pw< T, Device >::update_psi_d ( )
Here is the caller graph for this function:

Member Data Documentation

◆ already_initpsi

template<typename T , typename Device = base_device::DEVICE_CPU>
bool Setup_Psi_pw< T, Device >::already_initpsi = false

◆ p_psi_init

template<typename T , typename Device = base_device::DEVICE_CPU>
psi::PSIInit<T, Device>* Setup_Psi_pw< T, Device >::p_psi_init = nullptr

◆ psi_cpu

template<typename T , typename Device = base_device::DEVICE_CPU>
psi::Psi<std::complex<double>, base_device::DEVICE_CPU>* Setup_Psi_pw< T, Device >::psi_cpu = nullptr

◆ psi_d

template<typename T , typename Device = base_device::DEVICE_CPU>
psi::Psi<std::complex<double>, Device>* Setup_Psi_pw< T, Device >::psi_d = nullptr

◆ psi_t

template<typename T , typename Device = base_device::DEVICE_CPU>
psi::Psi<T, Device>* Setup_Psi_pw< T, Device >::psi_t = nullptr

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