rbmatlab 0.10.01
RBmatlab software

Introduction

RBmatlab is a MATLAB© library providing routines for the solution of numerical schemes based on partial differential equations. The library consists of three main modules:

Note, that these three modules depend on each other in the following way:

dot_inline_dotgraph_1.png

As a consequence, if you want to implement your own reduced basis procedure with RBmatlab, you need to make yourself familiar with all three modules. Of course, it makes sense to use the first module for discretization methods of partial differential equations independently, as it provides many useful tools for the implementation of your favourite numerical scheme.

Note:
In general, all modules are implemented in an object oriented way using the class concepts provided by Matlab©. Interface classes are given to define the core functionality of the modules. (c.f. Subsection How to implement a reduced model in RBmatlab and Section Interface classes). The discretization module, however, is an exception, as its implemented discretization operators are realized by M-File functions. The reason for this is mainly historical, but is also due to the fact, that we have not yet evaluated the performance impact of class objects on method evaluations. The performance of discretization operator evaluations, however, is crucial, as these are used both during the detailed and the reduced simulations.

How to learn RBmatlab

Users new to RBmatlab should first get a copy of the RBmatlab-HowTo describing a high-level usage of a simple reduced basis problem with RBmatlab. In order to learn more about the concepts, we suggest to follow the order of the above list and to understand each of the basic demos

Furthermore, there is a directory with regression tests which could also be helpful.

How to implement a reduced model in RBmatlab

In order to implement a full reduced model, the four main interface classes IDetailedModel, IDetailedData, IReducedData and IReducedModel need to be specified. More general information on these interface classes can be found in Section Interface classes.

The suggested course of action for a reduced basis scheme is to

  1. implement and test your problem discretization and wrap it in an IDetailedModel class,
  2. implement your reduced model by specializations of IReducedModel and IReducedData classes,
  3. test your reduced simulations by use of a DummyDetailedData object which creates a simple reduced basis from manually selected solution snapshots and
  4. implement and test a more sophisticated basis generation technique by specializing a new IDetailedData class.

Usage with other numerical solvers

The reduced basis generation algorithms can also make use of detailed simulations from other software packages, if those stick to the interface of the RBmatlab framework. An example is the Dune module dune-rb for which a model implementation exists here.

Automatic documentation generation

This documentation is generated by Doxygen - an automatic documentation tool. Although 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. In order to extend and re-build this documentation by your own, you therefore

  1. need to download and install
    • a recent version of doxygen available from its website. and
    • the filter program mtoc++ currently available from here.
  2. you can execute the script make_docu.sh in the base directory of your RBmatlab installation.

Note, that an easy access to the HTML-documentation from the Matlab© prompt, is provided by htdoc().

 All Classes Namespaces Files Functions Variables