MGF is a parallel code for 3D multi-physics problems. Originally developed under a NASA Grand Challenge Grant for high performance simulation of thermocapillary flows in microgravity environments, MGF is becoming a general purpose tool for partial differential equation problems via a dial-an-operator interface. MGF solves these systems using Galerkin and Mixed-Galerkin Finite Element Methods on tri-linear and tri-quadratic hexahedral elements. Complex geometries may be employed by using the CUBIT mesh generation tool-suite from Sandia National Labs.
AlgorithmsMGF employs a variety of algorithms in the simulation of complex problems.
- Time Integration -- Predictor/Corrector
- Second Order Adaptive Adams-Bashford/Trapezoidal Rule
- First Order Adaptive Forward Euler/Backward Euler
- Nonlinear Solvers
MGF provides a nonlinear iteration loop and convergence detection,
but leaves the choice of method up to the user, since the dial-an-operator interface
expects the user to present MGF with linearized equations. In practice, we use the Newton-Raphson method. - Linear Solvers
- BCGStab
- BCG
- CG (for symmetric systems)
- Preconditioning
- Parallel ILU
- Diagonal Preconditioning
The dial-an-operator interface allows us to describe equations in a LaTeX-like input language:
\begin{eqnsystem}{thermalOnly}
\matprop[Density]{\rho}
\matprop[Heat Capacity]{c_p}
\matprop[Thermal Conductivity]{k}
\vuserFunc[Imposed Velocity]{v}
\userFunc[Volumetric Heat Source]{Q}
\qscalar[Temperature]{T}
\begin{equation}
\eqnVar{T}
\label{eq:thermal}
\int \rho*c_p*\phi*\pdv{T}{t}
+ \rho*c_p*v*\grad{T}*\phi
+ k*\grad{\phi}*\grad{T} \dx
= \int Q*\phi \dx
\end{equation}
\end{eqnsystem}
The above input script describes a convection-diffusion problem written in its mathematical weak form. This input is parsed by a Perl script for processing by MGF.
Parallel PerformanceMGF was designed under a system of performance driven milestones. It was also designed with the ease of portability in mind. As a result it scales well on a variety of parallel machines including our Beowulf clusters. The following figures give scaled speedup results for a fluid flow problem designed to fill 128MB of RAM on each node.
|
|
MGF has been used for the simulation of thermocapillary problems in microgravity, natural convection, heat transfer, non-Newtonian fluids problems (including Eyring, Williamson, and electro-rheological fluids).
Natural ConvectionThe following results are for natrual convection of air in cubical enclosure and were produced as part of an international benchmarking exercise for ICHMT's CHT '01 conference in Palm Cove, Australia.
|
|
Examples of porous media flow problems simulated with MGF can be found here.