diff --git a/source/module_hamilt_lcao/module_gint/init_orb.cpp b/source/module_hamilt_lcao/module_gint/init_orb.cpp index 684601fff8..7e90af608b 100644 --- a/source/module_hamilt_lcao/module_gint/init_orb.cpp +++ b/source/module_hamilt_lcao/module_gint/init_orb.cpp @@ -2,7 +2,9 @@ #include "module_base/memory.h" #include "module_basis/module_ao/ORB_read.h" #include "module_cell/unitcell.h" + namespace Gint_Tools{ + void init_orb(double& dr_uniform, std::vector& rcuts, UnitCell& ucell, @@ -11,17 +13,23 @@ void init_orb(double& dr_uniform, std::vector>& dpsi_u, std::vector>& d2psi_u) { - // set the grid parameters + //! set the grid parameters dr_uniform=orb.dr_uniform; + + assert(dr_uniform>0.0); const int nwmax=ucell.nwmax; const int ntype=ucell.ntype; + + assert(nwmax>0); + assert(ntype>0); rcuts=std::vector(ntype); ModuleBase::Memory::record("rcuts", sizeof(double)*ntype*3); - for(int T=0; T>(ntype * nwmax); ModuleBase::Memory::record("psi_u", sizeof(double)*nwmax*ntype*3); - Atom* atomx; - const Numerical_Orbital_Lm* pointer; + Atom* atomx = nullptr; + const Numerical_Orbital_Lm* pointer = nullptr; for (int i = 0; i < ntype; i++) { atomx = &ucell.atoms[i]; for (int j = 0; j < nwmax; j++) { + const int k=i*nwmax+j; if (j < atomx->nw) { pointer = &orb.Phi[i].PhiLN(atomx->iw2l[j],atomx->iw2n[j]); - psi_u[i*nwmax+j]=pointer->psi_uniform; - dpsi_u[i*nwmax+j]=pointer->dpsi_uniform; - d2psi_u[i*nwmax+j]=pointer->ddpsi_uniform; + psi_u[k]=pointer->psi_uniform; + dpsi_u[k]=pointer->dpsi_uniform; + d2psi_u[k]=pointer->ddpsi_uniform; } } } -} -}// Gint_Tools +}// End of init_orb() + +}// End of Gint_Tools