SIGMA
Computational physics solvers take a continuous domain of interest, the problem geometry, and apply specialized discretizations based on the Partial Differential Equation (PDE) describing the relevant physical model. The discretization involves two components: computing a discrete mesh of the domain that accurately models the continuous geometry and defining the solution fields as degrees-of-freedom on the mesh, that needs to be computed by appropriately solving the discretized operators. The resulting single/multi component physics solutions need to be serialized back to a format amenable for visualization.
SIGMA provides several components to alleviate the complexities in these computational workflows. Some highlights include:
- Unified interfaces to handle solid geometry ($\texttt{CGM}$) with core interfaces to OpenCascade engines
- Efficient meshing algorithms ($\texttt{MeshKit}$) to resolve key spatial features in the complex geometry
- Scalable, array-based unstructured mesh infrastructure ($\texttt{MOAB}$) to enable refinement, optimization and description of field data
- Flexible discretization schemes for PDE system assembly ($\texttt{DMMoab}$) using scalable $\texttt{PETSc}$ solvers
- Mesh-to-mesh coupling and conservative solution transfer using $\texttt{MOAB}$, with excellent strong scaling on large computing architectures
The design of SIGMA bears composability and scalability as key motivations for use in scientific codes, in order to simplify modeling of complex multi-physics systems. The SIGMA components can accelerate computational workflows (geometry modeling, mesh generation, spatio-temporal discretization, coupled physics solvers, and visualization) in an efficient fashion.
SIGMA implements interfaces and tools to access geometry data, create high quality unstructured meshes along with unified data-structures to load and manipulate parallel computational meshes for various applications to enable efficient physics solver implementations. Mesh generation is a complex problem since most problem geometries involve complicated curved surfaces that require physics imposed spatial resolution and optimized elements for good quality. These tools simplify the process of generation and handling of discrete meshes with scalable algorithms to leverage efficient usage from desktop to petascale architectures.