Nov 12, 2007:
First version of our new group webpage is released!
Group wiki »
(restricted access)
3DG is a software package for solving conservation laws numerically using the discontinuous Galerkin method. The methods allow for unstructured meshes in any space dimension, and arbitrary approximation orders in the discretization. The equations are discretized using the Compact Discontinous Galerkin (CDG) method. Solutions are represented by nodal basis functions on simplex meshes. The actual equations that are solved are separated from the core routines, in a so-called application definition file. This means for example that en end-user can work on new applications or modify existing applications without having to read or change the core routines and the solvers.
The functionality provided by the core includes the actual discretization of the equations (computation of residual and optionally derivatives with respect to the unknowns) and various solvers (explicit/implicit time stepping, damped Newton-GMRES for steady-state problems, sweepsolver for highly nonlinear problems). There are also a large number of utilities for tasks such as generation and manipulation of curved meshes and postprocessing and visualization of solutions.
The main part of 3DG is written in the C++ programming language, however all functionality is accessible from the MATLAB computing environment and many of the utility functions are written in plain text MATLAB code. It is, for example, easy to write a new solver or time integrator, by simply modifying the MATLAB code for the existing ones. Basic functionality such as residual and Jacobian evaluation are still performed by the core C++ functions.
The compressible Navier-Stokes application in 3DG provides capability for solving inviscid or viscous flows with several different boundary conditions. The derivatives of the expressions are computed automatically using a Maple interface, which is part of the 3DG framework.
The 3DG framework solves time-dependent systems of conservation laws of the form,
![]() |
(1) | |
| (2) |
| (3) | ||
| (4) |
We now consider DG formulations of the form: find
and
such that for all
, we
have
![]() |
(5) | |
![]() |
||
![]() |
(6) |
Here, the numerical fluxes
,
and
are approximations to
,
and
respectively, on the boundary
of the element
. The
DG formulation is complete once these numerical fluxes are specified
in terms of
and
and the boundary conditions.
The inviscid flux is determined using Roe's scheme whereas the viscous
flux is calculated using the CDG method [1]. By
choosing the numerical flux
to be a function of
and
not
then, the additional
variables can be eliminated
after discretization at element level; thus, resulting in a system
involving only the degrees of freedom corresponding to the conserved
variables
. The final result is a system of coupled ordinary
differential equations (ODEs) of the form,
| (7) |
The system of ODEs (7) is solved using either explicit solvers of Runge-Kutta type or implicit solvers using the backward differentiation formulas (BDF). The linear systems of equations are solved with a combination of incomplete factorizations (ILU) and p-multigrid [2].