On this page:
9.1 Rectilinear Background Mesh Construction
9.1.1 Setup
9.1.2 Axis Layout
9.1.3 Resolution
9.1.3.1 Exact Element Size
9.1.3.2 Exact Interval Count
9.1.4 Padding and Final Mesh
9.1.5 Numerical Robustness

9 Coreform IGA Mesh

    9.1 Rectilinear Background Mesh Construction

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

Each axis uses either
  • node_centered: the lattice contains the origin,

  • edge_centered: the origin lies at the center of an element.

If element_layout is omitted, the default is edge_centered on all three axes.

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

If element_interval_count is supplied, the requested count is preserved exactly and the realized size may increase. The smallest admissible size is The implementation searches lower-index candidates near For each , it finds the smallest satisfying That candidate gives Among feasible candidates, the code picks the lexicographically smallest tuple So the preference order is:
  • smaller realized element size,

  • then smaller center shift,

  • then smaller expansion below the requested minimum,

  • then smaller resolved minimum extent.

The winning candidate defines , , and , while remains fixed.

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.