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, which needs to be computed by appropriately solving the discretized operators. The resulting single/multicomponent physics solutions need to be serialized back to a format amenable for visualization.
SIGMA provides interfaces and tools to access geometry data, and create high-quality unstructured meshes along with unified datastructures 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.
What tools do we have ?
The SIGMA tools originally evolved as part of the ITAPS center, which was a collaboration between several universities and DOE laboratories, and funded by the DOE SciDAC program. The program’s primary objective was to develop technologies that enabled application scientists to easily use multiple mesh and discretization strategies within a single simulation, on petascale computers. This is accomplished through the development of common functional interfaces to geometry, mesh, and other simulation data. SIGMA represents ANL’s implementation of these standardized interfaces. Since its inception, the stack of software tools has developed into a broader ecosystem that supports the full computational workflow necessary to simulate complex coupled physics systems.
- MOAB — The Mesh-Oriented datABase, or MOAB, is a library for representing unstructured and structured mesh, and field data on a mesh. MOAB represents the finite element zoo, plus polygons and polyhedra. MOAB’s data model is simple yet powerful, being able to represent most kinds of metadata often accompanying the mesh (e.g. boundary conditions, processor partitions, geometric topology). MOAB’s interface strikes a balance between abstractness (for extensibility) and concreteness (for ease of use). MOAB’s parallel mesh capabilities have been shown to scale to at least 512K processors on Argonne’s ALCF machines. More recently, MOAB was updated to include the now obsolete Lasso library that provides the glue interfaces between geometry and mesh representations. MOAB hence provides the functionality for recovering and querying these relations for meshes generated with CUBIT and MeshKit. This feature provides components for recovering and querying relations between mesh and geometry (and other data, eventually). Maintaining independence between MOAB and CGM allows each to be used without depending on the other. However, for applications like mesh generation and adaptive mesh refinement, relations between mesh and geometry must be queried and maintained. MOAB implements the ITAPS iMesh and the parallel extensions iMeshP of the interface, which is currently being deprecated. MOAB also implements iRel (relational) interface that connects and uses iGeom and iMesh interfaces. More recently, a new language-agnostic interface, iMOAB, has been developed to facilitate orchestrating complex couplers for nuclear engineering and climate science models.
- PyMOAB — MOAB now supports a native Pythonic interface to expose the standard interface to query, manipulate and read/write meshes. Support for node-level parallelism with MPI4PY will be added in the near future. The older PyTAPS interface is broken and no longer supported.
- CGM — The Common Geometry Module (CGM), is a set of libraries for querying and modifying CAD and other types of geometry data; CGM provides a common API and topological model for accessing geometry represented in ACIS, Open.CASCADE, and a variety of other solid modeling engines. CGM provides the geometry infrastructure for the CUBIT mesh generation toolkit. CGM implements the ITAPS iGeom interface.
- MeshKit — Library of advanced mesh-generation algorithms. An open-source library of mesh generation tools and algorithms. This library is designed with two uses in mind: first, for those wanting an open-source mesh generation library, and second, for those implementing new meshing algorithms.
What applications do we work on ?
- E3SM — Scalable, coupled climate simulator with the option to use MOAB coupler to transfer field data in memory between component models
- PETSc (DMMoab) — Generic multi-component PDE solvers on unstructured meshes leveraging scalability of PETSc and MOAB
- RGG — Tools based on Meshkit to generate reactor core meshes for Nuclear engineering applications
- Scalable algorithms for unstructured mesh generation, efficient representation and computing mesh intersections for conservative FEM solution projection in coupled physics applications
Some applications that use SIGMA components
The components in the SIGMA toolkit have been used in various services and applications to enable mesh generation, mesh handling and manipulation, and for solving discrete single and multi-physics systems.
- Energy Exascale Earth System Model (E3SM) — Energy Exascale Earth System Model solver for climate simulations
- MoFEM — A mesh-oriented, FEM analysis library (Univ. of Glasgow, UK)
- PyNE — The Nuclear Engineering Toolkit
- Earth System Modeling Framework (ESMF) — MOAB is an option to describe the underlying mesh (v8.1.0) and may become the default unstructured grid handler in later releases
- ScIFEN — Scalable Implementation of Finite Elements by NASA (ScIFEN) is a parallel finite element analysis code for computational mechanics problems
- Computational Model Builder (CMB) — Nuclear — Reactor Geometry Generator (Kitware)
- SHARP — Coupled multi-physics applications for nuclear reactor analysis
- NEK5000 — A highly scalable, Computational Fluid Dynamics solver
- PROTEUS — A simulation toolset for reactor physics and fuel cycle analysis
- MBCSLAM — Climate mesh intersection and tracer transport algorithms
- parVis — Parallel analysis tools and new visualization techniques for ultra-large Climate data sets
- RS2-ACT — Rigorous 2 Step Activation Workflow based on MOAB and PyTAPS (Univ. of Wisconsin, Madison, USA)
- DIY — Do-it-Yourself Analysis for looking at data movement in parallel environments
- SpaFEDTe — Templated C++ library for creating Discontinuous Finite Element Spaces
If you have any comments or suggestions, please use the contact page to get in touch with us.