NiHu  2.0
NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber > Class Template Reference

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_dataget_level_data (size_t idx) const
 return level data for a specific level More...
 
helmholtz_3d_hf_level_dataget_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...
 

Detailed Description

template<class WaveNumber>
class NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >

The FMM for the convected Helmholtz equation in 3D.

Template Parameters
WaveNumberthe wave number type

Definition at line 88 of file convected_helmholtz_3d_hf_fmm.hpp.

Constructor & Destructor Documentation

◆ convected_helmholtz_3d_hf_fmm()

template<class WaveNumber >
NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::convected_helmholtz_3d_hf_fmm ( wave_number_t const &  wn,
location_t const &  mach_vector 
)
inline

Construct the fmm object.

Parameters
wnthe wave number
mach_vectorthe Mach number vector

Definition at line 109 of file convected_helmholtz_3d_hf_fmm.hpp.

Member Function Documentation

◆ compute_expansion_length()

template<class WaveNumber >
static size_t NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::compute_expansion_length ( double  drel,
double  C 
)
inlinestatic

compute expansion length based on relative cluster size

Parameters
[in]drelrelative cluster diameter
[in]Caccuracy parameter

Definition at line 125 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ create_l2l()

template<class WaveNumber >
l2l NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::create_l2l ( ) const
inline

factory function for the L2L operator

Returns
the L2L operator instance

Definition at line 608 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ create_l2p()

template<class WaveNumber >
l2p NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::create_l2p ( ) const
inline

factory function for the L2P operator

Returns
the L2P operator instance

Definition at line 646 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ create_m2l()

template<class WaveNumber >
m2l NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::create_m2l ( ) const
inline

factory function for the M2L operator

Returns
the M2L operator instance

Definition at line 615 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ create_m2m()

template<class WaveNumber >
m2m NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::create_m2m ( ) const
inline

factory function for the M2M operator

Returns
the M2M operator instance

Definition at line 601 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ create_p2m_DLP()

template<class WaveNumber >
p2m_DLP NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::create_p2m_DLP ( ) const
inline

factory function for the P2M operator for DLP

Returns
the P2L operator instance

Definition at line 639 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ create_p2m_SLP()

template<class WaveNumber >
p2m_SLP NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::create_p2m_SLP ( ) const
inline

factory function for the P2M operator for SLP

Returns
the P2L operator instance

Definition at line 632 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ create_p2p_DLP()

template<class WaveNumber >
p2p_DLP NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::create_p2p_DLP ( ) const
inline

factory function for the P2P operator for DLP

Returns
the P2P operator instance

Definition at line 660 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ create_p2p_SLP()

template<class WaveNumber >
p2p_SLP NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::create_p2p_SLP ( ) const
inline

factory function for the P2P operator for SLP

Returns
the P2P operator instance

Definition at line 653 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ get_level_data() [1/2]

template<class WaveNumber >
helmholtz_3d_hf_level_data& NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::get_level_data ( size_t  idx)
inline

return level data reference for a specific level

Parameters
[in]idxthe level index
Returns
the level data reference

Definition at line 182 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ get_level_data() [2/2]

template<class WaveNumber >
const helmholtz_3d_hf_level_data& NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::get_level_data ( size_t  idx) const
inline

return level data for a specific level

Parameters
[in]idxthe level index
Returns
the level data

Definition at line 174 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ init_level_data()

template<class WaveNumber >
void NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::init_level_data ( cluster_tree_t const &  tree)
inline

initialize the level data of the fmm method

Parameters
[in]treethe cluster tree

Definition at line 141 of file convected_helmholtz_3d_hf_fmm.hpp.

◆ set_accuracy()

template<class WaveNumber >
void NiHu::fmm::convected_helmholtz_3d_hf_fmm< WaveNumber >::set_accuracy ( double  C)
inline

Set the accuracy parameter that controls the expansion length.

Parameters
Cthe accuracy parameter

Definition at line 134 of file convected_helmholtz_3d_hf_fmm.hpp.


The documentation for this class was generated from the following file: