SPH
Classes | Namespaces | Functions
Multipole.h File Reference
#include "objects/containers/StaticArray.h"
#include "objects/geometry/Vector.h"

Go to the source code of this file.

Classes

struct  Detail::MultipoleMappingImpl< X, Second, Idxs... >
 
struct  Detail::MultipoleMappingImpl< I >
 
struct  Detail::MultipoleMappingImpl< Y, Second, Idxs... >
 
struct  Detail::MultipoleMappingImpl< Z, Second, Idxs... >
 
struct  Detail::MultipoleMapping< Idxs >
 
struct  Detail::MultipoleMapping< I >
 
struct  Detail::MultipoleMapping<>
 
class  Multipole< Order >
 
struct  MakeMultipole< 0 >
 
struct  MakeMultipole< 1 >
 
struct  MakeMultipole< 2 >
 
struct  MakeMultipole< 3 >
 
struct  MakeMultipole< 4 >
 
struct  Detail::TracelessMultipoleMappingImpl< X, Second, Idxs... >
 
struct  Detail::TracelessMultipoleMappingImpl< Y, Second, Idxs... >
 
struct  Detail::TracelessMultipoleMappingImpl< I >
 
struct  Detail::TracelessMultipoleMapping< Idxs >
 
struct  Detail::TracelessMultipoleMapping< I >
 
class  TracelessMultipole< Order >
 
class  TracelessMultipole< 1 >
 
class  TracelessMultipole< 0 >
 
struct  MakeTracelessMultipole< 0 >
 
struct  MakeTracelessMultipole< 1 >
 
struct  MakeTracelessMultipole< 2 >
 
struct  MakeTracelessMultipole< 3 >
 
struct  MakeTracelessMultipole< 4 >
 
struct  TracelessMultipoleComponentImpl< Idxs >
 
struct  TracelessMultipoleComponent< Idxs >
 
struct  TracelessMultipoleComponentImpl< Z, Z >
 
struct  TracelessMultipoleComponentImpl< I, Z, Z >
 
struct  TracelessMultipoleComponentImpl< I, J, Z, Z >
 
struct  MomentOperators::Delta< Order >
 
struct  MomentOperators::Permutations< N, 0, Value1, Value2 >
 
struct  MomentOperators::Permutations< 0, N, Value1, Value2 >
 
struct  MomentOperators::Permutations< 2, 2, Value1, Value2 >
 
struct  MomentOperators::Permutations< 3, 1, Value1, Value2 >
 
struct  MomentOperators::Permutations< 2, 1, Value1, Value2 >
 
struct  MomentOperators::Permutations< 1, 2, Value1, Value2 >
 
struct  MomentOperators::Contraction< TValue >
 
struct  MomentOperators::InnerProduct< 1, 2, TValue1, TValue2 >
 
struct  MomentOperators::InnerProduct< 1, 1, TValue1, TValue2 >
 
struct  MomentOperators::InnerProduct< 2, 2, TValue1, TValue2 >
 
struct  MomentOperators::InnerProduct< 3, 3, TValue1, TValue2 >
 
struct  MomentOperators::MultiplyByScalar< TValue >
 
struct  MomentOperators::MultiplyTwo< 1, TValue1, TValue2 >
 
struct  MomentOperators::MultiplyTwo< 2, TValue1, TValue2 >
 
struct  MomentOperators::MultiplyTwo< 4, TValue1, TValue2 >
 
struct  MomentOperators::Sum< TValue1, TValue2 >
 
struct  MomentOperators::Difference< TValue1, TValue2 >
 
struct  MomentOperators::OuterProduct< Order >
 
struct  MultipoleExpansion< N >
 
struct  MultipoleExpansion< 0 >
 
class  Experimental::MultipoleBase< N >
 

Namespaces

 Detail
 
 MomentOperators
 
 Experimental
 

Functions

template<Size... Is>
constexpr NAMESPACE_SPH_BEGIN auto sortIndices ()
 c++14 sort of template parameters More...
 
constexpr Size Detail::multipoleComponentCnt (Size order)
 
template<Size Last>
constexpr Size Detail::sum ()
 
template<Size First, Size Second, Size... Idxs>
constexpr Size Detail::sum ()
 
