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::YlmReal Class Reference

#include <math_ylmreal.h>

Collaboration diagram for ModuleBase::YlmReal:

Public Member Functions

 YlmReal ()
 
 ~YlmReal ()
 

Static Public Member Functions

static void Ylm_Real (const int lmax2, const int ng, const ModuleBase::Vector3< double > *g, matrix &ylm)
 spherical harmonic function (real form) an array of vectors
 
template<typename FPTYPE , typename Device >
static void Ylm_Real (Device *ctx, const int lmax2, const int ng, const FPTYPE *g, FPTYPE *ylm)
 spherical harmonic function (real form) an array
 
static void grad_Ylm_Real (const int lmax2, const int ng, const ModuleBase::Vector3< double > *g, matrix &ylm, matrix &dylmx, matrix &dylmy, matrix &dylmz)
 gradient of spherical harmonic function (real form) an array of vectors
 
static void Ylm_Real2 (const int lmax2, const int ng, const ModuleBase::Vector3< double > *g, matrix &ylm)
 spherical harmonic function (Herglotz generating form) of an array of vectors
 
static void rlylm (const int lmax, const double &x, const double &y, const double &z, double *rly)
 spherical harmonic function (Herglotz generating form) of a vector
 

Static Private Member Functions

static long double Fact (const int n)
 
static int Semi_Fact (const int n)
 

Constructor & Destructor Documentation

◆ YlmReal()

ModuleBase::YlmReal::YlmReal ( )

◆ ~YlmReal()

ModuleBase::YlmReal::~YlmReal ( )

Member Function Documentation

◆ Fact()

long double ModuleBase::YlmReal::Fact ( const int  n)
staticprivate
Here is the caller graph for this function:

◆ grad_Ylm_Real()

void ModuleBase::YlmReal::grad_Ylm_Real ( const int  lmax2,
const int  ng,
const ModuleBase::Vector3< double > *  g,
matrix ylm,
matrix dylmx,
matrix dylmy,
matrix dylmz 
)
static

gradient of spherical harmonic function (real form) an array of vectors

Parameters
lmax2[in] lmax2 = (lmax + 1)^2 ; lmax = angular quantum number
ng[in] the number of vectors
g[in] an array of vectors
ylm[out] Ylm; column index represent vector, row index represent Y00, Y10, Y11, Y1-1, Y20,Y21,Y2-1,Y22.Y2-2,...;
dylmx/dylmy/dylmz[out] \nabla Ylm; column index represent vector, row index represent dY00/dxyz, dY10/dxyz,...;
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rlylm()

void ModuleBase::YlmReal::rlylm ( const int  lmax,
const double &  x,
const double &  y,
const double &  z,
double *  rly 
)
static

spherical harmonic function (Herglotz generating form) of a vector

Parameters
lmax[in] maximum angular quantum number
x[in] x part of the vector
y[in] y part of the vector
z[in] z part of the vector
rly[in] Ylm, Y00, Y10, Y11, Y1-1, Y20,Y21,Y2-1,Y22.Y2-2,...
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Semi_Fact()

int ModuleBase::YlmReal::Semi_Fact ( const int  n)
staticprivate
Here is the caller graph for this function:

◆ Ylm_Real() [1/2]

void ModuleBase::YlmReal::Ylm_Real ( const int  lmax2,
const int  ng,
const ModuleBase::Vector3< double > *  g,
matrix ylm 
)
static

spherical harmonic function (real form) an array of vectors

Parameters
lmax2[in] lmax2 = (lmax + 1)^2 ; lmax = angular quantum number
ng[in] the number of vectors
g[in] an array of vectors
ylm[out] Ylm; column index represent vector, row index represent Y00, Y10, Y11, Y1-1, Y20,Y21,Y2-1,Y22.Y2-2,...;
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Ylm_Real() [2/2]

template<typename FPTYPE , typename Device >
void ModuleBase::YlmReal::Ylm_Real ( Device *  ctx,
const int  lmax2,
const int  ng,
const FPTYPE *  g,
FPTYPE *  ylm 
)
static

spherical harmonic function (real form) an array

Parameters
lmax2[in] lmax2 = (lmax + 1)^2 ; lmax = angular quantum number
ng[in] the number of vectors
g[in] an array of vectors
ylm[out] Ylm; column index represent vector, row index represent Y00, Y10, Y11, Y1-1, Y20,Y21,Y2-1,Y22.Y2-2,...;
Here is the call graph for this function:

◆ Ylm_Real2()

void ModuleBase::YlmReal::Ylm_Real2 ( const int  lmax2,
const int  ng,
const ModuleBase::Vector3< double > *  g,
matrix ylm 
)
static

spherical harmonic function (Herglotz generating form) of an array of vectors

Parameters
lmax2[in] lmax2 = (lmax + 1)^2 ; lmax = angular quantum number
ng[in] the number of vectors
g[in] an array of vectors
ylm[out] Ylm; column index represent vector, row index represent Y00, Y10, Y11, Y1-1, Y20,Y21,Y2-1,Y22.Y2-2,...;
Here is the call graph for this function:
Here is the caller graph for this function:

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