SELF_MeshRefinement_2D Module

Mesh-level h-refinement operations for 2-D quadrilateral meshes (AMR Stage 2).

This module assembles a refined Mesh2D_t from the element-local primitives in SELF_RefinementPrimitives_2D. The currently supported operation is uniform refinement - splitting every element 2:1 in each direction into four children - which keeps the mesh conforming (no hanging nodes) and therefore needs neither the mortar machinery nor 2:1 balancing. Adaptive (flagged) refinement with hanging nodes and mortar regeneration is AMR Stage 4; dynamic MPI re-partitioning of the refined mesh is Stage 5. Uniform refinement is therefore restricted to a single rank here, and guards against multi-rank input.


Uses

  • module~~self_meshrefinement_2d~~UsesGraph module~self_meshrefinement_2d SELF_MeshRefinement_2D module~self_mesh_2d SELF_Mesh_2D module~self_meshrefinement_2d->module~self_mesh_2d module~self_constants SELF_Constants module~self_meshrefinement_2d->module~self_constants module~self_refinementprimitives_2d SELF_RefinementPrimitives_2D module~self_meshrefinement_2d->module~self_refinementprimitives_2d module~self_lagrange SELF_Lagrange module~self_meshrefinement_2d->module~self_lagrange module~self_mesh_2d_t SELF_Mesh_2D_t module~self_mesh_2d->module~self_mesh_2d_t iso_c_binding iso_c_binding module~self_constants->iso_c_binding iso_fortran_env iso_fortran_env module~self_constants->iso_fortran_env module~self_refinementprimitives_2d->module~self_constants module~self_refinementprimitives_2d->module~self_lagrange module~self_lagrange->module~self_constants module~self_lagrange->iso_c_binding module~self_lagrange->iso_fortran_env module~self_lagrange_t SELF_Lagrange_t module~self_lagrange->module~self_lagrange_t module~self_mesh_2d_t->module~self_constants module~self_mesh_2d_t->module~self_lagrange module~self_mesh_2d_t->iso_c_binding HDF5 HDF5 module~self_mesh_2d_t->HDF5 module~self_domaindecomposition SELF_DomainDecomposition module~self_mesh_2d_t->module~self_domaindecomposition module~self_hdf5 SELF_HDF5 module~self_mesh_2d_t->module~self_hdf5 module~self_quadrature SELF_Quadrature module~self_mesh_2d_t->module~self_quadrature module~self_mesh SELF_Mesh module~self_mesh_2d_t->module~self_mesh module~self_supportroutines SELF_SupportRoutines module~self_mesh_2d_t->module~self_supportroutines module~self_lagrange_t->module~self_constants module~self_lagrange_t->iso_c_binding module~self_lagrange_t->iso_fortran_env module~self_lagrange_t->HDF5 module~self_lagrange_t->module~self_hdf5 module~self_lagrange_t->module~self_quadrature module~self_lagrange_t->module~self_supportroutines module~self_domaindecomposition_t SELF_DomainDecomposition_t module~self_domaindecomposition->module~self_domaindecomposition_t module~self_hdf5->module~self_constants module~self_hdf5->iso_fortran_env module~self_hdf5->HDF5 mpi mpi module~self_hdf5->mpi module~self_quadrature->module~self_constants module~self_quadrature->iso_fortran_env module~self_mesh->module~self_constants module~self_mesh->iso_c_binding module~self_mesh->module~self_domaindecomposition module~self_supportroutines->module~self_constants module~self_supportroutines->iso_fortran_env module~self_domaindecomposition_t->module~self_constants module~self_domaindecomposition_t->module~self_lagrange module~self_domaindecomposition_t->iso_c_binding module~self_domaindecomposition_t->module~self_supportroutines module~self_domaindecomposition_t->mpi

Contents


Subroutines

public subroutine UniformRefineMesh(meshIn, meshOut)

Produce meshOut, a uniformly refined copy of meshIn: every element is split into four children. Child geometry is generated by exact isoparametric subdivision of the parent geometry (so the refined mesh represents the identical curved domain), and connectivity / flips are inherited deterministically from the base mesh. meshOut is a fully-formed, conforming Mesh2D_t with 4x the elements, ready for geometry generation and time stepping.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(Mesh2D), intent(in) :: meshIn
type(Mesh2D), intent(out) :: meshOut