Go to the documentation of this file.
7 #ifndef FMM_HELMHOLTZ_2D_WB_LEVEL_DATA_HPP_INCLUDED
8 #define FMM_HELMHOLTZ_2D_WB_LEVEL_DATA_HPP_INCLUDED
13 #include <Eigen/Dense>
28 typedef Eigen::Matrix<std::complex<double>, Eigen::Dynamic, 1>
cvector_t;
42 void init(
double drel);
95 void set_num_threads(
size_t n);
98 size_t m_expansion_length;
101 std::vector<spectral_interpolate> m_interp_ups;
102 std::vector<spectral_interpolate> m_interp_dns;
104 fftw_plan m_dft_plan;
105 mutable std::vector<cvector_t> m_multi_paddeds;
106 mutable std::vector<cvector_t> m_multi_spectrums;
108 fftw_plan m_idft_plan;
109 mutable std::vector <cvector_t> m_local_paddeds;
110 mutable std::vector <cvector_t> m_locals;
void init(double drel)
initialize the data for a given frequency
size_t get_data_size() const
return the size of the multipole / local data
Eigen::Matrix< std::complex< double >, Eigen::Dynamic, 1 > cvector_t
complex column vector type
const cvector_t & interp_up(cvector_t const &multi) const
interpolate multipole contribution up to this level
const cvector_t & dft(cvector_t const &multi) const
perform dft on this level
bool is_high_freq() const
return true if the level is in hgh frequency
Interface of class NiHu::fmm::spectral_interpolate.
void set_interp_dn(size_t Nfrom)
compute the downward interpolating matrix
class containing the level data of the helmholtz 2d wide band fmm
void set_expansion_length(size_t expansion_length)
set the expansion length of the level
void set_high_freq(bool hf)
set if the level is in high frequency
void set_interp_up(size_t Nfrom)
compute upward interpolating matrix
const cvector_t & interp_dn(cvector_t const &local) const
interpolate local data down to this level
helmholtz_2d_wb_level_data()
constructor
~helmholtz_2d_wb_level_data()
destructor
const cvector_t & idft(cvector_t const &local) const
perform inverse dft on this level
size_t get_expansion_length() const
return the expansion length
helmholtz_2d_wb_level_data & operator=(helmholtz_2d_wb_level_data const &)=delete
assignment operator