FESTUNG (Finite Element Simulation Toolbox for Unstructured Grids) is a Matlab / GNU Octave toolbox for the discontinuous Galerkin (DG) method on unstructured grids. It is primarily intended as a fast and flexible prototyping platform and testbed for students and developers.
FESTUNG relies on fully vectorized matrix/vector operations to deliver optimized computational performance combined with a compact, user-friendly interface and a comprehensive documentation.
- Tarballs of previous code versions and further information about the project can be found on our Project page.
- The latest published version can always be downloaded from the Github repository.
To check out the latest version, run git clone https://github.com/FESTUNG/project.git
Model problems are defined following a generic solver structure.
Have a look at the implementation of the standard (element-based) DG discretizations of linear advection (folders advection
for time-explicit and advection_implicit
for time-implicit) or the LDG discretization of the diffusion operator (folder diffusion
).
A hybridized DG discretization of linear advection can be found in the folder hdg_advection
.
Start the computation for any of these problems using main(<folder name>)
, for example
$ main('advection')
Output files are written in VTK format or TecPlot ASCII file format and can be visualized, e.g., using Paraview.
When developing code for or with FESTUNG we suggest to stick to the Naming Convention to allow for better readability and a similar appearance of all code parts. All files should be documented using the Doxygen syntax.
All routines are carefully documented in the Doxygen format, which allows to produce this documentation. It can be generated by calling
$ doxygen doxyfileFESTUNG
in the main directory.
FESTUNGs main developers are Florian Frank, Balthasar Reuter, and Vadym Aizinger. Its initial release was developed at the Chair for Applied Mathematics I at Friedrich-Alexander-University Erlangen-Nürnberg.
- FESTUNG makes extensive use of the built-in routines in MATLAB / GNU Octave.
- triquad was written by Greg von Winckel. See triquad.txt for license details.
- m2cpp.pl by Fabrice to generate a Doxygen documentation. See license.txt for license details.
- see LICENSE file
- Version 0.1 as published in the paper Frank, Reuter, Aizinger, Knabner: "FESTUNG: A MATLAB / GNU Octave toolbox for the discontinuous Galerkin method. Part I: Diffusion operator". In: Computers & Mathematics with Applications 70 (2015) 11-46, Available online 15 May 2015, ISSN 0898-1221, http:https://dx.doi.org/10.1016/j.camwa.2015.04.013.
- Version 0.2 as published in the paper Reuter, Aizinger, Wieland, Frank, Knabner: "FESTUNG: A MATLAB / GNU Octave toolbox for the discontinuous Galerkin method. Part II: Advection operator and slope limiting". In: Computers & Mathematics with Applications 72 (2016) 1896-1925, Available online 25 August 2016, ISSN 0898-1221, http:https://dx.doi.org/doi:10.1016/j.camwa.2016.08.006.
- Version 0.3 as published in the paper Jaust, Reuter, Aizinger, Schuetz, Knabner: "FESTUNG: A MATLAB / GNU Octave toolbox for the discontinuous Galerkin method. Part III: Hybridized discontinuous Galerkin (HDG) formulation". Submitted to: Computers & Mathematics with Applications (2017).
- Homepage: https://math.fau.de/FESTUNG