Base class for elements with pml capabilities. More...
#include <pml_meshes.h>
Public Member Functions | |
PMLElementBase () | |
Constructor. | |
virtual | ~PMLElementBase () |
Virtual destructor. | |
void | disable_pml () |
Disable pml. Ensures the PML-ification in all directions has been deactivated. | |
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 pml-ified direction (if needed – e.g. in corner elements) | |
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 y-displacement for 2D time-harmonic linear elasticity; etc.). Vector must be resized internally! | |
Protected Attributes | |
bool | Pml_is_enabled |
Boolean indicating if element is used in pml mode. | |
std::vector< bool > | Pml_direction_active |
Coordinate direction along which pml boundary is constant; alternatively: coordinate direction in which coordinate stretching is performed. | |
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.) | |
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.) | |
Base class for elements with pml capabilities.
Definition at line 58 of file pml_meshes.h.
|
inline |
Constructor.
Definition at line 62 of file pml_meshes.h.
|
inlinevirtual |
Virtual destructor.
Definition at line 71 of file pml_meshes.h.
|
inline |
Disable pml. Ensures the PML-ification in all directions has been deactivated.
Definition at line 75 of file pml_meshes.h.
References oomph::PMLElementBase< DIM >::Pml_direction_active, and oomph::PMLElementBase< DIM >::Pml_is_enabled.
|
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 pml-ified direction (if needed – e.g. in corner elements)
Definition at line 96 of file pml_meshes.h.
References oomph::PMLElementBase< DIM >::Pml_direction_active, oomph::PMLElementBase< DIM >::Pml_inner_boundary, oomph::PMLElementBase< DIM >::Pml_is_enabled, and oomph::PMLElementBase< DIM >::Pml_outer_boundary.
|
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 y-displacement for 2D time-harmonic linear elasticity; etc.). Vector must be resized internally!
Implemented in oomph::PMLFourierDecomposedHelmholtzEquations, oomph::PMLHelmholtzEquations< DIM >, and oomph::PMLTimeHarmonicLinearElasticityEquationsBase< DIM >.
|
protected |
Coordinate direction along which pml boundary is constant; alternatively: coordinate direction in which coordinate stretching is performed.
Definition at line 123 of file pml_meshes.h.
Referenced by oomph::PMLTimeHarmonicLinearElasticityEquationsBase< DIM >::compute_pml_coefficients(), oomph::PMLHelmholtzEquations< DIM >::compute_pml_coefficients(), oomph::PMLElementBase< DIM >::disable_pml(), and oomph::PMLElementBase< DIM >::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 128 of file pml_meshes.h.
Referenced by oomph::PMLTimeHarmonicLinearElasticityEquationsBase< DIM >::compute_pml_coefficients(), oomph::PMLHelmholtzEquations< DIM >::compute_pml_coefficients(), and oomph::PMLElementBase< DIM >::enable_pml().
|
protected |
Boolean indicating if element is used in pml mode.
Definition at line 118 of file pml_meshes.h.
Referenced by oomph::PMLTimeHarmonicLinearElasticityEquationsBase< DIM >::compute_pml_coefficients(), oomph::PMLHelmholtzEquations< DIM >::compute_pml_coefficients(), oomph::PMLElementBase< DIM >::disable_pml(), and oomph::PMLElementBase< DIM >::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 133 of file pml_meshes.h.
Referenced by oomph::PMLTimeHarmonicLinearElasticityEquationsBase< DIM >::compute_pml_coefficients(), oomph::PMLHelmholtzEquations< DIM >::compute_pml_coefficients(), and oomph::PMLElementBase< DIM >::enable_pml().