oomph::ContinuousBermudezPMLMapping Class Reference

#include <pml_mapping_functions.h>

+ Inheritance diagram for oomph::ContinuousBermudezPMLMapping:

Public Member Functions

 ContinuousBermudezPMLMapping ()
 Default constructor (empty) More...
 
std::complex< doublegamma (const double &nu_i, const double &pml_width_i, const double &wavenumber_squared, const double &alpha_shift=0.0)
 
- Public Member Functions inherited from oomph::PMLMapping
 PMLMapping ()
 Default constructor (empty) More...
 

Detailed Description

A mapping function proposed by Bermudez et al, similar to the one above but is continuous across the inner Pml boundary appears to be the best for TimeHarmonicLinearElasticity and so this will be the default mapping

Constructor & Destructor Documentation

◆ ContinuousBermudezPMLMapping()

oomph::ContinuousBermudezPMLMapping::ContinuousBermudezPMLMapping ( )
inline

Default constructor (empty)

94 {};

Member Function Documentation

◆ gamma()

std::complex<double> oomph::ContinuousBermudezPMLMapping::gamma ( const double nu_i,
const double pml_width_i,
const double wavenumber_squared,
const double alpha_shift = 0.0 
)
inlinevirtual

Overwrite the pure Pml mapping coefficient function to return the coeffcients proposed by Bermudez et al

return \(\gamma=1 + (i/k)(1/|outer_boundary - x|-1/|pml width|)\)

Implements oomph::PMLMapping.

102  {
104  return 1.0 + MathematicalConstants::I / sqrt(wavenumber_squared) *
105  (1.0 / std::fabs(pml_width_i - nu_i) -
106  1.0 / std::fabs(pml_width_i));
107  }
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
Real fabs(const Real &a)
Definition: boostmultiprec.cpp:117
const std::complex< double > I(0.0, 1.0)
The imaginary unit.

References boost::multiprecision::fabs(), oomph::MathematicalConstants::I(), and sqrt().


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