NiHu
2.0
|
The FMM for the convected Helmholtz equation in 3D. More...
#include <convected_helmholtz_3d_hf_fmm.hpp>
Classes | |
class | l2l |
L2L operator of the Convected Helmholtz FMM. More... | |
class | l2p |
L2P operator of the Convected Helmholtz FMM. More... | |
class | m2l |
M2L (translation) operator of the Convected Helmholtz FMM. More... | |
class | m2m |
M2M operator of the Convected Helmholtz FMM. More... | |
class | m2p |
M2P operator of the Convected Helmholtz SLP kernel. More... | |
class | p2l |
P2L operator of the Convected Helmholtz SLP kernel. More... | |
class | p2m_DLP |
P2M operator of the Convected Helmholtz DLP kernel. More... | |
class | p2m_SLP |
P2M operator of the Convected Helmholtz SLP kernel. More... | |
class | p2p_DLP |
P2P operator of the Convected Helmholtz DLP kernel. More... | |
class | p2p_SLP |
P2P operator of the Convected Helmholtz SLP kernel. More... | |
Public Types | |
using | wave_number_t = WaveNumber |
template argument as nested type | |
using | cluster_t = helmholtz_3d_hf_cluster |
the cluster type | |
using | cluster_tree_t = cluster_tree< cluster_t > |
the cluster tree type | |
using | bounding_box_t = typename cluster_t::bounding_box_t |
the bounding box type | |
using | location_t = typename bounding_box_t::location_t |
the physical location type | |
using | dmatrix3_t = Eigen::Matrix< double, 3, 3 > |
the 3x3 transform matrix type | |
using | cvector_t = Eigen::Matrix< std::complex< double >, Eigen::Dynamic, 1 > |
complex dynamic column vector | |
Public Member Functions | |
convected_helmholtz_3d_hf_fmm (wave_number_t const &wn, location_t const &mach_vector) | |
Construct the fmm object. More... | |
void | set_accuracy (double C) |
Set the accuracy parameter that controls the expansion length. More... | |
void | init_level_data (cluster_tree_t const &tree) |
initialize the level data of the fmm method More... | |
const helmholtz_3d_hf_level_data & | get_level_data (size_t idx) const |
return level data for a specific level More... | |
helmholtz_3d_hf_level_data & | get_level_data (size_t idx) |
return level data reference for a specific level More... | |
m2m | create_m2m () const |
factory function for the M2M operator More... | |
l2l | create_l2l () const |
factory function for the L2L operator More... | |
m2l | create_m2l () const |
factory function for the M2L operator More... | |
p2l | create_p2l () const |
m2p | create_m2p () const |
p2m_SLP | create_p2m_SLP () const |
factory function for the P2M operator for SLP More... | |
p2m_DLP | create_p2m_DLP () const |
factory function for the P2M operator for DLP More... | |
l2p | create_l2p () const |
factory function for the L2P operator More... | |
p2p_SLP | create_p2p_SLP () const |
factory function for the P2P operator for SLP More... | |
p2p_DLP | create_p2p_DLP () const |
factory function for the P2P operator for DLP More... | |
Static Public Member Functions | |
static size_t | compute_expansion_length (double drel, double C) |
compute expansion length based on relative cluster size More... | |
The FMM for the convected Helmholtz equation in 3D.
WaveNumber | the wave number type |
Definition at line 88 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
Construct the fmm object.
wn | the wave number |
mach_vector | the Mach number vector |
Definition at line 109 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inlinestatic |
compute expansion length based on relative cluster size
[in] | drel | relative cluster diameter |
[in] | C | accuracy parameter |
Definition at line 125 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
factory function for the L2L operator
Definition at line 608 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
factory function for the L2P operator
Definition at line 646 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
factory function for the M2L operator
Definition at line 615 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
factory function for the M2M operator
Definition at line 601 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
factory function for the P2M operator for DLP
Definition at line 639 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
factory function for the P2M operator for SLP
Definition at line 632 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
factory function for the P2P operator for DLP
Definition at line 660 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
factory function for the P2P operator for SLP
Definition at line 653 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
return level data reference for a specific level
[in] | idx | the level index |
Definition at line 182 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
return level data for a specific level
[in] | idx | the level index |
Definition at line 174 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
initialize the level data of the fmm method
[in] | tree | the cluster tree |
Definition at line 141 of file convected_helmholtz_3d_hf_fmm.hpp.
|
inline |
Set the accuracy parameter that controls the expansion length.
C | the accuracy parameter |
Definition at line 134 of file convected_helmholtz_3d_hf_fmm.hpp.