occ
Loading...
Searching...
No Matches
occ::mults::detail Namespace Reference

Functions

constexpr double factorial (int n)
 Factorial lookup for small values.
 
template<int MaxL>
void convert_l0 (const occ::dma::Mult &sph, CartesianMultipole< MaxL > &cart)
 Convert spherical multipole to traceless Cartesian for rank 0.
 
template<int MaxL>
void convert_l1 (const occ::dma::Mult &sph, CartesianMultipole< MaxL > &cart)
 Convert spherical multipole to traceless Cartesian for rank 1.
 
template<int MaxL>
void convert_l2 (const occ::dma::Mult &sph, CartesianMultipole< MaxL > &cart)
 Convert spherical multipole to traceless Cartesian for rank 2.
 
template<int MaxL>
void convert_l3 (const occ::dma::Mult &sph, CartesianMultipole< MaxL > &cart)
 Convert spherical multipole to traceless Cartesian for rank 3.
 
template<int MaxL>
void convert_l4 (const occ::dma::Mult &sph, CartesianMultipole< MaxL > &cart)
 Convert spherical multipole to traceless Cartesian for rank 4.
 

Variables

constexpr double sqrt3 = 1.7320508075688772935
 
constexpr double sqrt5 = 2.2360679774997896964
 
constexpr double sqrt6 = 2.4494897427831780982
 
constexpr double sqrt7 = 2.6457513110645905905
 
constexpr double sqrt10 = 3.1622776601683795
 
constexpr double sqrt15 = 3.872983346207417
 
constexpr double sqrt35 = 5.916079783099616
 
constexpr double sqrt70 = 8.366600265340756
 

Function Documentation

◆ convert_l0()

template<int MaxL>
void occ::mults::detail::convert_l0 ( const occ::dma::Mult sph,
CartesianMultipole< MaxL > &  cart 
)

Convert spherical multipole to traceless Cartesian for rank 0.

◆ convert_l1()

template<int MaxL>
void occ::mults::detail::convert_l1 ( const occ::dma::Mult sph,
CartesianMultipole< MaxL > &  cart 
)

Convert spherical multipole to traceless Cartesian for rank 1.

◆ convert_l2()

template<int MaxL>
void occ::mults::detail::convert_l2 ( const occ::dma::Mult sph,
CartesianMultipole< MaxL > &  cart 
)

Convert spherical multipole to traceless Cartesian for rank 2.

Theta_002 = 2*Q20/3 Theta_200 = -Q20/3 + Q22c/sqrt(3) Theta_020 = -Q20/3 - Q22c/sqrt(3) Theta_101 = Q21c/sqrt(3) Theta_011 = Q21s/sqrt(3) Theta_110 = Q22s/sqrt(3)

◆ convert_l3()

template<int MaxL>
void occ::mults::detail::convert_l3 ( const occ::dma::Mult sph,
CartesianMultipole< MaxL > &  cart 
)

Convert spherical multipole to traceless Cartesian for rank 3.

Derived from Stone's solid harmonics (Table B.1) with tracelessness.

◆ convert_l4()

template<int MaxL>
void occ::mults::detail::convert_l4 ( const occ::dma::Mult sph,
CartesianMultipole< MaxL > &  cart 
)

Convert spherical multipole to traceless Cartesian for rank 4.

Derived from Stone's solid harmonics with tracelessness constraints.

◆ factorial()

constexpr double occ::mults::detail::factorial ( int  n)
inlineconstexpr

Factorial lookup for small values.

Variable Documentation

◆ sqrt10

constexpr double occ::mults::detail::sqrt10 = 3.1622776601683795
inlineconstexpr

◆ sqrt15

constexpr double occ::mults::detail::sqrt15 = 3.872983346207417
inlineconstexpr

◆ sqrt3

constexpr double occ::mults::detail::sqrt3 = 1.7320508075688772935
inlineconstexpr

◆ sqrt35

constexpr double occ::mults::detail::sqrt35 = 5.916079783099616
inlineconstexpr

◆ sqrt5

constexpr double occ::mults::detail::sqrt5 = 2.2360679774997896964
inlineconstexpr

◆ sqrt6

constexpr double occ::mults::detail::sqrt6 = 2.4494897427831780982
inlineconstexpr

◆ sqrt7

constexpr double occ::mults::detail::sqrt7 = 2.6457513110645905905
inlineconstexpr

◆ sqrt70

constexpr double occ::mults::detail::sqrt70 = 8.366600265340756
inlineconstexpr