The MOOSE GUI Peacock
|
|
Original author(s) | Derek Gaston |
---|---|
Developer(s) | Idaho National Laboratory and contributors |
Initial release | June 10, 2008 |
Operating system | Linux, Mac OS X, Unix |
Available in | C++ |
Type | Finite element analysis |
License | LGPL |
Website | mooseframework |
MOOSE (Multiphysics Object Oriented Simulation Environment) is an object-oriented C++ finite element framework for the development of tightly coupled multiphysics solvers from Idaho National Laboratory. MOOSE makes use of the PETSc non-linear solver package and libmesh to provide the finite element discretization.
A key design aspect of MOOSE is the decomposition of weak form residual equations into separate terms that are each represented by compute kernels. The combination of these kernels into complete residuals describing the problem to be solved is performed at run time. This allows modifications such as toggling of mechanisms and the addition of new physics without recompilation. MOOSE comes with an extensive library of kernels providing residual terms for solid mechanics, Navier–Stokes equations, phase field models and more.
MOOSE uses VTK.
The development of MOOSE at Idaho National Laboratory (INL), beginning in May 2008, has resulted in a unique approach to computational engineering that combines computer science with a strong underlying mathematical description in a unique way that allows scientists and engineers to develop engineering simulation tools in a fraction of the time previously required. The heart of MOOSE is the Kernel. A Kernel is a “piece” of physics. To add new physics to an application built using MOOSE, all that is required is to supply a new Kernel that describes the discrete form of the equation. It’s usually convenient to think of a Kernel as a mathematical operator, such as a Laplacian or a convection term in a partial differential equation (PDE). Kernels may be swapped or coupled together to achieve different application goals. These Kernels, which now number in the hundreds, allow a scientist or engineer to develop an application rapidly.