#include <operator.h>
|
| 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 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 |
|
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 |
|
◆ hpsi_info
template<typename
T , typename Device = base_device::DEVICE_CPU>
as default, different operators donate hPsi independently run this->act function for the first operator and run all act() for other nodes in chain table if this procedure is not suitable for your operator, just override this function. output of hpsi would be first member of the returned tuple
◆ set_memory_op
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ Operator()
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ ~Operator()
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ act() [1/2]
template<typename
T , typename Device = base_device::DEVICE_CPU>
virtual void hamilt::Operator< T, Device >::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 |
|
inlinevirtual |
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 in LR::OperatorLRDiag< T, Device >, LR::OperatorLRHxc< T, Device >, RI_Benchmark::OperatorRIHartree< T >, hamilt::OnsiteProj< OperatorPW< T, Device > >, OperatorMock< T >, hamilt::Ekinetic< OperatorPW< T, Device > >, hamilt::Meta< OperatorPW< T, Device > >, hamilt::Nonlocal< OperatorPW< T, Device > >, hamilt::OperatorEXXPW< T, Device >, hamilt::Veff< OperatorPW< T, Device > >, and TestOp< T, Device >.
◆ act() [2/2]
template<typename
T , typename Device = base_device::DEVICE_CPU>
developer-friendly interfaces for act() function interface type 2: input and change the Psi-type HPsi
◆ add()
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ get_act_type()
template<typename
T , typename Device = base_device::DEVICE_CPU>
type 1 (default): pointer-only act(const T* psi_in, T* psi_out) type 2: use the Psi
class act(const Psi& psi_in, Psi& psi_out)
◆ get_cal_type()
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ get_hpsi()
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ get_ik()
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ hPsi()
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ init()
template<typename
T , typename Device = base_device::DEVICE_CPU>
Reimplemented in LR::OperatorLRDiag< T, Device >, LR::OperatorLRHxc< T, Device >, hamilt::OperatorLCAO< TK, TR >, hamilt::OperatorLCAO< std::complex< double >, TR >, hamilt::Nonlocal< OperatorPW< T, Device > >, and hamilt::OnsiteProj< OperatorPW< T, Device > >.
◆ act_type
template<typename
T , typename Device = base_device::DEVICE_CPU>
determine which act() interface would be called in hPsi()
◆ cal_type
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ ctx
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ hpsi
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ ik
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ in_place
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ is_first_node
template<typename
T , typename Device = base_device::DEVICE_CPU>
◆ next_op
template<typename
T , typename Device = base_device::DEVICE_CPU>
interface type 3: return a Psi-type HPsi
◆ next_sub_op
template<typename
T , typename Device = base_device::DEVICE_CPU>
The documentation for this class was generated from the following file:
- /home/runner/work/abacus-develop/abacus-develop/source/source_hamilt/operator.h