![]() |
(git:b77b4be)
|
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "grpp_binomial.h"
#include "grpp_factorial.h"
#include "grpp_spherical_harmonics.h"
#include "libgrpp.h"
Go to the source code of this file.
Macros | |
#define | M_PI 3.1415926535897932384626433 |
#define | M_SQRT1_2 0.70710678118654752440 |
Functions | |
rsh_coef_table_t * | libgrpp_tabulate_real_spherical_harmonic_coeffs (int L) |
static int * | generate_cartesian_combinations (int L, int *num) |
void | libgrpp_create_real_spherical_harmonic_coeffs_tables (int Lmax) |
rsh_coef_table_t * | libgrpp_get_real_spherical_harmonic_table (int L) |
double | libgrpp_spherical_to_cartesian_coef (int l, int m, int lx, int ly) |
double | libgrpp_evaluate_real_spherical_harmonic (const int l, const int m, const double *k) |
void | libgrpp_evaluate_real_spherical_harmonics_array (const int l, const double *k, double *rsh_array) |
Variables | |
static rsh_coef_table_t ** | rsh_coef_tables = NULL |
static int | rsh_tables_lmax = -1 |
#define M_PI 3.1415926535897932384626433 |
Definition at line 30 of file grpp_spherical_harmonics.c.
#define M_SQRT1_2 0.70710678118654752440 |
Definition at line 34 of file grpp_spherical_harmonics.c.
rsh_coef_table_t * libgrpp_tabulate_real_spherical_harmonic_coeffs | ( | int | L | ) |
Calculates all C_{l,m}^{lx,ly,lz} coefficients for the given angular momentum L.
Definition at line 79 of file grpp_spherical_harmonics.c.
|
static |
Definition at line 284 of file grpp_spherical_harmonics.c.
void libgrpp_create_real_spherical_harmonic_coeffs_tables | ( | int | Lmax | ) |
Constructs the set of tables with C_{l,m}^{lx,ly,lz} coefficients (up to maximum angular momentum Lmax). (pretabulation step)
Definition at line 60 of file grpp_spherical_harmonics.c.
rsh_coef_table_t * libgrpp_get_real_spherical_harmonic_table | ( | int | L | ) |
Access to the table for the angular momentum value L.
Definition at line 105 of file grpp_spherical_harmonics.c.
double libgrpp_spherical_to_cartesian_coef | ( | int | l, |
int | m, | ||
int | lx, | ||
int | ly | ||
) |
For the given real spherical harmonic (RSH) S_lm calculates the coefficient C_{l,m}^{lx,ly,lz} before the unitary spherical polynomial (USP) in its expansion.
The formula is taken from: R. Flores-Moreno et al, J. Comput. Chem. 27, 1009 (2006) doi: 10.1002/jcc.20410 (formula 32)
Definition at line 124 of file grpp_spherical_harmonics.c.
double libgrpp_evaluate_real_spherical_harmonic | ( | const int | l, |
const int | m, | ||
const double * | k | ||
) |
Calculates value of the real spherical harmonic S_lm at the point k/|k| of the unit sphere.
Definition at line 178 of file grpp_spherical_harmonics.c.
void libgrpp_evaluate_real_spherical_harmonics_array | ( | const int | l, |
const double * | k, | ||
double * | rsh_array | ||
) |
Calculates values of the real spherical harmonic S_lm at the point k/|k| of the unit sphere for all m = -l, ..., +l
Definition at line 230 of file grpp_spherical_harmonics.c.
|
static |
Definition at line 45 of file grpp_spherical_harmonics.c.
|
static |
Definition at line 46 of file grpp_spherical_harmonics.c.