occ
Loading...
Searching...
No Matches
occ::core::Multipole< L > Struct Template Reference

Templated storage class for Multipole expansions. More...

#include <multipole.h>

Public Types

using Dipole = std::array< double, 3 >
 storage alias for 3 components of a dipole
 
using Quadrupole = std::array< double, 6 >
 storage alias for the 6 components of a quadrupole
 
using Octupole = std::array< double, 10 >
 storage alias for the 10 components of an octupole
 
using Hexadecapole = std::array< double, 15 >
 storage alias for the 15 components of a hexadecapole
 

Public Member Functions

double charge () const
 The monopole (charge) part of this multipole expansion q
 
Dipole dipole () const
 The dipole part of this multipole expansion (x y z).
 
Quadrupole quadrupole () const
 The quadrupole part of this multipole expansion (xx xy xz yy yz zz).
 
Octupole octupole () const
 The octupole part of this multipole expansion (xxx xxy xxz xyy xyz xzz yyy yyz yzz zzz).
 
Hexadecapole hexadecapole () const
 The hexadecapole part of this multipole expansion (xxxx xxxz xxyy xxyz xxzz xyyy xyyz xyzz xzzz yyyy yyyz yyzz yzzz zzzz).
 
template<unsigned int L2>
Multipole< std::max(L, L2)> operator+ (const Multipole< L2 > &rhs) const
 Operator overload to add two multipoles together.
 
std::string to_string () const
 

Public Attributes

std::array< double, num_componentscomponents
 

Static Public Attributes

static constexpr unsigned int num_components
 

Detailed Description

template<unsigned int L>
struct occ::core::Multipole< L >

Templated storage class for Multipole expansions.

Member Typedef Documentation

◆ Dipole

template<unsigned int L>
using occ::core::Multipole< L >::Dipole = std::array<double, 3>

storage alias for 3 components of a dipole

◆ Hexadecapole

template<unsigned int L>
using occ::core::Multipole< L >::Hexadecapole = std::array<double, 15>

storage alias for the 15 components of a hexadecapole

◆ Octupole

template<unsigned int L>
using occ::core::Multipole< L >::Octupole = std::array<double, 10>

storage alias for the 10 components of an octupole

◆ Quadrupole

template<unsigned int L>
using occ::core::Multipole< L >::Quadrupole = std::array<double, 6>

storage alias for the 6 components of a quadrupole

Member Function Documentation

◆ charge()

template<unsigned int L>
double occ::core::Multipole< L >::charge ( ) const
inline

The monopole (charge) part of this multipole expansion q

Returns
monopole.

◆ dipole()

template<unsigned int L>
Dipole occ::core::Multipole< L >::dipole ( ) const
inline

The dipole part of this multipole expansion (x y z).

Returns
the (3 unique) components of the dipole

◆ hexadecapole()

template<unsigned int L>
Hexadecapole occ::core::Multipole< L >::hexadecapole ( ) const
inline

The hexadecapole part of this multipole expansion (xxxx xxxz xxyy xxyz xxzz xyyy xyyz xyzz xzzz yyyy yyyz yyzz yzzz zzzz).

Returns
the (15 unique) components of the hexadecapole

◆ octupole()

template<unsigned int L>
Octupole occ::core::Multipole< L >::octupole ( ) const
inline

The octupole part of this multipole expansion (xxx xxy xxz xyy xyz xzz yyy yyz yzz zzz).

Returns
the (10 unique) components of the octupole

◆ operator+()

template<unsigned int L>
template<unsigned int L2>
Multipole< std::max(L, L2)> occ::core::Multipole< L >::operator+ ( const Multipole< L2 > &  rhs) const
inline

Operator overload to add two multipoles together.

Returns
a Multipole of order max(L1, L2).

◆ quadrupole()

template<unsigned int L>
Quadrupole occ::core::Multipole< L >::quadrupole ( ) const
inline

The quadrupole part of this multipole expansion (xx xy xz yy yz zz).

Returns
the (6 unique) components of the quadrupole

◆ to_string()

template<unsigned int L>
std::string occ::core::Multipole< L >::to_string ( ) const
inline

Member Data Documentation

◆ components

template<unsigned int L>
std::array<double, num_components> occ::core::Multipole< L >::components

◆ num_components

template<unsigned int L>
constexpr unsigned int occ::core::Multipole< L >::num_components
staticconstexpr
Initial value:
{
constexpr unsigned int total_num_multipole_components(int L)
The total number of unique multipole components up to and including a given angular momentum.
Definition multipole.h:42

The documentation for this struct was generated from the following file: