NiHu  2.0
helmholtz_3d_hf_level_data.cpp
Go to the documentation of this file.
1 
8 
9 namespace NiHu
10 {
11 namespace fmm
12 {
13 
15 {
16  m_expansion_length = L;
17  m_unit_sphere = unit_sphere(L);
18 }
19 
20 unit_sphere const &
22 {
23  return m_unit_sphere;
24 }
25 
27 {
28  return m_expansion_length;
29 }
30 
32 {
33  m_interp_dns.resize(n, m_interp_dns[0]);
34  m_interp_ups.resize(n, m_interp_ups[0]);
35 }
36 
39 {
40  auto const idx = omp_get_thread_num();
41  return m_interp_ups[idx].interpolate(x);
42 }
43 
46 {
47  auto const idx = omp_get_thread_num();
48  return m_interp_dns[idx].interpolate(x);
49 }
50 
52 {
53  for (auto &a : m_interp_ups)
54  a = interp;
55 }
56 
58 {
59  for (auto &a : m_interp_dns)
60  a = interp;
61 }
62 
63 
64 } // end of namespace fmm
65 } // namespace NiHu
NiHu::fmm::helmholtz_3d_hf_level_data::set_num_threads
void set_num_threads(size_t n)
set the number of threads
Definition: helmholtz_3d_hf_level_data.cpp:31
NiHu::fmm::helmholtz_3d_hf_level_data::set_interp_up
void set_interp_up(interpolator const &interp)
set the up-interpolator object (for all threads)
Definition: helmholtz_3d_hf_level_data.cpp:51
NiHu::fmm::helmholtz_3d_hf_level_data::interp_up
const cvector_t & interp_up(cvector_t const &x) const
interpolate a function on the unit sphere up to this level
Definition: helmholtz_3d_hf_level_data.cpp:38
NiHu::fmm::interpolator
class interpolating over the unit sphere
Definition: unit_sphere_interpolator.h:25
NiHu::fmm::helmholtz_3d_hf_level_data::set_interp_dn
void set_interp_dn(interpolator const &interp)
set the down-interpolator object (for all threads)
Definition: helmholtz_3d_hf_level_data.cpp:57
NiHu::fmm::helmholtz_3d_hf_level_data::set_expansion_length
void set_expansion_length(size_t L)
set the expansion length
Definition: helmholtz_3d_hf_level_data.cpp:14
NiHu::fmm::helmholtz_3d_hf_level_data::cvector_t
Eigen::Matrix< std::complex< double >, Eigen::Dynamic, 1 > cvector_t
complex dynamic Eigen vector
Definition: helmholtz_3d_hf_level_data.h:27
NiHu::fmm::helmholtz_3d_hf_level_data::get_expansion_length
size_t get_expansion_length() const
return the expansion length
Definition: helmholtz_3d_hf_level_data.cpp:26
NiHu::fmm::unit_sphere
class performing interpolation and integration over the unit sphere
Definition: unit_sphere.h:18
helmholtz_3d_hf_level_data.h
level data of the the helmholtz 3d high frequency fmm
NiHu::fmm::helmholtz_3d_hf_level_data::interp_down
const cvector_t & interp_down(cvector_t const &x) const
interpolate a function on the unit sphere down to this level
Definition: helmholtz_3d_hf_level_data.cpp:45
NiHu::fmm::helmholtz_3d_hf_level_data::get_unit_sphere
const unit_sphere & get_unit_sphere() const
return the stored unit sphere
Definition: helmholtz_3d_hf_level_data.cpp:21