![]() |
|
Functions | |
bool | sorter_right_boundary (Node *nod_i_pt, Node *nod_j_pt) |
helper function for sorting the right boundary nodes More... | |
bool | sorter_top_boundary (Node *nod_i_pt, Node *nod_j_pt) |
helper function for sorting the top boundary nodes More... | |
bool | sorter_left_boundary (Node *nod_i_pt, Node *nod_j_pt) |
helper function for sorting the left boundary nodes More... | |
bool | sorter_bottom_boundary (Node *nod_i_pt, Node *nod_j_pt) |
helper function for sorting the bottom boundary nodes More... | |
template<class ASSOCIATED_PML_QUAD_ELEMENT > | |
Mesh * | create_right_pml_mesh (Mesh *bulk_mesh_pt, const unsigned &right_boundary_id, const unsigned &n_x_right_pml, const double &width_x_right_pml, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
template<class ASSOCIATED_PML_QUAD_ELEMENT > | |
Mesh * | create_top_pml_mesh (Mesh *bulk_mesh_pt, const unsigned &top_boundary_id, const unsigned &n_y_top_pml, const double &width_y_top_pml, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
template<class ASSOCIATED_PML_QUAD_ELEMENT > | |
Mesh * | create_left_pml_mesh (Mesh *bulk_mesh_pt, const unsigned &left_boundary_id, const unsigned &n_x_left_pml, const double &width_x_left_pml, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
template<class ASSOCIATED_PML_QUAD_ELEMENT > | |
Mesh * | create_bottom_pml_mesh (Mesh *bulk_mesh_pt, const unsigned &bottom_boundary_id, const unsigned &n_y_bottom_pml, const double &width_y_bottom_pml, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
template<class ASSOCIATED_PML_QUAD_ELEMENT > | |
Mesh * | create_top_right_pml_mesh (Mesh *pml_right_mesh_pt, Mesh *pml_top_mesh_pt, Mesh *bulk_mesh_pt, const unsigned &right_boundary_id, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
template<class ASSOCIATED_PML_QUAD_ELEMENT > | |
Mesh * | create_bottom_right_pml_mesh (Mesh *pml_right_mesh_pt, Mesh *pml_bottom_mesh_pt, Mesh *bulk_mesh_pt, const unsigned &right_boundary_id, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
template<class ASSOCIATED_PML_QUAD_ELEMENT > | |
Mesh * | create_top_left_pml_mesh (Mesh *pml_left_mesh_pt, Mesh *pml_top_mesh_pt, Mesh *bulk_mesh_pt, const unsigned &left_boundary_id, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
template<class ASSOCIATED_PML_QUAD_ELEMENT > | |
Mesh * | create_bottom_left_pml_mesh (Mesh *pml_left_mesh_pt, Mesh *pml_bottom_mesh_pt, Mesh *bulk_mesh_pt, const unsigned &left_boundary_id, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) |
Namespace with functions that allow the construction of PML layers on axis aligned boundaries
/////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// All helper routines for 2D bulk boundary mesh usage in order to generate PML meshes aligned to the main mesh
///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// All helper routines for 2D bulk boundary mesh usage in order to generate PML meshes aligned to the main mesh
Mesh* oomph::TwoDimensionalPMLHelper::create_bottom_left_pml_mesh | ( | Mesh * | pml_left_mesh_pt, |
Mesh * | pml_bottom_mesh_pt, | ||
Mesh * | bulk_mesh_pt, | ||
const unsigned & | left_boundary_id, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
"Constructor" for PML bottom left corner mesh, aligned with the existing PML meshes
Relevant boundary id's to be used in construction Parent id refers to already existing PML meshes
Sort them from lowest to highest (in y coordinate) sorter_right_boundary is still functional, as the sorting is performed by the same criterion
Number of elements and boundary nodes to be acted upon during construction are extracted from the 'parent' PML meshes
Specific PML sizes needed, taken directly from physical domain and existing PML meshes
The enabling must be perfromed in both x- and y-directions as this is a corner PML mesh
Return the finalized mesh, with PML enabled and boundary conditions added
References b, oomph::Mesh::boundary_node_pt(), e(), oomph::Mesh::element_pt(), oomph::PMLElementBase< DIM >::enable_pml(), j, n, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_element(), oomph::Mesh::nboundary_node(), oomph::Mesh::nelement(), oomph::Data::pin(), oomph::Data::set_value(), sorter_right_boundary(), oomph::PMLElementBase< DIM >::values_to_be_pinned_on_outer_pml_boundary(), and oomph::Node::x().
Referenced by PMLHelmholtzMGProblem< ELEMENT >::create_pml_meshes(), PMLProblem< ELEMENT >::create_pml_meshes(), ElasticAnnulusProblem< ELASTICITY_ELEMENT >::create_pml_meshes(), and oomph::RefineableQuadMeshWithMovingCylinder< ELEMENT >::RefineableQuadMeshWithMovingCylinder().
Mesh* oomph::TwoDimensionalPMLHelper::create_bottom_pml_mesh | ( | Mesh * | bulk_mesh_pt, |
const unsigned & | bottom_boundary_id, | ||
const unsigned & | n_y_bottom_pml, | ||
const double & | width_y_bottom_pml, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
"Constructor" for PML mesh,aligned with the bottom physical domain boundary
PML layer width subtracted from the bulk mesh lower boundary coordinate
Return the finalized mesh, with PML enabled and boundary conditions added
References b, oomph::Mesh::boundary_node_pt(), e(), oomph::Mesh::element_pt(), oomph::PMLElementBase< DIM >::enable_pml(), j, n, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_element(), oomph::Mesh::nboundary_node(), oomph::Mesh::nelement(), oomph::Data::pin(), oomph::Data::set_value(), sorter_bottom_boundary(), and oomph::PMLElementBase< DIM >::values_to_be_pinned_on_outer_pml_boundary().
Referenced by PMLHelmholtzMGProblem< ELEMENT >::create_pml_meshes(), PMLFourierDecomposedHelmholtzProblem< ELEMENT >::create_pml_meshes(), PMLProblem< ELEMENT >::create_pml_meshes(), and ElasticAnnulusProblem< ELASTICITY_ELEMENT >::create_pml_meshes().
Mesh* oomph::TwoDimensionalPMLHelper::create_bottom_right_pml_mesh | ( | Mesh * | pml_right_mesh_pt, |
Mesh * | pml_bottom_mesh_pt, | ||
Mesh * | bulk_mesh_pt, | ||
const unsigned & | right_boundary_id, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
"Constructor" for PML bottom right corner mesh, aligned with the existing PML meshes
Relevant boundary id's to be used in construction Parent id refers to already existing PML meshes
Number of elements and boundary nodes to be acted upon during construction are extracted from the 'parent' PML meshes
Specific PML sizes needed, taken directly from physical domain and existing PML meshes
The enabling must be perfromed in both x- and y-directions as this is a corner PML mesh
Return the finalized mesh, with PML enabled and boundary conditions added
References b, oomph::Mesh::boundary_node_pt(), e(), oomph::Mesh::element_pt(), oomph::PMLElementBase< DIM >::enable_pml(), j, n, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_element(), oomph::Mesh::nboundary_node(), oomph::Mesh::nelement(), oomph::Data::pin(), oomph::Data::set_value(), sorter_right_boundary(), oomph::PMLElementBase< DIM >::values_to_be_pinned_on_outer_pml_boundary(), and oomph::Node::x().
Referenced by PMLHelmholtzMGProblem< ELEMENT >::create_pml_meshes(), PMLFourierDecomposedHelmholtzProblem< ELEMENT >::create_pml_meshes(), PMLProblem< ELEMENT >::create_pml_meshes(), ElasticAnnulusProblem< ELASTICITY_ELEMENT >::create_pml_meshes(), and oomph::RefineableQuadMeshWithMovingCylinder< ELEMENT >::RefineableQuadMeshWithMovingCylinder().
Mesh* oomph::TwoDimensionalPMLHelper::create_left_pml_mesh | ( | Mesh * | bulk_mesh_pt, |
const unsigned & | left_boundary_id, | ||
const unsigned & | n_x_left_pml, | ||
const double & | width_x_left_pml, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
"Constructor" for PML mesh, aligned with the left physical domain boundary
PML layer width subtracted from left bulk mesh coordinate
Return the finalized mesh, with PML enabled and boundary conditions added
References b, oomph::Mesh::boundary_node_pt(), e(), oomph::Mesh::element_pt(), oomph::PMLElementBase< DIM >::enable_pml(), j, n, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_element(), oomph::Mesh::nboundary_node(), oomph::Mesh::nelement(), oomph::Data::pin(), oomph::Data::set_value(), sorter_left_boundary(), and oomph::PMLElementBase< DIM >::values_to_be_pinned_on_outer_pml_boundary().
Referenced by PMLHelmholtzMGProblem< ELEMENT >::create_pml_meshes(), PMLProblem< ELEMENT >::create_pml_meshes(), and ElasticAnnulusProblem< ELASTICITY_ELEMENT >::create_pml_meshes().
Mesh* oomph::TwoDimensionalPMLHelper::create_right_pml_mesh | ( | Mesh * | bulk_mesh_pt, |
const unsigned & | right_boundary_id, | ||
const unsigned & | n_x_right_pml, | ||
const double & | width_x_right_pml, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
"Constructor" for PML mesh,aligned with the right physical domain boundary
PML layer with added to the bulk mesh coordinate
Return the finalized mesh, with PML enabled and boundary conditions added
References b, oomph::Mesh::boundary_node_pt(), e(), oomph::Mesh::element_pt(), oomph::PMLElementBase< DIM >::enable_pml(), j, n, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_element(), oomph::Mesh::nboundary_node(), oomph::Mesh::nelement(), oomph::Data::pin(), oomph::Data::set_value(), sorter_right_boundary(), and oomph::PMLElementBase< DIM >::values_to_be_pinned_on_outer_pml_boundary().
Referenced by PMLHelmholtzMGProblem< ELEMENT >::create_pml_meshes(), PMLFourierDecomposedHelmholtzProblem< ELEMENT >::create_pml_meshes(), PMLProblem< ELEMENT >::create_pml_meshes(), and ElasticAnnulusProblem< ELASTICITY_ELEMENT >::create_pml_meshes().
Mesh* oomph::TwoDimensionalPMLHelper::create_top_left_pml_mesh | ( | Mesh * | pml_left_mesh_pt, |
Mesh * | pml_top_mesh_pt, | ||
Mesh * | bulk_mesh_pt, | ||
const unsigned & | left_boundary_id, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
"Constructor" for PML top left corner mesh, aligned with the existing PML meshes
Relevant boundary id's to be used in construction Parent id refers to already existing PML meshes
Sort them from lowest to highest (in y coordinate) sorter_right_boundary is still functional, as the sorting is performed by the same criterion
Number of elements and boundary nodes to be acted upon during construction are extracted from the 'parent' PML meshes
Specific PML sizes needed, taken directly from physical domain and existing PML meshes
The enabling must be perfromed in both x- and y-directions as this is a corner PML mesh
Return the finalized mesh, with PML enabled and boundary conditions added
References b, oomph::Mesh::boundary_node_pt(), e(), oomph::Mesh::element_pt(), oomph::PMLElementBase< DIM >::enable_pml(), j, n, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_element(), oomph::Mesh::nboundary_node(), oomph::Mesh::nelement(), oomph::Data::pin(), oomph::Data::set_value(), sorter_right_boundary(), oomph::PMLElementBase< DIM >::values_to_be_pinned_on_outer_pml_boundary(), and oomph::Node::x().
Referenced by PMLHelmholtzMGProblem< ELEMENT >::create_pml_meshes(), PMLProblem< ELEMENT >::create_pml_meshes(), ElasticAnnulusProblem< ELASTICITY_ELEMENT >::create_pml_meshes(), and oomph::RefineableQuadMeshWithMovingCylinder< ELEMENT >::RefineableQuadMeshWithMovingCylinder().
Mesh* oomph::TwoDimensionalPMLHelper::create_top_pml_mesh | ( | Mesh * | bulk_mesh_pt, |
const unsigned & | top_boundary_id, | ||
const unsigned & | n_y_top_pml, | ||
const double & | width_y_top_pml, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
"Constructor" for PML mesh, aligned with the top physical domain boundary
PML layer width added to the bulk mesh coordinate
Return the finalized mesh, with PML enabled and boundary conditions added
References b, oomph::Mesh::boundary_node_pt(), e(), oomph::Mesh::element_pt(), oomph::PMLElementBase< DIM >::enable_pml(), j, n, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_element(), oomph::Mesh::nboundary_node(), oomph::Mesh::nelement(), oomph::Data::pin(), oomph::Data::set_value(), sorter_top_boundary(), and oomph::PMLElementBase< DIM >::values_to_be_pinned_on_outer_pml_boundary().
Referenced by PMLHelmholtzMGProblem< ELEMENT >::create_pml_meshes(), PMLFourierDecomposedHelmholtzProblem< ELEMENT >::create_pml_meshes(), PMLProblem< ELEMENT >::create_pml_meshes(), and ElasticAnnulusProblem< ELASTICITY_ELEMENT >::create_pml_meshes().
Mesh* oomph::TwoDimensionalPMLHelper::create_top_right_pml_mesh | ( | Mesh * | pml_right_mesh_pt, |
Mesh * | pml_top_mesh_pt, | ||
Mesh * | bulk_mesh_pt, | ||
const unsigned & | right_boundary_id, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
"Constructor" for PML top right corner mesh, aligned with the existing PML meshes
Relevant boundary id's to be used in construction Parent id refers to already existing PML meshes
Number of elements and boundary nodes to be acted upon during construction are extracted from the 'parent' PML meshes
Specific PML sizes needed, taken directly from physical domain and existing PML meshes
The enabling must be perfromed in both x- and y-directions as this is a corner PML mesh
Return the finalized mesh, with PML enabled and boundary conditions added
References b, oomph::Mesh::boundary_node_pt(), e(), oomph::Mesh::element_pt(), oomph::PMLElementBase< DIM >::enable_pml(), j, n, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_element(), oomph::Mesh::nboundary_node(), oomph::Mesh::nelement(), oomph::Data::pin(), oomph::Data::set_value(), sorter_right_boundary(), oomph::PMLElementBase< DIM >::values_to_be_pinned_on_outer_pml_boundary(), and oomph::Node::x().
Referenced by PMLHelmholtzMGProblem< ELEMENT >::create_pml_meshes(), PMLFourierDecomposedHelmholtzProblem< ELEMENT >::create_pml_meshes(), PMLProblem< ELEMENT >::create_pml_meshes(), ElasticAnnulusProblem< ELASTICITY_ELEMENT >::create_pml_meshes(), and oomph::RefineableQuadMeshWithMovingCylinder< ELEMENT >::RefineableQuadMeshWithMovingCylinder().
helper function for sorting the bottom boundary nodes
References oomph::Node::x().
Referenced by create_bottom_pml_mesh(), and oomph::PMLQuadMesh< ELEMENT >::PMLQuadMesh().
helper function for sorting the left boundary nodes
References oomph::Node::x().
Referenced by create_left_pml_mesh(), and oomph::PMLQuadMesh< ELEMENT >::PMLQuadMesh().
helper function for sorting the right boundary nodes
References oomph::Node::x().
Referenced by create_bottom_left_pml_mesh(), create_bottom_right_pml_mesh(), create_right_pml_mesh(), create_top_left_pml_mesh(), create_top_right_pml_mesh(), oomph::PMLCornerQuadMesh< ELEMENT >::PMLCornerQuadMesh(), and oomph::PMLQuadMesh< ELEMENT >::PMLQuadMesh().
helper function for sorting the top boundary nodes
References oomph::Node::x().
Referenced by create_top_pml_mesh(), oomph::PMLCornerQuadMesh< ELEMENT >::PMLCornerQuadMesh(), and oomph::PMLQuadMesh< ELEMENT >::PMLQuadMesh().