From 62eeb697bfa4f422cfddfb7cc9e21002e83c2f3b Mon Sep 17 00:00:00 2001 From: maki49 <1579492865@qq.com> Date: Fri, 21 Jun 2024 16:29:49 +0800 Subject: [PATCH] remove inheritance in Gint --- source/module_hamilt_lcao/module_gint/gint.cpp | 8 +++----- source/module_hamilt_lcao/module_gint/gint.h | 2 +- source/module_hamilt_lcao/module_gint/gint_gamma_env.cpp | 2 +- source/module_hamilt_lcao/module_gint/gint_k_env.cpp | 2 +- source/module_hamilt_lcao/module_gint/gint_k_pvpr.cpp | 6 +++--- source/module_hamilt_lcao/module_gint/gint_k_sparse.cpp | 2 +- source/module_hamilt_lcao/module_gint/gint_k_sparse1.cpp | 2 +- 7 files changed, 11 insertions(+), 13 deletions(-) diff --git a/source/module_hamilt_lcao/module_gint/gint.cpp b/source/module_hamilt_lcao/module_gint/gint.cpp index 507ca4edc6..bffa1210c4 100644 --- a/source/module_hamilt_lcao/module_gint/gint.cpp +++ b/source/module_hamilt_lcao/module_gint/gint.cpp @@ -170,7 +170,7 @@ void Gint::cal_gint(Gint_inout* inout) // it's a uniform grid to save orbital values, so the delta_r is // a constant. - const double delta_r = this->dr_uniform; + const double delta_r = this->gridt->dr_uniform; if((inout->job==Gint_Tools::job_type::vlocal || inout->job==Gint_Tools::job_type::vlocal_meta) @@ -483,9 +483,7 @@ void Gint::prep_grid(const Grid_Technique& gt, this->ny = ny_in; this->nplane = nplane_in; this->startz_current = startz_current_in; - this->ucell= ucell_in; - this->dr_uniform=gt.dr_uniform; - this->rcuts=gt.rcuts; + this->ucell = ucell_in; assert(nbx > 0); assert(nby > 0); assert(nbz >= 0); @@ -603,7 +601,7 @@ void Gint::initialize_pvpR(const UnitCell& ucell_in, Grid_Driver* gd) { ModuleBase::Vector3 dtau = gd->getAdjacentTau(ad) - tau1; double distance = dtau.norm() * ucell_in.lat0; - double rcut = this->rcuts[T1] + this->rcuts[T2]; + double rcut = this->gridt->rcuts[T1] + this->gridt->rcuts[T2]; //if(distance < rcut) // mohan reset this 2013-07-02 in Princeton diff --git a/source/module_hamilt_lcao/module_gint/gint.h b/source/module_hamilt_lcao/module_gint/gint.h index 40d98e6ca2..260eae8824 100644 --- a/source/module_hamilt_lcao/module_gint/gint.h +++ b/source/module_hamilt_lcao/module_gint/gint.h @@ -13,7 +13,7 @@ #include "module_hamilt_lcao/module_hcontainer/hcontainer.h" #include "module_cell/module_neighbor/sltk_grid_driver.h" #include "module_hamilt_lcao/module_gint/grid_technique.h" -class Gint :public Grid_Technique +class Gint { public: diff --git a/source/module_hamilt_lcao/module_gint/gint_gamma_env.cpp b/source/module_hamilt_lcao/module_gint/gint_gamma_env.cpp index 7d94743691..139e5744f8 100644 --- a/source/module_hamilt_lcao/module_gint/gint_gamma_env.cpp +++ b/source/module_hamilt_lcao/module_gint/gint_gamma_env.cpp @@ -10,7 +10,7 @@ void Gint_Gamma::cal_env(const double* wfc, double* rho,UnitCell &ucell) ModuleBase::TITLE("Grid_Integral","cal_env"); // it's a uniform grid to save orbital values, so the delta_r is a constant. - const double delta_r = this->dr_uniform; + const double delta_r = this->gridt->dr_uniform; const int max_size = this->gridt->max_atom; const int LD_pool = max_size*ucell.nwmax; diff --git a/source/module_hamilt_lcao/module_gint/gint_k_env.cpp b/source/module_hamilt_lcao/module_gint/gint_k_env.cpp index a91ae4b7c8..6130dfa61c 100644 --- a/source/module_hamilt_lcao/module_gint/gint_k_env.cpp +++ b/source/module_hamilt_lcao/module_gint/gint_k_env.cpp @@ -13,7 +13,7 @@ void Gint_k::cal_env_k(int ik, const std::complex* psi_k, double* rho, ModuleBase::timer::tick("Gint_k", "cal_env_k"); // it's a uniform grid to save orbital values, so the delta_r is a constant. - const double delta_r = this->dr_uniform; + const double delta_r = this->gridt->dr_uniform; const int max_size = this->gridt->max_atom; const int LD_pool = max_size * ucell.nwmax; diff --git a/source/module_hamilt_lcao/module_gint/gint_k_pvpr.cpp b/source/module_hamilt_lcao/module_gint/gint_k_pvpr.cpp index 065874feee..9e1f610500 100644 --- a/source/module_hamilt_lcao/module_gint/gint_k_pvpr.cpp +++ b/source/module_hamilt_lcao/module_gint/gint_k_pvpr.cpp @@ -170,7 +170,7 @@ void Gint_k::folding_vl_k(const int &ik, Atom* atom2 = &ucell.atoms[T2]; dtau = adjs.adjacent_tau[ad] - tau1; double distance = dtau.norm() * ucell.lat0; - double rcut = this->rcuts[T1] + this->rcuts[T2]; + double rcut = this->gridt->rcuts[T1] + this->gridt->rcuts[T2]; // for the local part, only need to calculate within range // mohan note 2012-07-06 @@ -473,7 +473,7 @@ void Gint_k::transfer_pvpR(hamilt::HContainer *hR,const UnitCell* ucell_ Atom* atom2 = &ucell.atoms[T2]; auto dtau = adjs.adjacent_tau[ad] - tau1; double distance = dtau.norm() * ucell.lat0; - double rcut = this->rcuts[T1] + this->rcuts[T2]; + double rcut = this->gridt->rcuts[T1] + this->gridt->rcuts[T2]; if(distance < rcut) { @@ -598,7 +598,7 @@ void Gint_k::transfer_pvpR(hamilt::HContainer> *hR,const Un Atom* atom2 = &ucell.atoms[T2]; auto dtau = adjs.adjacent_tau[ad] - tau1; double distance = dtau.norm() * ucell.lat0; - double rcut = this->rcuts[T1] + this->rcuts[T2]; + double rcut = this->gridt->rcuts[T1] + this->gridt->rcuts[T2]; if(distance < rcut) { diff --git a/source/module_hamilt_lcao/module_gint/gint_k_sparse.cpp b/source/module_hamilt_lcao/module_gint/gint_k_sparse.cpp index c85e79b483..1fc43a0f80 100644 --- a/source/module_hamilt_lcao/module_gint/gint_k_sparse.cpp +++ b/source/module_hamilt_lcao/module_gint/gint_k_sparse.cpp @@ -322,7 +322,7 @@ void Gint_k::cal_vlocal_R_sparseMatrix(const int ¤t_spin, const double &sp Atom* atom2 = &ucell.atoms[T2]; dtau = gdriver.getAdjacentTau(ad) - tau1; double distance = dtau.norm() * ucell.lat0; - double rcut = this->rcuts[T1]+this->rcuts[T2]; + double rcut = this->gridt->rcuts[T1] + this->gridt->rcuts[T2]; if(distance < rcut) { diff --git a/source/module_hamilt_lcao/module_gint/gint_k_sparse1.cpp b/source/module_hamilt_lcao/module_gint/gint_k_sparse1.cpp index 958949452a..7a11cd868e 100644 --- a/source/module_hamilt_lcao/module_gint/gint_k_sparse1.cpp +++ b/source/module_hamilt_lcao/module_gint/gint_k_sparse1.cpp @@ -368,7 +368,7 @@ void Gint_k::cal_dvlocal_R_sparseMatrix(const int ¤t_spin, const double &s Atom* atom2 = &ucell.atoms[T2]; dtau = gdriver.getAdjacentTau(ad) - tau1; double distance = dtau.norm() * ucell.lat0; - double rcut = this->rcuts[T1] + this->rcuts[T2]; + double rcut = this->gridt->rcuts[T1] + this->gridt->rcuts[T2]; if(distance < rcut) {