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

#include <operator_ri_hartree.h>

Inheritance diagram for RI_Benchmark::OperatorRIHartree< T >:
Collaboration diagram for RI_Benchmark::OperatorRIHartree< T >:

Public Member Functions

 OperatorRIHartree (const UnitCell &ucell, const int &naos, const int &nocc, const int &nvirt, const psi::Psi< T > &psi_ks_in, const TLRI< TR > &Cs_ao, const TLRI< TR > &Vs, const bool &read_from_aims=false, const std::vector< int > &aims_nbasis={})
 
 ~OperatorRIHartree ()
 
void act (const int nbands, const int nbasis, const int npol, const T *psi_in, T *hpsi, const int ngk_ik=0, const bool is_first_node=false) const override
 
- Public Member Functions inherited from hamilt::Operator< T, Device >
 Operator ()
 
virtual ~Operator ()
 
virtual hpsi_info hPsi (hpsi_info &input) const
 
virtual void init (const int ik_in)
 
virtual void add (Operator *next)
 
virtual int get_ik () const
 
virtual void act (const psi::Psi< T, Device > &psi_in, psi::Psi< T, Device > &psi_out, const int nbands) const
 
int get_act_type () const
 
calculation_type get_cal_type () const
 

Protected Attributes

const int & naos
 
const int & nocc
 
const int & nvirt
 
const int npairs
 
const TLRI< TRCs_ao
 
const TLRI< TRVs
 
const psi::Psi< T > & psi_ks
 
const TLRI< TCs_ov_mo
 
const TLRI< TCs_vo_mo
 
const TLRI< TCV_ov
 
const TLRI< TCV_vo
 
- Protected Attributes inherited from hamilt::Operator< T, Device >
int ik = 0
 
int act_type = 1
 determine which act() interface would be called in hPsi()
 
bool in_place = false
 
enum calculation_type cal_type
 
Operatornext_sub_op = nullptr
 
bool is_first_node = true
 
psi::Psi< T, Device > * hpsi = nullptr
 
Device * ctx = {}
 

Private Types

using TR = T
 

Additional Inherited Members

- Public Types inherited from hamilt::Operator< T, Device >
typedef std::tuple< const psi::Psi< T, Device > *, const psi::Range, T * > hpsi_info
 
- Public Attributes inherited from hamilt::Operator< T, Device >
Operatornext_op = nullptr
 interface type 3: return a Psi-type HPsi
 
- Protected Types inherited from hamilt::Operator< T, Device >
using set_memory_op = base_device::memory::set_memory_op< T, Device >
 
- Protected Member Functions inherited from hamilt::Operator< T, Device >
Tget_hpsi (const hpsi_info &info) const
 

Member Typedef Documentation

◆ TR

template<typename T >
using RI_Benchmark::OperatorRIHartree< T >::TR = T
private

Constructor & Destructor Documentation

◆ OperatorRIHartree()

template<typename T >
RI_Benchmark::OperatorRIHartree< T >::OperatorRIHartree ( const UnitCell ucell,
const int &  naos,
const int &  nocc,
const int &  nvirt,
const psi::Psi< T > &  psi_ks_in,
const TLRI< TR > &  Cs_ao,
const TLRI< TR > &  Vs,
const bool &  read_from_aims = false,
const std::vector< int > &  aims_nbasis = {} 
)
inline

◆ ~OperatorRIHartree()

template<typename T >
RI_Benchmark::OperatorRIHartree< T >::~OperatorRIHartree ( )
inline

Member Function Documentation

◆ act()

template<typename T >
void RI_Benchmark::OperatorRIHartree< T >::act ( const int  nbands,
const int  nbasis,
const int  npol,
const T tmpsi_in,
T tmhpsi,
const int  ngk_ik = 0,
const bool  is_first_node = false 
) const
inlineoverridevirtual

do operation : |hpsi_choosed> = V|psi_choosed> V is the target operator act on choosed psi, the consequence should be added to choosed hpsi interface type 1: pointer-only (default)

Note
PW: nbasis = max_npw * npol, nbands = nband * npol, npol = npol. Strange but PAY ATTENTION!!!

Reimplemented from hamilt::Operator< T, Device >.

Here is the call graph for this function:

Member Data Documentation

◆ Cs_ao

template<typename T >
const TLRI<TR> RI_Benchmark::OperatorRIHartree< T >::Cs_ao
protected

◆ Cs_ov_mo

template<typename T >
const TLRI<T> RI_Benchmark::OperatorRIHartree< T >::Cs_ov_mo
protected

◆ Cs_vo_mo

template<typename T >
const TLRI<T> RI_Benchmark::OperatorRIHartree< T >::Cs_vo_mo
protected

◆ CV_ov

template<typename T >
const TLRI<T> RI_Benchmark::OperatorRIHartree< T >::CV_ov
protected

◆ CV_vo

template<typename T >
const TLRI<T> RI_Benchmark::OperatorRIHartree< T >::CV_vo
protected

◆ naos

template<typename T >
const int& RI_Benchmark::OperatorRIHartree< T >::naos
protected

◆ nocc

template<typename T >
const int& RI_Benchmark::OperatorRIHartree< T >::nocc
protected

◆ npairs

template<typename T >
const int RI_Benchmark::OperatorRIHartree< T >::npairs
protected

◆ nvirt

template<typename T >
const int& RI_Benchmark::OperatorRIHartree< T >::nvirt
protected

◆ psi_ks

template<typename T >
const psi::Psi<T>& RI_Benchmark::OperatorRIHartree< T >::psi_ks
protected

◆ Vs

template<typename T >
const TLRI<TR> RI_Benchmark::OperatorRIHartree< T >::Vs
protected

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