NiHu  2.0
unit_sphere.h
Go to the documentation of this file.
1 
7 #ifndef NIHU_UNIT_SPHERE_H_INCLUDED
8 #define NIHU_UNIT_SPHERE_H_INCLUDED
9 
10 #include "Eigen/Dense"
11 
12 namespace NiHu
13 {
14 namespace fmm
15 {
16 
19 {
21  typedef Eigen::Matrix<std::complex<double>, Eigen::Dynamic, 1> cvector_t;
23  typedef Eigen::Matrix<double, Eigen::Dynamic, 1> dvector_t;
25  typedef Eigen::Matrix<std::complex<double>, Eigen::Dynamic, Eigen::Dynamic> cmatrix_t;
27  typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> dmatrix_t;
28 
29  size_t m_P; // quadrature density
30  dvector_t theta, phi, w, wtheta;
31  Eigen::Matrix<double, 3, Eigen::Dynamic> s;
32 
33 public:
34  unit_sphere()
35  {
36  }
37 
41  unit_sphere(size_t P);
42 
46  size_t get_P(void) const
47  {
48  return m_P;
49  }
50 
54  dvector_t const &get_w(void) const
55  {
56  return w;
57  }
58 
62  dvector_t const &get_theta(void) const
63  {
64  return this->theta;
65  }
66 
70  dvector_t const &get_wtheta(void) const
71  {
72  return this->wtheta;
73  }
74 
78  dvector_t const &get_phi(void) const
79  {
80  return phi;
81  }
82 
86  Eigen::Matrix<double, 3, Eigen::Dynamic> const &get_s(void) const
87  {
88  return s;
89  }
90 
96  cmatrix_t spht(cvector_t const &f, int L) const;
97 
102  cvector_t ispht(cmatrix_t const &Flm) const;
103 };
104 
105 } // namespace fmm
106 } // namespace NiHu
107 
108 #endif /* NIHU_UNIT_SPHERE_H_INCLUDED */
NiHu::fmm::unit_sphere::spht
cmatrix_t spht(cvector_t const &f, int L) const
perform spherical transform
Definition: unit_sphere.cpp:45
NiHu::fmm::unit_sphere::get_wtheta
const dvector_t & get_wtheta(void) const
return theta quadrature weights
Definition: unit_sphere.h:70
NiHu::fmm::unit_sphere::get_P
size_t get_P(void) const
return quadrature density
Definition: unit_sphere.h:46
NiHu::fmm::unit_sphere::get_phi
const dvector_t & get_phi(void) const
return phi quadrature points
Definition: unit_sphere.h:78
NiHu::fmm::unit_sphere::get_s
const Eigen::Matrix< double, 3, Eigen::Dynamic > & get_s(void) const
return Cartesian quadrature points
Definition: unit_sphere.h:86
NiHu::fmm::unit_sphere::get_theta
const dvector_t & get_theta(void) const
return theta quadrature points
Definition: unit_sphere.h:62
NiHu::fmm::unit_sphere
class performing interpolation and integration over the unit sphere
Definition: unit_sphere.h:18
NiHu::fmm::unit_sphere::get_w
const dvector_t & get_w(void) const
return quadrature weights
Definition: unit_sphere.h:54
NiHu::fmm::unit_sphere::ispht
cvector_t ispht(cmatrix_t const &Flm) const
perform inverse spherical transform
Definition: unit_sphere.cpp:59