Base class for elements with pml capabilities. More...
#include <pml_meshes.h>
Public Member Functions  
PMLElementBase ()  
Constructor. More...  
virtual  ~PMLElementBase () 
Virtual destructor. More...  
void  disable_pml () 
Disable pml. Ensures the PMLification in all directions has been deactivated. More...  
void  enable_pml (const int &direction, const double &interface_border_value, const double &outer_domain_border_value) 
Enable pml. Specify the coordinate direction along which pml boundary is constant, as well as the coordinate along the dimension for the interface between the physical and artificial domains and the coordinate for the outer boundary. All of these are used to adjust the perfectly matched layer mechanism. Needs to be called separately for each pmlified direction (if needed – e.g. in corner elements) More...  
virtual void  values_to_be_pinned_on_outer_pml_boundary (Vector< unsigned > &values_to_pin)=0 
Pure virtual function in which we have to specify the values to be pinned (and set to zero) on the outer edge of the pml layer. This is usually all of the nodal values (values 0 and 1 (real and imag part) for Helmholtz; values 0,1,2 and 3 (real and imag part of x and ydisplacement for 2D timeharmonic linear elasticity; etc.). Vector must be resized internally! More...  
Protected Attributes  
bool  Pml_is_enabled 
Boolean indicating if element is used in pml mode. More...  
std::vector< bool >  Pml_direction_active 
Coordinate direction along which pml boundary is constant; alternatively: coordinate direction in which coordinate stretching is performed. More...  
Vector< double >  Pml_inner_boundary 
Coordinate of inner pml boundary (Storage is provided for any coordinate direction; only the entries for "active" directions is used.) More...  
Vector< double >  Pml_outer_boundary 
Coordinate of outer pml boundary (Storage is provided for any coordinate direction; only the entries for "active" directions is used.) More...  
Base class for elements with pml capabilities.
Definition at line 65 of file pml_meshes.h.

inline 
Constructor.
Definition at line 71 of file pml_meshes.h.

inlinevirtual 
Virtual destructor.
Definition at line 78 of file pml_meshes.h.

inline 
Disable pml. Ensures the PMLification in all directions has been deactivated.
Definition at line 82 of file pml_meshes.h.

inline 
Enable pml. Specify the coordinate direction along which pml boundary is constant, as well as the coordinate along the dimension for the interface between the physical and artificial domains and the coordinate for the outer boundary. All of these are used to adjust the perfectly matched layer mechanism. Needs to be called separately for each pmlified direction (if needed – e.g. in corner elements)
Definition at line 103 of file pml_meshes.h.

pure virtual 
Pure virtual function in which we have to specify the values to be pinned (and set to zero) on the outer edge of the pml layer. This is usually all of the nodal values (values 0 and 1 (real and imag part) for Helmholtz; values 0,1,2 and 3 (real and imag part of x and ydisplacement for 2D timeharmonic linear elasticity; etc.). Vector must be resized internally!
Implemented in oomph::PMLHelmholtzEquations< DIM >, oomph::PMLFourierDecomposedHelmholtzEquations, and oomph::PMLTimeHarmonicLinearElasticityEquationsBase< DIM >.
Referenced by oomph::TwoDimensionalPMLHelper::create_bottom_left_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_bottom_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_bottom_right_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_left_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_right_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_top_left_pml_mesh(), oomph::TwoDimensionalPMLHelper::create_top_pml_mesh(), and oomph::TwoDimensionalPMLHelper::create_top_right_pml_mesh().

protected 
Coordinate direction along which pml boundary is constant; alternatively: coordinate direction in which coordinate stretching is performed.
Definition at line 130 of file pml_meshes.h.
Referenced by oomph::PMLTimeHarmonicLinearElasticityEquationsBase< DIM >::compute_pml_coefficients(), oomph::PMLHelmholtzEquations< DIM >::compute_pml_coefficients(), oomph::PMLElementBase< 2 >::disable_pml(), and oomph::PMLElementBase< 2 >::enable_pml().

protected 
Coordinate of inner pml boundary (Storage is provided for any coordinate direction; only the entries for "active" directions is used.)
Definition at line 135 of file pml_meshes.h.
Referenced by oomph::PMLTimeHarmonicLinearElasticityEquationsBase< DIM >::compute_pml_coefficients(), oomph::PMLHelmholtzEquations< DIM >::compute_pml_coefficients(), and oomph::PMLElementBase< 2 >::enable_pml().

protected 
Boolean indicating if element is used in pml mode.
Definition at line 125 of file pml_meshes.h.
Referenced by oomph::PMLTimeHarmonicLinearElasticityEquationsBase< DIM >::compute_pml_coefficients(), oomph::PMLHelmholtzEquations< DIM >::compute_pml_coefficients(), oomph::PMLElementBase< 2 >::disable_pml(), and oomph::PMLElementBase< 2 >::enable_pml().

protected 
Coordinate of outer pml boundary (Storage is provided for any coordinate direction; only the entries for "active" directions is used.)
Definition at line 140 of file pml_meshes.h.
Referenced by oomph::PMLTimeHarmonicLinearElasticityEquationsBase< DIM >::compute_pml_coefficients(), oomph::PMLHelmholtzEquations< DIM >::compute_pml_coefficients(), and oomph::PMLElementBase< 2 >::enable_pml().