Skip to content

Rocking Bioreactor 2D — Simulation Suite

Fidelity-10 simulation of the rocking bioreactor (θ=7°, 32.5rpm, lab frame — tank rocks, water finds its level), colored by |u|.

Two-phase CFD solver for a rocking bioreactor, implemented in Basilisk and forked from Kim, Harris, and Cimpeanu's original driver code (rcsc-group/BioReactor). This is not the code behind the paper below — it has since diverged with checkpoint-restart chaining, multi-harmonic and horizontal forcing, and a multi-fidelity Bayesian optimization suite, and matching the paper's own published numbers is a separate, ongoing effort (see validating against Kim et al.).

Publication: Kim M., Harris D.M., Cimpeanu R. (2025). doi: 10.1016/j.ijmultiphaseflow.2025.105375 | preprint: arXiv: 2504.05421

The solver resolves two-phase (VOF) hydrodynamics and dissolved-oxygen transport (Henry's law), producing kLa (volumetric oxygen mass-transfer coefficient) and shear-stress KPIs as optimization objectives. A multi-fidelity Bayesian optimization suite sits on top, using a KRR-LR-GPR surrogate to trade off cheap low-fidelity screening runs against expensive high-fidelity corrections.

How this documentation is organized

New to CFD/HPC terminology used throughout? Read the Glossary first. Setting up an environment? See Setup.

Repository layout at a glance

├── src/         # Basilisk solver (BioReactor.c + headers)
├── scripts/     # Python orchestration (simulate, sweep, BO loop, postprocess, ...)
├── examples/    # Runnable, self-contained tutorial companions
├── config/      # YAML/JSON configs for each workflow
├── tests/       # Unit, integration, and numerical-verification tests
├── experiments/ # Sweep metadata, chain manifests, generated figures
├── docs/        # Reference papers (Kim et al. 2024/2025) and the canonical validation case
└── mkdocs.yml   # This documentation site (see Reference → Project structure for the full tree)

See Project structure for the complete annotated tree.