View on GitHub
Download this project as a .zip file Download this project as a tar.gz file
redbKIT
a MATLAB library for reduced-order modeling of PDEs

Download and Installation

Download

You can directly download the current release or clone the git repository

$ git clone https://github.com/redbKIT/redbKIT.git

Releases

redbKIT v2.2 (18-10-2016)

  • New prestress solver in FSI module
  • POD-DEIM reduced-order models for Computational Solid Mechanics problems
  • New problems: FEM_CSM_Spinning, FEM_CerebralAneurysm_C0094, RB_CSMt_Turek, RB_CSM_ShearCube
  • Some bugfix
  • Resistance conditions for CFD simulations
  • SUPG stabilization for ADRt solver (only linear elements are supported)
  • Faster CSM assembly routines
  • Refactoring of the RB_mixer problem; FOM is now built using redbKIT FEM library rather than being loaded from mat file
  • SUPG assembler for steady NS equations
  • Automatic installation scripts for MUMPS sparse linear solver

redbKIT v2.1 (13-07-2016)

Changes only affect the FEM_library and the Problems gallery. In particular:

  • new monolithic Fluid-Structure Interaction solver built upon the CFD and CSM solvers
  • 3 FSI benchmarks added to the Problems gallery
  • added support for flag-specific Dirichlet BC functions in the CFD solver
  • minor bug fixes plus some cleaning of the CFD and CSM folders in the FEM_Library

redbKIT v2.0 (17-06-2016)

Major refactoring of the FEM_Library:

  • added support for 3D finite elements with unified interface
  • new multi-threaded C assembly routines
  • new fluid and solid mechanics solvers, both steady and unsteady
  • new LinearSolver class with e.g. MUMPS interface
  • new abstract Preconditioner class
  • interface to Metis for domain decomposition; parallel Additive Schwarz preconditioner available
  • interface to FAST package to speed-up matlab built-in sparse command
  • harmonic- and solid-extension mesh motion techniques

Implementation and usage example of MDEIM are now available in the RB_Library.

Many new tests and examples in the Problems directory.

Attention: backward compatibility is not guaranteed

redbKIT v1.0 (02-03-2016)

First release of redbKIT. It contains the implementation of the algorithms and solved problems as presented in the companion book:

A. Quarteroni, A. Manzoni, F. Negri. Reduced Basis Methods for Partial Differential Equations. An Introduction, Unitext, vol. 92. Springer, 2016.

Installation

These instructions are valid only as of Release 2.0. To install redbKIT v1.0 please refer to the instructions reported in the corresponding README file.

To install the library, please follow the instructions contained in the INSTALL file.

Pre-requisites

For the basic installation, you need:

  • a reasonably recent version of Matlab (some examples require the mesh generation functions provided by the Matlab Partial Differential Equation Toolbox)
  • a supported C compiler:
    • Linux: gcc works smoothly and provides support for OpenMP.
    • Mac OS X: install Xcode command line tools which provides clang compiler (without OpenMP support). For Xcode 7.0 or higher, follow these instructions if Matlab can’t find a supported compiler.
    • Windows 64-bit: consider installing the MinGW-w64 compiler following these instructions (supported by MATLAB R2015b and beyond).

If you want to speed-up matrix assembly via multithreading, you also need:

If you want to speed-up Matlab built-in “sparse” command by installing the FAST package, you also need:

  • a supported C compiler for the serial version
  • a C compiler with OpenMP support for the multithreaded version

If you want to use parallel Additive Schwarz preconditioners, you also need:

Basic Installation

Open Matlab and navigate to redbKIT root directory. Then type

>> make

to compile the C-assembly routines and “mexify” some other files.

Installation with OpenMP enabled

Open Matlab and navigate to redbKIT root directory. Then type

>> make(1)

to compile the C-assembly routines with OpenMP enabled.

Install Metis for Additive Schwarz preconditioners

Open Matlab and navigate to the redbKIT directory FEM_library/Mesh. Then type

>> install_metismex

Install FAST to speed-up Matlab “sparse” command

Open Matlab and navigate to the redbKIT directory FEM_library/Tools.

To install the serial version, type

>> install_FAST

To install the multithreaded version, type

>> install_FAST(1)

In both cases you will be required to accept FAST’s license.

Install MUMPS (parallel sparse linear solver)

The LinearSolver class provides the possibility to use MUMPS (a MUltifrontal Massively Parallel sparse direct Solver) as sparse linear solver. To this end, please follow these steps (only for Linux machines):

1 - Open a terminal and navigate to the folder redbKIT/FEM_library/LinearSolver/Mumps

2 - Launch the install script

$ sh INSTALL.sh

This script automatically download and install into a local folder Metis, Scotch, OpenBlas and finally MUMPS libraries. To check that the MUMPS Matlab interface was correcly compiled, open Matlab, navigate to the folder redbKIT/FEM_library/LinearSolver/Mumps/Libraries/MUMPS/MUMPS_5.0.1/MATLAB and run the simple_example.