RBniCS is an implementation in FEniCS of several reduced order modelling techniques (and, in particular, certified reduced basis method and Proper Orthogonal Decomposition-Galerkin methods) for coercive problems. It is ideally suited for an introductory course on reduced basis methods and reduced order modelling, thanks to an object-oriented approach and an intuitive and versatile python interface. To this end, it has been employed in several doctoral courses on "Reduced Basis Methods for Computational Mechanics".
RBniCS can also be used as a basis for more advanced projects that would like to assess the capability of reduced order models in their existing FEniCS-based software, thanks to the availability of several reduced order methods (such as reduced basis and proper orthogonal decomposition) and algorithms (such as successive constraint method, empirical interpolation method) in the library.
Several tutorials are provided. This software is also a companion of the introductory reduced basis handbook:
RBniCS requires
- FEniCS, with petsc4py and slepc4py, for computations during the offline stage;
- numpy for computations during the online stage;
- python-glpk, a python interface to the glpk library for linear programming, necessary for the successive constraints method.
Simply clone the RBniCS public repository:
git clone https://gitlab.com/RBniCS/RBniCS.git /RB/ni/CS/path
The core of the RBniCS code is in the RBniCS subfolder of the repository.
Then Make sure that both FEniCS and RBniCS are in your PYTHONPATH,
source /FE/ni/CS/path/share/fenics/fenics.conf
export PYTHONPATH="/RB/ni/CS/path:$PYTHONPATH"
and run a RBniCS python script (such as the tutorials) as follows:
python RBniCS_example.py
If you want to try RBniCS out but do not have FEniCS already installed, you can:
- if you have VirtualBox, download a virtual machine based on Ubuntu 14.04 LTS (username and password: rbnics);
- if you have docker, pull our docker image from Docker Hub with
docker pull rbnics/rbnics
.
RBniCS software is located in $HOME/RBniCS. All required dependencies are already installed, and a precomputed offline stage is also provided.
Several tutorials are provided the tutorials subfolder.
- Tutorial 1: introduction to the capabilities of RBniCS: reduced basis method for scalar problems.
- Tutorial 2: introduction to the capabilities of RBniCS: POD-Galerkin method for vector problems.
- Tutorial 3: geometrical parametrization.
- Tutorial 4: non-compliant problems, successive constraint method.
- Tutorial 5: empirical interpolation method.
RBniCS is currently developed and mantained at SISSA mathLab by
Contact us by email for further information or questions about RBniCS, or open an ''Issue'' on this website. RBniCS is at an early development stage, so contributions improving either the code or the documentation are welcome, both as patches or merge requests on this website.
If you use RBniCS in your work, please use the following citations to reference RBniCS
@book{HesthavenRozzaStamm2015,
author = {Hesthaven, Jan S. and Rozza, Gianluigi and Stamm, Benjamin},
title = {Certified Reduced Basis Methods for Parametrized Partial Differential Equations},
publisher = {Springer International Publishing},
year = 2015,
series = {SpringerBriefs in Mathematics},
isbn = {978-3-319-22469-5}
}
and cite the RBniCS website.
A forthcoming publication will also provide more details on RBniCS.
Like all core FEniCS components, RBniCS is freely available under the GNU LGPL, version 3.