oomph::BermudezPMLMapping Class Reference

#include <pml_mapping_functions.h>

+ Inheritance diagram for oomph::BermudezPMLMapping:

Public Member Functions

 BermudezPMLMapping ()
 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 propsed by Bermudez et al, appears to be the best for the Helmholtz equations and so this will be the default mapping (see definition of PmlHelmholtzEquations)

Constructor & Destructor Documentation

◆ BermudezPMLMapping()

oomph::BermudezPMLMapping::BermudezPMLMapping ( )
inline

Default constructor (empty)

69 {};

Member Function Documentation

◆ gamma()

std::complex<double> oomph::BermudezPMLMapping::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 + (1/k)(i/|outer_boundary - x|)\)

Implements oomph::PMLMapping.

77  {
79  return 1.0 + MathematicalConstants::I / sqrt(wavenumber_squared) *
80  (1.0 / std::fabs(pml_width_i - nu_i));
81  }
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: