ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
GramSchmidtOrth Class Reference
Collaboration diagram for GramSchmidtOrth:

Public Member Functions

 GramSchmidtOrth (int nbasis, int ndim, double dr, ModuleBase::Gram_Schmidt_Orth< double, double >::Coordinate coordinate)
 
double inner_product (std::vector< double > a, std::vector< double > b)
 

Public Attributes

int nbasis
 
int ndim
 
double dr
 
std::vector< double > r2
 
double norm0
 
ModuleBase::Gram_Schmidt_Orth< double, double >::Coordinate coordinate
 
std::vector< double > rab
 
std::vector< std::vector< double > > basis
 

Detailed Description

Based on an linearly independent, but not orthonormal, set of functions x:{x1,x2,x3,...}, we can construct an orthonormal set X:{X1, X2, X3, ...} by using Gram-Schmidt orthogonalization. The new set X should has below properties:

  1. X1 = x1/||x1||
  2. <Xi,Xj> = 1 if (i == j) else 0

Note:in this class, for coordinate of sphere, the inner product of two radial function f(r) and g(r) equals the integral of r^2*f(r)*g(r) $$ (f(r),g(r)) = {\int}r^2f(r)g(r)dr $$

Constructor & Destructor Documentation

◆ GramSchmidtOrth()

GramSchmidtOrth::GramSchmidtOrth ( int  nbasis,
int  ndim,
double  dr,
ModuleBase::Gram_Schmidt_Orth< double, double >::Coordinate  coordinate 
)
inline

Member Function Documentation

◆ inner_product()

double GramSchmidtOrth::inner_product ( std::vector< double >  a,
std::vector< double >  b 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ basis

std::vector<std::vector<double> > GramSchmidtOrth::basis

◆ coordinate

ModuleBase::Gram_Schmidt_Orth<double,double>::Coordinate GramSchmidtOrth::coordinate

◆ dr

double GramSchmidtOrth::dr

◆ nbasis

int GramSchmidtOrth::nbasis

◆ ndim

int GramSchmidtOrth::ndim

◆ norm0

double GramSchmidtOrth::norm0

◆ r2

std::vector<double> GramSchmidtOrth::r2

◆ rab

std::vector<double> GramSchmidtOrth::rab

The documentation for this class was generated from the following file: