Mesh-level h-refinement operations for 3-D hexahedral meshes, the direct analogue of SELF_MeshRefinement_2D.
This module assembles a refined Mesh3D_t from the element-local primitives in SELF_RefinementPrimitives_3D. The currently supported operation is uniform refinement - splitting every element 2:1 in each direction into eight children - which keeps the mesh conforming (no hanging faces) and therefore needs neither the mortar machinery nor 2:1 balancing. Adaptive (flagged) refinement with hanging faces and mortar generation lives in SELF_AdaptiveMesh_3D. Uniform refinement is restricted to a single rank here, and guards against multi-rank input.
Produce meshOut, a uniformly refined copy of meshIn: every element is split into eight 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 Mesh3D_t with 8x the elements, ready for geometry generation and time stepping. Refined globalNodeIDs are left zero: the solver reads flips from sideInfo directly and no 3-D consumer requires them.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(Mesh3D), | intent(in) | :: | meshIn | |||
| type(Mesh3D), | intent(out) | :: | meshOut |