Giter Site home page Giter Site logo

festung / festung Goto Github PK

View Code? Open in Web Editor NEW
36.0 9.0 7.0 11.43 MB

The main project for the MATLAB / GNU Octave code of FESTUNG

Home Page: https://math.fau.de/FESTUNG

License: Other

MATLAB 98.59% HTML 0.12% CSS 1.06% TeX 0.16% GLSL 0.02% M 0.05%
matlab-toolbox discontinuous-galerkin unstructured-grids gnu-octave vectorization mathematics partial-differential-equations numerics

festung's Introduction

FESTUNG

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.

Have a look at our gallery for example applications that use FESTUNG.

Get it

  • 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/FESTUNG.git
  • Tarballs of previous code versions and further information about the project can be found on our Project page.

Use it

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')

To change simulation parameters or modify initial and boundary data, have a look into configureProblem.m in the respective problem folder, or pass them directly when calling the problem solver, e.g.,

main('advection', 'tEnd', 10, 'p', 1, 'hmax', 2^-4)

to run the Advection problem with a different end time and linear ansatz functions on a mesh with maximum element size of 1/16.

Output files are written in VTK format or TecPlot ASCII file format and can be visualized, e.g., using Paraview.

Development

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. Keep in mind the generic solver structure when modifying and adding new problems. All files should be documented using the Doxygen syntax.

For more details, see Using and contributing to FESTUNG.

Documentation

All routines are carefully documented in the Doxygen format, which allows to produce this documentation. It can be generated by calling doxygen in the main directory.

Contributors

The main developers of FESTUNG 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.

Since then, significant contributions were made by Hennes Hajduk and Andreas Rupp

Third party libraries

  • 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.

License

FESTUNG is published under GPLv3, see License file.

Version

  • Version 1.0 with an accompanying overview paper in preparation.
  • Version 0.4 as published in the preprint Reuter, Rupp, Aizinger, Frank, Knabner: "FESTUNG: A MATLAB / GNU Octave toolbox for the discontinuous Galerkin method. Part IV: Generic problem framework and model-coupling interface". In: Communications in Computational Physics 28 (2020) 827-876, Available online June 2020, ISSN 1991-7120, https://doi.org/10.4208/cicp.OA-2019-0132 .
  • 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". In: Computers & Mathematics with Applications 75.12 (2018) 4505-4533, Available online 2 May 2018, ISSN 0898-1221, https://doi.org/10.1016/j.camwa.2018.03.045 .
  • 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, https://doi.org/10.1016/j.camwa.2016.08.006 .
  • 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, https://doi.org/10.1016/j.camwa.2015.04.013 .

Contact

Homepage: https://math.fau.de/FESTUNG

festung's People

Contributors

ajaust avatar henneshajduk avatar lephlaux avatar reuterbal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

festung's Issues

the code for weak galerkin

I'm so sorry that it took a long time to do other things, I have written a code for a poisson equation using the weak galerkin method, it is also using the face basis which is similar to HDG, but there are some thing wrong when using the RT basis, i will rewrite it using [Pk, Pk].
I wondering is there a adaptive mesh, when FESTUNG runing?

1D space

is it possible to use FESTUNG for 1D (in space) problems, like e.g. age dependent models?

Requesting advice

Hi, I need to solve this equation for an implementation I'm working on. u is scalar and unknown while q is known and s is a test function.
equation
Can you give some advice on how to do this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.