diff --git a/source/module_lr/operator_casida/operator_lr_diag.h b/source/module_lr/operator_casida/operator_lr_diag.h index b18343e04a..d6255caabe 100644 --- a/source/module_lr/operator_casida/operator_lr_diag.h +++ b/source/module_lr/operator_casida/operator_lr_diag.h @@ -42,7 +42,8 @@ namespace LR const int npol, const T* psi_in, T* hpsi, - const int ngk_ik = 0)const override + const int ngk_ik = 0, + const bool is_first_node = false)const override { ModuleBase::TITLE("OperatorLRDiag", "act"); const int nlocal_ph = nk * pX.get_local_size(); // local size of particle-hole basis diff --git a/source/module_lr/operator_casida/operator_lr_exx.cpp b/source/module_lr/operator_casida/operator_lr_exx.cpp index fba9b5f898..47bdcb2399 100644 --- a/source/module_lr/operator_casida/operator_lr_exx.cpp +++ b/source/module_lr/operator_casida/operator_lr_exx.cpp @@ -75,7 +75,7 @@ namespace LR } template - void OperatorLREXX::act(const int nbands, const int nbasis, const int npol, const T* psi_in, T* hpsi, const int ngk_ik)const + void OperatorLREXX::act(const int nbands, const int nbasis, const int npol, const T* psi_in, T* hpsi, const int ngk_ik, const bool is_first_node)const { ModuleBase::TITLE("OperatorLREXX", "act"); diff --git a/source/module_lr/operator_casida/operator_lr_exx.h b/source/module_lr/operator_casida/operator_lr_exx.h index ac052d2655..657f4c4af2 100644 --- a/source/module_lr/operator_casida/operator_lr_exx.h +++ b/source/module_lr/operator_casida/operator_lr_exx.h @@ -55,9 +55,15 @@ namespace LR 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 override; - - private: + 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; + + private: //global sizes const int& nspin; const int& naos; diff --git a/source/module_lr/operator_casida/operator_lr_hxc.cpp b/source/module_lr/operator_casida/operator_lr_hxc.cpp index 58f01932b4..31e64a9acf 100644 --- a/source/module_lr/operator_casida/operator_lr_hxc.cpp +++ b/source/module_lr/operator_casida/operator_lr_hxc.cpp @@ -17,7 +17,7 @@ inline std::complex conj(std::complex a) { return std::conj(a); namespace LR { template - void OperatorLRHxc::act(const int nbands, const int nbasis, const int npol, const T* psi_in, T* hpsi, const int ngk_ik)const + void OperatorLRHxc::act(const int nbands, const int nbasis, const int npol, const T* psi_in, T* hpsi, const int ngk_ik, const bool is_first_node)const { ModuleBase::TITLE("OperatorLRHxc", "act"); const int& sl = ispin_ks[0]; diff --git a/source/module_lr/operator_casida/operator_lr_hxc.h b/source/module_lr/operator_casida/operator_lr_hxc.h index e9ea332f88..1c97c907b8 100644 --- a/source/module_lr/operator_casida/operator_lr_hxc.h +++ b/source/module_lr/operator_casida/operator_lr_hxc.h @@ -47,9 +47,15 @@ namespace LR 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 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; - private: + private: void grid_calculation(const int& nbands)const; //global sizes diff --git a/source/module_lr/ri_benchmark/operator_ri_hartree.h b/source/module_lr/ri_benchmark/operator_ri_hartree.h index cc398be90c..fbeb8e60f5 100644 --- a/source/module_lr/ri_benchmark/operator_ri_hartree.h +++ b/source/module_lr/ri_benchmark/operator_ri_hartree.h @@ -50,7 +50,13 @@ namespace RI_Benchmark } }; ~OperatorRIHartree() {} - void act(const int nbands, const int nbasis, const int npol, const T* psi_in, T* hpsi, const int ngk_ik = 0)const override + 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 { assert(GlobalV::MY_RANK == 0); // only serial now assert(nbasis == npairs);