This repository contains the source of the dissertation A modular framework for modeling and optimizing chromatographic processes. It is written using Jupyter Book, with executable MyST notebooks for the analyses and generated figures.
The study code used by the dissertation is included as pinned Git submodules under studies/.
The generated CADET-RDM result archives are separate artifacts and are linked from the corresponding study repositories.
Clone the repository with its study submodules:
git clone --recurse-submodules https://github.com/schmoelder/diss.git
cd dissIf the repository was cloned without submodules, initialize them afterwards:
git submodule update --init --recursiveCreate and activate the Jupyter Book build environment:
conda env create -f environment.yml
conda activate dissThe dissertation build expects the study result caches under:
studies/parameter_estimation/output_cached/
studies/operating_modes/output_cached/
The Jupyter Book build does not recompute the study campaigns; it loads cached results and uses the study code for post-processing and figure generation. These caches are generated by running the study repositories or by materializing the archived CADET-RDM output data. The study source repositories and their output repositories document the exact commands, pinned environments, and output branches used for the reported results.
Build the HTML version:
jb build doc/Build the PDF version:
jb build doc/ --builder pdflatexTo force Sphinx to rewrite all outputs, use:
jb build doc/ --builder pdflatex --allNote that --all does not re-execute the notebooks.
The notebook cache is keyed on the content of the code cells, so a build with --all still reports "Using cached notebook" and reuses the stored outputs.
Changes to imported helper modules under doc/_ext/ or in the study submodules are invisible to that cache, because they leave the code cells untouched.
A build can therefore combine current sources with stale figures without showing it in the PDF.
To actually re-execute, invalidate the cache rather than the Sphinx output:
rm -rf doc/_build/.jupyter_cacheFor a single notebook, edit one of its code cells instead, for example by adding a line such as print("figure update 1") and incrementing the counter on later runs.
Both approaches change what the cache is keyed on; --all does not.