30 #ifndef OOMPH_PML_MAPPING_FUNCTIONS_HEADER 31 #define OOMPH_PML_MAPPING_FUNCTIONS_HEADER 35 #include <oomph-lib-config.h> 62 const double& wavenumber_squared,
63 const double& alpha_shift=0.0) = 0;
68 const double& wavenumber_squared,
69 const double& alpha_shift=0.0) = 0;
91 const double& alpha_shift=0.0)
100 const double& alpha_shift=0.0)
126 const double& alpha_shift=0.0)
130 *( 1.0/std::fabs(delta-nu) - 1.0/std::fabs(delta));
137 const double& alpha_shift=0.0)
140 *( log(1.0-std::fabs(nu/delta)) - nu/std::fabs(delta) );
164 const double& alpha_shift=0.0)
173 const double& alpha_shift=0.0)
196 virtual void get_mapping_jacobian(
203 std::complex<double>& tnu,
204 std::complex<double>& dtnu_dnu,
205 std::complex<double>& dtnu_dacross,
206 const double& alpha=0.0
227 virtual void pole_line_search(
232 std::complex<double>& tnu,
233 const double& alpha=0.0) = 0;
236 virtual bool newton_step_to_pole(
243 std::complex<double>& tnu,
244 std::complex<double>& alpha,
245 std::complex<double>& beta) = 0;
249 virtual void set_initial_guess(
253 const std::complex<double>& tnu) = 0;
std::complex< double > transformed_nu(const double &nu, const double &delta, const double &k, const double &alpha_shift=0.0)
std::complex< double > dtransformed_nu_dnu(const double &nu, const double &delta, const double &k, const double &alpha_shift=0.0)
Overwrite the pure Pml mapping coefficient function to return the coeffcients proposed by Bermudez et...
virtual std::complex< double > dtransformed_nu_dnu(const double &nu, const double &delta, const double &wavenumber_squared, const double &alpha_shift=0.0)=0
Pure virtual to return Pml mapping gamma, where gamma is the as function of where where h is the v...
std::complex< double > transformed_nu(const double &nu, const double &delta, const double &k, const double &alpha_shift=0.0)
std::complex< double > dtransformed_nu_dnu(const double &nu, const double &delta, const double &k, const double &alpha_shift=0.0)
Overwrite the pure Pml mapping coefficient function to return the coeffcients proposed by Bermudez et...
virtual std::complex< double > transformed_nu(const double &nu, const double &delta, const double &wavenumber_squared, const double &alpha_shift=0.0)=0
UniaxialPMLMapping()
Default constructor (empty)
std::complex< double > dtransformed_nu_dnu(const double &nu, const double &delta, const double &k, const double &alpha_shift=0.0)
Overwrite the pure Pml mapping coefficient function to return the coeffcients proposed by Bermudez et...
BermudezPMLMapping()
Default constructor (empty)
ScaleFreeBermudezPMLMapping()
Default constructor (empty)
const std::complex< double > I(0.0, 1.0)
The imaginary unit.
std::complex< double > transformed_nu(const double &nu, const double &delta, const double &k, const double &alpha_shift=0.0)
C1BermudezPMLMapping()
Default constructor (empty)