# Goma (software)

Goma is an open-source, parallel, and scalable multiphysics software package for modeling and simulation of real-life physical processes, with a basis in computational fluid dynamics for problems with evolving geometry. It solves problems in all branches of mechanics, including fluids, solids, and thermal analysis. Goma uses advanced numerical methods, focusing on the low-speed flow regime with coupled phenomena for manufacturing and performance applications. It also provides a flexible software development environment for specialty physics.
Goma was created by Sandia National Laboratories and is currently supported by both Sandia and the University of New Mexico.

## Capabilities

Goma is a finite element program which solves problems from all branches of mechanics, including fluid mechanics, solid mechanics, chemical reactions and mass transport, and energy transport. The conservation principles for momentum, mass, species, and energy, together with material constitutive relations, can be described by partial differential equations. The equations are made discrete for solution on a digital computer with the finite element method in space and the finite difference method in time. The resulting nonlinear, time-dependent, algebraic equations are solved with a full Newton-Raphson method. The linearized equations are solved with direct or Krylov-based iterative solvers. The simulations can be run on a single processor or on multiple processors in parallel using domain decomposition, which can greatly speed up engineering analysis.
Example applications include, but are not limited to, coating and polymer processing flows, super-alloy processing, welding/soldering, electrochemical processes, and solid-network or solution film drying. A full description of Goma's capabilities can be found in Goma's capabilities document.
Goma is frequently used in conjunction with other software packages. Cubit is typically used to generate computational meshes, while ParaView is often used to visualize the simulation results. Simulation output is generated in the ExodusII file format.

## History

Goma originated in 1994 from an early version of MP_SALSA, a finite element program designed to simulate chemically reacting flows in massively-parallel computing environments. As a point-of-departure, Goma was originally extended and adapted to free and moving boundary problems in fluid mechanics, heat transfer, and mass transfer. Five versions of Goma (1.0 through 5.0) were developed and released by Sandia from 1994 through 2012. These original versions of Goma were not approved for public release, and were released only internally within the US Government and its contracted industrial and academic partners.
In 2013, Sandia released Goma 6.0 as open-source software under the GNU General Public License. It is hosted by GitHub and contains instructions on downloading additional software packages that are required to build Goma.

## Awards

Goma 6.0 was awarded a 2014 R&D 100 Award by R&D Magazine. This award identifies the open-source release of Goma 6.0 as one of the top 100 technological innovations of 2013.

## Publications

A user manual for Goma 6.0 has been published openly. Goma simulations have underpinned at least 14 Sandia technical reports and over 25 journal articles.