rbmatlab  1.13.10
RBmatlab software

# Introduction

RBmatlab is a MATLAB library for model order reduction with Reduced Basis Methods for various discretizations types and application settings.

The package comprises:

• Grid management (2D rectangular, triangular, Multi-D adaptive nonconforming cubegrid)
• Discretization techniques: Finite Elements, Finite Volumes, Finite Differences, Local Discontinuos Galerkin including discrete function types, visualization, etc.
• Problem types: stationary and instationary advection-diffusion, two-phase flow
• Demos
• Interfaces to external packages (dune, ALBERTA-Grid, Comsol)

There are two different types of approaches, both are supported and serve different goals:

• struct-based models: the models and data-instances are realized by matlab structures. This allows simple "1-file-for-one-model" implementation, and is very useful for instructional purposes, and suitable for users not familiar with object oriented programming.
• object oriented programming based models: This allows modular exchange of subparts of models (e.g. basis generation, etc.) and used by experienced users.

## Contact

The package is jointly developed by the University of Stuttgart, the University of Muenster, the University of Ulm and the Sandia Lawrence Livermore National Research Laboratory.

The package is available via the website http:\www.morepas.org.

## Installation

After unpacking (or git checkout) of the package, you need to adjust matlab startup:

If your matlab installation supports the "setenv" command, installation is very simple:

Make sure, that the following code is executed during matlab startup, e.g. by putting it into the $HOME/matlab/startup.m file or by executing it every time you start matlab by cut'n paste. Of course replace the pathname by your local version. In particular you must set the path to the RBmatlab directory and choose the temporary-data directory, where some GB of space are available. %-------- start of init code --------- setenv('RBMATLABHOME','/u/bhaas_01/sync/matlab/RBmatlab'); setenv('RBMATLABTEMP','/tmp/matlab'); addpath(getenv('RBMATLABHOME')); startup_rbmatlab %-------- end of init code --------- if your matlab installation does not support the setenv command: 1. create an environment variable RBMATLABTEMP, which points to an existing directory, where RBmatlab can create subdirectories for storing temporary data. Large space, i.e. several gigabytes should be available. 2. then create an environment variable RBMATLABHOME, which points to the rbmatlab-directory. 3. Make sure, that the following code is executed during matlab startup, e.g. by putting it into the$HOME/matlab/startup.m file or by executing it every time you start matlab by cut'n paste.
%-------- start of init code ---------
startup_rbmatlab
%-------- end of init code ---------

## First Start

After starting matlab, have a look at the "demos" and start them one by one to get an impression of the package. In particular the following demos are suggested. View their source to see the use of the package's routines:

1. Example of a detailed simulation (finite volume time evolution) demo_explicit_FV()
2. Steps of model reduction (inspect source-code while executing!) demo_rb_steps()
3. Interactive Gui demo_rb_gui()

Many further demos are available, see the corresponding directory or the script rbmatlabdemos().

## Documentation

The documentation of the package is generated by Doxygen - an automatic documentation tool. Alt \ hough designed for C-like languages, Doxygen allows to pre-process the source code by a filter \ programm that makes Matlab-code parseable by Doxygen as well. This generates a browsable html documentation of the files, classes and dependencies. The corresponding starting file is doxygen/html/index.html or can simply be accessed by htdoc() in the matlab command window.

In order to extend and re-build this documentation by your own, you therefore