Geometry & Regions#
Engineering geometries must facilitate:
accurate representation
volumetric computation
conditions and couplings
Thus, frequent CAE tasks include:
importing, converting, cleaning
volumetric discretization
segmenting manifolds into regions
Additional constraints appear when factoring in higher-level systems functionalities:
system studies containing multiple meshes
geometries patterned/transformed across systems
Structured vs Unstructured#
End-users typically only interact with unstructured mesh types, but it is important to understand some of the utilities under-the-hood:
Unstructured geometries include traditional declarative meshes: underlying nodal positions and corresponding topology is stored and retrieved as an element.
Structured geometries include procedural grids: underlying nodal positions and topology is computed upon each element query. Grids are often used for SDF and other background geometry computations.
Implicit Shape#
It can be desirable to express a shape without a discrete topology. To do so, 3D shape fields (“level sets”) map coordinates XYZ to a singular scalar value \(\phi\).
The implicit boundary is defined where the field cross some constant value \(C\). By default, \(C=0\). Usually the field is monotonic as a function of distance-to-boundary.
Sampled SDF#
When an implicit shape \(\phi(x)\) has the property that the magnitude of the gradient throughout is equal to one \(|\nabla(x)|=1\), then the implicit field is said to be a distance field.
If the boundary is defined at \(C=0\), the interior of the object has negative field values and the outside will have positive field values, meeting the criteria for a signed-distance field (SDF).
Generally, \(\phi<C\) is interior and \(\phi>C\) is exterior, while \(\phi=C\) is on the boundary.
Notes:
Mesh generation and other spatial processing tasks rely on the constant-time parallel sampling of SDF on background grids. This is the most efficient way to determine spatial proximity for physics and contacts. A typical SDF background grid may contain 8M to 800M nodes (at ~64 bytes per node).
It is also possible to describe SDF analytically using functions. This provides a viable approach to future shape synthesis by humans and algorithms.
Discrete Topology#
Solving physics in a finite computing machine (aka digital computer) requires that the shape be discretized (broken down) into small computable elements.
Nodes are points in space-time, connected by elements to facilitate information flow. A numerical method then approximates the continuous PDE by transforming the problem into a discrete ODE.
Elements#
Underlying intrinsic attributes of each element:
type
(NODE1
,LINE2
,TRI3
,QUAD4
,TET4
,HEX8
, …)id
(0
is default, positive are for users)indices
(of nodes defining vertices)
Several extrinsic functions exist, including:
center
(barycenter)domain
(XYZ
extrema)distance
(to position)constains
(position)decompose
(to sub-elements)quality
[0:1]neighbors
…
Nodes#
Nodes are elements with 0D
topological dimensionality, defining data and position at that particular point. Supported nodes: NODE1
Additional extrinsic functions:
volume
(scalar, based on medan dual fragment)
Edges#
Edges are elements with 1D
topological dimensionality, connecting two nodal points. Supported edges: LINE2
, DUAL2
Additional extrinsic functions:
length
(vector)area
(interface vector, only forDUAL2
)
Faces#
Faces are elements with 2D
topological dimensionality, connecting three or more nodal points. Supported faces: TR3
, QUAD4
Additional extrinsic functions:
area
(normal vector)
Cells#
Cells are elements with 3D
topological dimensionality, connecting four or more nodal points. Supported faces: TET4
, HEX8
Additional extrinsic functions:
volume
(scalar)
Median Duals#
The mesh that you see and save is the primary mesh, described classically from nodes and elements. However, downstream numerics may utilize a different interpretation.
FEM is formulated to utilize the primary elemental mesh directly. Integration is performed at Gauss-Legendre quadrature points using analytic shape functions.
FVM is formulated to interpret the primary mesh as its Voronoi inverse during runtime, yielding a median-dual control volume for highest flux integration accuracy.
Subset Regions#
It is useful to assign regions IDs to a subset of elements for boundary conditions and/or coupling.
Intrinsic attributes of each region:
dimensionality (0, 1, 2, 3)
id (
0
is default, positive are for users)name (useful identifier)
data (coming soon)
Elements and regions are complementary:
each element has an integer
id
region
id
correspond to the elements with matchingid
Example:
Consider a mesh with default faces set to id=0. We can segment the mesh; perhaps the algorithm assigns faces with id 0,1,2,5. If desired, we can set a system’s surfaces ids 2 and 5. We could change the geometry and the system’s ids would persist. We could then create a new mesh with similar id assignments and the boundary conditions would map as before. In the same manner, we could also define the system’s region id’s before a geometry or mesh even exists, separating system definition from geometric steps.
Groups#
Loops#
Surfaces#
surface normal
(vector, centered at node)