template<std::size_t... Idxs, std::size_t... Is>
constexpr Size Detail::expandMultipoleArray (std::index_sequence< Is... >)
 
template<Size N>
INLINE auto almostEqual (const Multipole< N > &f1, const Multipole< N > &f2, const Float &eps=EPS)
 
template<Size N, typename TValue >
Multipole< NmakeMultipole (const TValue &v)
 
constexpr Size Detail::tracelessMultipoleComponentCnt (Size order)
 
template<std::size_t... Idxs, std::size_t... Is>
constexpr Size Detail::expandTracelessMultipoleArray (std::index_sequence< Is... >)
 
template<Size N>
INLINE auto almostEqual (const TracelessMultipole< N > &f1, const TracelessMultipole< N > &f2, const Float &eps=EPS)
 
template<Size N, typename TValue >
TracelessMultipole< NmakeTracelessMultipole (const TValue &v)
 
template<std::size_t... Idxs, std::size_t... Is>
constexpr Float expandTracelessMultipoleComponent (const TracelessMultipole< sizeof...(Idxs)> &m, std::index_sequence< Is... >)
 
constexpr Size factorial (const Size n)
 
constexpr Size doubleFactorial (const Size n)
 
template<typename Value1 , typename Value2 >
Permutations< Value1::ORDER, Value2::ORDER, Value1, Value2 > MomentOperators::makePermutations (const Value1 &v1, const Value2 &v2)
 
template<typename TValue >
Contraction< TValue > MomentOperators::makeContraction (const TValue &v)
 
template<Size N, typename TValue1 , typename TValue2 >
InnerProduct< N, TValue1::ORDER, TValue1, TValue2 > MomentOperators::makeInner (const TValue1 &v1, const TValue2 &v2)
 
template<typename TValue >
MultiplyByScalar< TValue > MomentOperators::operator* (const TValue &v, const Float f)
 
template<typename TValue1 , typename TValue2 >
MultiplyTwo< TValue1::ORDER, TValue1, TValue2 > MomentOperators::makeMultiply (const TValue1 &v1, const TValue2 &v2)
 
template<typename TValue1 , typename TValue2 >
Sum< TValue1, TValue2 > MomentOperators::operator+ (const TValue1 &v1, const TValue2 &v2)
 
template<typename TValue1 , typename TValue2 >
Difference< TValue1, TValue2 > MomentOperators::operator- (const TValue1 &v1, const TValue2 &v2)
 

Function Documentation

◆ almostEqual() [1/2]

template<Size N>
INLINE auto almostEqual ( const Multipole< N > &  f1,
const Multipole< N > &  f2,
const Float eps = EPS 
)

Definition at line 155 of file Multipole.h.

◆ almostEqual() [2/2]

template<Size N>
INLINE auto almostEqual ( const TracelessMultipole< N > &  f1,
const TracelessMultipole< N > &  f2,
const Float eps = EPS 
)

Definition at line 484 of file Multipole.h.

◆ doubleFactorial()

constexpr Size doubleFactorial ( const Size  n)
inlineconstexpr

Definition at line 628 of file Multipole.h.

◆ expandTracelessMultipoleComponent()

template<std::size_t... Idxs, std::size_t... Is>
constexpr Float expandTracelessMultipoleComponent ( const TracelessMultipole< sizeof...(Idxs)> &  m,
std::index_sequence< Is... >   
)
constexpr

Definition at line 584 of file Multipole.h.

◆ factorial()

constexpr Size factorial ( const Size  n)
inlineconstexpr

Definition at line 620 of file Multipole.h.

◆ makeMultipole()

template<Size N, typename TValue >
Multipole<N> makeMultipole ( const TValue &  v)

Definition at line 256 of file Multipole.h.

◆ makeTracelessMultipole()

template<Size N, typename TValue >
TracelessMultipole<N> makeTracelessMultipole ( const TValue &  v)

Definition at line 574 of file Multipole.h.

◆ sortIndices()

template<Size... Is>
constexpr NAMESPACE_SPH_BEGIN auto sortIndices ( )
constexpr

c++14 sort of template parameters

Definition at line 10 of file Multipole.h.