*** Wartungsfenster jeden ersten Mittwoch vormittag im Monat ***

Skip to content
Snippets Groups Projects

Matlab Object Oriented FEM

 ________________________________________
/                                        \
| Welcome to MooAFEM!                    |
|                                        |
| A Matlab Object Oriented AFEM package. |
\                                        /
 ----------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

The ASCII art is taken from the cowsay package by Tony Monroe.

Short description

An object oriented Matlab library for (adaptive) finite element analysis. Advantages:

  • Easy to use and modify
  • Covers a wide range of equations
  • Efficient implementation of general polynomial orders
  • A lot of built-in convenience functions

Installation

To get started, run setup.m in the root folder. This adds everything to the path and compiles .mex files if necessary. Note that, at least, Matlab version R2022a is required.

First steps

There are some examples that show the features of this package in the examples/ directory. These are simple scripts, so they can be executed either from the command window or by running it from the editor.

Modifications

To allow for reliable modifications, a comprehensive test suite is shipped with the package. These tests use the matlab.unittest framework and can be run by one of the following commands:

% automatically run all unit-tests
runtests('tests/')

% automatically run all unit-tests and all examples
runtests('tests/', 'IncludeSubfolders', true)

% run tests and perform code coverage analysis
runtests('tests/', ['IncludeSubfolders', true,] 'ReportCoverageFor', 'lib/')

Citation

If you use the MooAFEM package in your own research, please acknowledge this by citing the accompanying documentation paper:

@Article{MooAFEM,
  author        = {Michael Innerberger and Dirk Praetorius},
  title         = {{MooAFEM}: An object oriented {Matlab} code for higher-order (nonlinear) adaptive {FEM}},
  year          = {2022},
  archiveprefix = {arXiv},
  eprint        = {2203.01845},
}