ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
Diag part of A operator: [AX]_iak = (e_ak - e_ik) X_iak. More...
#include <operator_lr_diag.h>
Public Member Functions | |
OperatorLRDiag (const double *eig_ks, const Parallel_2D &pX_in, const int &nk_in, const int &nocc_in, const int &nvirt_in) | |
void | init (const int ik_in) override |
virtual 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 |
![]() | |
Operator () | |
virtual | ~Operator () |
virtual hpsi_info | hPsi (hpsi_info &input) const |
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 |
Private Attributes | |
const Parallel_2D & | pX |
ModuleBase::matrix | eig_ks_diff |
const int & | nk |
const int & | nocc |
const int & | nvirt |
Device * | ctx = {} |
Additional Inherited Members | |
![]() | |
typedef std::tuple< const psi::Psi< T, Device > *, const psi::Range, T * > | hpsi_info |
![]() | |
Operator * | next_op = nullptr |
interface type 3: return a Psi-type HPsi | |
![]() | |
using | set_memory_op = base_device::memory::set_memory_op< T, Device > |
![]() | |
T * | get_hpsi (const hpsi_info &info) const |
![]() | |
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 |
Operator * | next_sub_op = nullptr |
bool | is_first_node = true |
psi::Psi< T, Device > * | hpsi = nullptr |
Device * | ctx = {} |
Diag part of A operator: [AX]_iak = (e_ak - e_ik) X_iak.
|
inline |
|
inlineoverridevirtual |
caution: put this operator at the head of the operator list, because vector_mul_vector_op directly assign to (rather than add on) psi_out.
Reimplemented from hamilt::Operator< T, Device >.
|
inlineoverridevirtual |
Reimplemented from hamilt::Operator< T, Device >.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |