ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Static Private Member Functions | List of all members
ModuleBase::Clebsch_Gordan Class Reference

#include <clebsch_gordan_coeff.h>

Collaboration diagram for ModuleBase::Clebsch_Gordan:

Public Member Functions

 Clebsch_Gordan ()
 
 ~Clebsch_Gordan ()
 

Static Public Member Functions

static void clebsch_gordan (const int &lli, ModuleBase::realArray &ap, ModuleBase::IntArray &lpx, ModuleBase::IntArray &lpl)
 computes Clebsch-Gordan coefficient
 

Static Private Member Functions

static void gen_rndm_r (const int &llx, ModuleBase::Vector3< double > *r)
 generate random vector
 
static double compute_ap (const int &L, const int &li, const int &lj, const int &llx, const ModuleBase::matrix &ylm, const ModuleBase::matrix &mly)
 store the inverse of ylm(ir,lm) in mly(lm,ir)
 

Constructor & Destructor Documentation

◆ Clebsch_Gordan()

ModuleBase::Clebsch_Gordan::Clebsch_Gordan ( )

◆ ~Clebsch_Gordan()

ModuleBase::Clebsch_Gordan::~Clebsch_Gordan ( )

Member Function Documentation

◆ clebsch_gordan()

void ModuleBase::Clebsch_Gordan::clebsch_gordan ( const int &  lli,
ModuleBase::realArray ap,
ModuleBase::IntArray lpx,
ModuleBase::IntArray lpl 
)
static

computes Clebsch-Gordan coefficient

this routine computes the coefficients of the expansion of the product of two real spherical harmonics into real spherical harmonics.

Y_limi(r) * Y_ljmj(r) = \sum_LM ap(LM,limi,ljmj) Y_LM(r)

The indices limi,ljmj and LM assume the order for real spherical harmonics given in routine ylmr2

Parameters
lli[in] lmaxkb + 1: the maximum li considered
ap[out] coefficients of the expansion
lpx[out] for each input limi,ljmj is the number of LM in the sum
lpl[out] for each input limi,ljmj points to the allowed LM
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_ap()

double ModuleBase::Clebsch_Gordan::compute_ap ( const int &  L,
const int &  li,
const int &  lj,
const int &  llx,
const ModuleBase::matrix ylm,
const ModuleBase::matrix mly 
)
staticprivate

store the inverse of ylm(ir,lm) in mly(lm,ir)

Parameters
L[in] angular momentum L
li[in] angular momentum li
lj[in] angular momentum lj
llx[in] the number of vectors
ylm[in] real spherical harmonics
mly[in] the inverse of ylm(ir,lm)
Returns
double the expansion coefficients
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gen_rndm_r()

void ModuleBase::Clebsch_Gordan::gen_rndm_r ( const int &  llx,
ModuleBase::Vector3< double > *  r 
)
staticprivate

generate random vector

Parameters
llx[in] the number of vectors
r[out] an array of vectors
Here is the caller graph for this function:

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