ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <ylm.h>
Public Member Functions | |
Ylm () | |
~Ylm () | |
Static Public Member Functions | |
static void | get_ylm_real (const int &Lmax, const ModuleBase::Vector3< double > &vec, double ylmr[]) |
Get the ylm real object. | |
static void | get_ylm_real (const int &Lmax, const ModuleBase::Vector3< double > &vec, double ylmr[], double dylmdr[][3]) |
Get the ylm real object and the gradient. | |
static void | rlylm (const int &Lmax, const double &x, const double &y, const double &z, double rly[]) |
Get the ylm real (solid) object (not used anymore) | |
static void | rlylm (const int &Lmax, const double &x, const double &y, const double &z, double rly[], double grly[][3]) |
Get the ylm real (solid) object and the gradient (not used anymore) | |
static void | sph_harm (const int &Lmax, const double &xdr, const double &ydr, const double &zdr, std::vector< double > &rly) |
Get the ylm real object (used in grid integration) | |
static void | rl_sph_harm (const int &Lmax, const double &x, const double &y, const double &z, std::vector< double > &rly) |
Get the ylm real object (used in getting overlap) | |
static void | grad_rl_sph_harm (const int &Lmax, const double &x, const double &y, const double &z, double *rly, double **grly) |
Get the ylm real object and the gradient (used in getting derivative of overlap) | |
static void | hes_rl_sph_harm (const int &Lmax, const double &x, const double &y, const double &z, std::vector< std::vector< double > > &hrly) |
Get the hessian of r^l Ylm (used in getting derivative of overlap) | |
static void | set_coefficients () |
static void | ZEROS (double u[], const int &n) |
Static Public Attributes | |
static int | nlm = 0 |
static std::vector< double > | ylmcoef |
Static Private Member Functions | |
static long double | Fact (const int n) |
static int | Semi_Fact (const int n) |
static double | sgn (const double x) |
|
inline |
|
inline |
|
staticprivate |
|
static |
Get the ylm real object.
Lmax | [in] maximum angular quantum number + 1 |
vec | [in] the vector to be calculated |
ylmr | [out] calculated Ylm, Y00, Y10, Y11, Y1-1, Y20, Y21, Y2-1, Y22, Y2-2... |
|
static |
Get the ylm real object and the gradient.
Lmax | [in] maximum angular quantum number + l |
vec | [in] the vector to be calculated |
ylmr | [out] calculated Ylm, Y00, Y10, Y11, Y1-1, Y20, Y21, Y2-1, Y22, Y2-2... |
dylmdr | [out] gradient of Ylm, [dY00/dx, dY00/dy, dY00/dz], [dY10/dx, dY10/dy, dY10/dz], [dY11/dx, dY11/dy, dY11/dz],... |
|
static |
Get the ylm real object and the gradient (used in getting derivative of overlap)
Lmax | [in] maximum angular quantum number |
x | [in] x/r |
y | [in] y/r |
z | [in] z/r |
rly | [in] calculated Ylm, Y00, Y10, Y11, Y1-1, Y20, Y21, Y2-1, Y22, Y2-2... |
grly | [out] gradient of Ylm, [dY00/dx, dY00/dy, dY00/dz], [dY10/dx, dY10/dy, dY10/dz], [dY11/dx, dY11/dy, dY11/dz],... grly should be a memory-contiguous two-dimensional array for better performance. |
|
static |
Get the hessian of r^l Ylm (used in getting derivative of overlap)
Lmax | [in] maximum angular quantum number |
x | [in] x |
y | [in] y |
z | [in] z |
hrly | [out] hessian of Ylm, [dY00/dx2, dY00/dxy, dY00/dxz, dY00/dyy, dY00/dyz, dY00/dzz] , ... |
|
static |
Get the ylm real object (used in getting overlap)
Lmax | [in] maximum angular quantum number |
x | [in] x/r |
y | [in] y/r |
z | [in] z/r |
rly | [in] calculated Ylm, Y00, Y10, Y11, Y1-1, Y20, Y21, Y2-1, Y22, Y2-2... |
|
static |
Get the ylm real (solid) object (not used anymore)
Lmax | [in] maximum angular quantum number + l |
x | [in] x |
y | [in] y |
z | [in] z |
rly | [in] calculated Ylm, Y00, Y10, Y11, Y1-1, Y20, Y21, Y2-1, Y22, Y2-2... |
|
static |
Get the ylm real (solid) object and the gradient (not used anymore)
Lmax | [in] maximum angular quantum number + 1 |
x | [in] x |
y | [in] y |
z | [in] z |
rly | [in] calculated Ylm, Y00, Y10, Y11, Y1-1, Y20, Y21, Y2-1, Y22, Y2-2... |
grly | [out] gradient of Ylm, [dY00/dx, dY00/dy, dY00/dz], [dY10/dx, dY10/dy, dY10/dz], [dY11/dx, dY11/dy, dY11/dz],... |
|
staticprivate |
|
static |
|
staticprivate |
|
static |
Get the ylm real object (used in grid integration)
Lmax | [in] maximum angular quantum number |
xdr | [in] x/r |
ydr | [in] y/r |
zdr | [in] z/r |
rly | [in] calculated Ylm, Y00, Y10, Y11, Y1-1, Y20, Y21, Y2-1, Y22, Y2-2... |
|
static |
|
static |
|
static |