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 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.
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 primary objective of ITAPS was to develop technologies that enable 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.
- 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.
- 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. MOAB also implements iRel (relational) interface that connects and uses iGeom and iMesh interfaces
- 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.
- 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 — Energy Exascale Earth System Model solver for climate simulations
- RGG — Tools based on Meshkit to generate reactor core meshes for Nuclear engineering applications
- SHARP — Coupled multi-physics applications for nuclear reactor analysis
- PETSc (DMMoab) — Generic multi-component PDE solvers on unstructured meshes leveraging scalability of PETSc and MOAB
- 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
- Mesquite — Mesh Quality Improvement Toolkit (Sandia)
- 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) — Scalable, coupled climate simulator with the option to use MOAB coupler to transfer field data in memory between component models
- Earth System Modeling Framework (ESMF) — MOAB is an option to describe the underlying mesh (v8.1.0)
- Computational Model Builder (CMB) — Nuclear — Reactor Geometry Generator (Kitware)
- DIY — Do-it-Yourself Analysis for looking at data movement in parallel environments
- MoFEM — A mesh-oriented, FEM analysis library (Univ. of Glasgow, UK)
- PyNE — The Nuclear Engineering Toolkit
- RS2-ACT — Rigorous 2 Step Activation Workflow based on MOAB and PyTAPS (Univ. of Wisconsin, Madison, USA)
- 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.