# Overview

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

- 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.
- PyTAPS — Python based interfaces to SIGMA tools.

## What applications do we work on ?

- RGG — Tools based on Meshkit to generate reactor core meshes for Nuclear engineering applications
- SHARP — Coupled multi-physics applications
- 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)

## 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.

- Computational Model Builder (CMB) — Nuclear — Reactor Geometry Generator (Kitware)
- PyNE — The Nuclear Engineering Toolkit
- DIY — Do-it-Yourself Analysis for looking at data movement in parallel environments
- MoFEM — A mesh-oriented, FEM analysis library
- SpaFEDTe — Templated C++ library for creating Discontinuous Finite Element Spaces
- YaFFEMS — A parallel implementation of the Finite Element Method based on MOAB (Univ Glasgow, UK)
- FEMDK — Finite Element Method Development Kit (Krakow Univ. of Technology)
- RS2-ACT — Rigorous 2 Step Activation Workflow based on MOAB and PyTAPS (Univ Wisconsin)

If you have any comments or suggestions, please use the contact page to get in touch with us.