RBniCSx contains an implementation in FEniCSx of several reduced order modelling techniques for parametrized problems. RBniCSx is still at a very early development stage compared to legacy RBniCS, and many features are presently missing.
RBniCSx is currently developed and maintained at Università Cattolica del Sacro Cuore by Prof. Francesco Ballarin.
Like all core FEniCSx components, RBniCSx is freely available under the GNU LGPL, version 3.
RBniCSx has a few build dependencies that must be installed manually. Follow the appropriate instructions below based on how dolfinx
was installed.
conda install -c conda-forge nanobind scikit-build-core
apt install python3-nanobind python3-scikit-build-core
python3 -m pip install nanobind scikit-build-core[pyproject]
RBniCSx is available on PyPI. Use pip
extras to install additional dependencies needed for the tutorials.
python3 -m pip install --no-build-isolation 'rbnicsx[backends,tutorials]'
Tutorials are parameterized, meaning that 01_thermal_block.ipynb
actually contains several cases, e.g. 01_thermal_block[reduction_method=POD Galerkin,online_efficient=True].ipynb
and 01_thermal_block[reduction_method=Reduced Basis,online_efficient=True].ipynb
.
To run the tutorials, first clone the RBniCSx repository. Then, ensure you check out the tag that corresponds to the version of RBniCSx currently installed. Finally, generate all tutorials according to the parameterization.
git clone https://github.com/RBniCS/RBniCSx.git
cd RBniCSx
RBNICSX_VERSION=$(python3 -c "import rbnicsx; print(rbnicsx.__version__)")
git checkout ${RBNICSX_VERSION}
cd tutorials
python3 generate_tutorials.py