RBniCSx
RBniCSx - reduced order modelling in FEniCSx
Install / Use
/learn @RBniCS/RBniCSxREADME
RBniCSx - reduced order modelling in FEniCSx
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.
Prerequisites
RBniCSx has a few build dependencies that must be installed manually. Follow the appropriate instructions below based on how dolfinx was installed.
If dolfinx was installed via conda
conda install -c conda-forge nanobind scikit-build-core
If dolfinx was installed via apt
apt install python3-nanobind python3-scikit-build-core
If dolfinx was installed via Docker or built from source
python3 -m pip install nanobind scikit-build-core[pyproject]
Installation
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]'
Running 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
