9 Coreform IGA Mesh
9.1 Rectilinear Background Mesh Construction
The coreform_iga_mesh workflow constructs a rectilinear background mesh by resolving each frame-local axis independently and then taking a tensor product. This brief summarizes the exact mathematics implemented in geom/creation/src/FnFill.cpp.
9.1.1 Setup
Let the user-supplied frame be given by an origin and basis matrix . The inputs min_extent_vec and max_extent_vec define frame-local bounds All centering and sizing decisions are made in these local coordinates.
After resolution and padding, the local box is mapped from by and then to physical space by
9.1.2 Axis Layout
node_centered: the lattice contains the origin,
edge_centered: the origin lies at the center of an element.
Define for node_centered and for edge_centered. For realized element size , the one-dimensional lattice is
9.1.3 Resolution
9.1.3.1 Exact Element Size
If element_size is supplied, the requested size is preserved exactly. The code chooses the smallest interval on covering : Thus and , with no extra enlargement beyond what the lattice requires.
9.1.3.2 Exact Interval Count
smaller realized element size,
then smaller center shift,
then smaller expansion below the requested minimum,
then smaller resolved minimum extent.
9.1.4 Padding and Final Mesh
Padding is specified in element widths. For , The implementation requires to be integral.
The final background mesh is the tensor product of the three padded one-dimensional lattices, with padded interval counts or equivalently the rectilinear grid over The basis uses directly, and the geometric fitting uses the same padded extents in the affine map .
9.1.5 Numerical Robustness
Before applying and , the implementation snaps values within relative tolerance of an integer to that integer. This prevents floating-point noise from changing the chosen lattice when an extent should lie exactly on a node or element boundary.