Counter-Current Chromatography in CADET


Recently, we implemented a ‘Multi-Channel-Transport Model’ in CADET. The model is useful for modelling tracer transport in plant root system and is based on a publication by Bühler et al.: A class of compartmental models for long-distance tracer transport in plants.
The code for the implementation was just merged into master and will be part of the next release. To use this feature, please compile the source yourself (for information see here).

The Model

The model (see Fig. 1) considers a set of N parallel compartments with a convective flux velocity v. An exchange rate E is used to describe the transport of individual components between the different compartments. In addition, axial dispersion and chemical reactions can be considered in the model.

Application to Counter-Current Chromatography (CCC)

If in the model, we set N=2, we can consider one compartment as a stationary phase (e.g. by setting v_1 = 0) , and the other compartment as mobile phase. By setting appropriate values for the exchange matrix E, we can also use this model for counter current chromatography with a linear isotherm model. This can be combined with all other features of the CADET framework, e.g. gradients in the boundary conditions, connecting multiple unit operations (e.g. for modelling tubing), as well as the parameter estimation engine CADET-Match, and the process optimization addon CADET-Process.

Limitations and challenges

  • Parameters need to be transformed from “Volume” world to “Column” world, i.e. find corresponding values for length, cross section area, and flow rate.
  • Phase ratio cannot change during runtime.
  • Currently, only a linear relationship between two phases can be modeled. This would require some C++ coding on our side. But this is also very interesting and in line with other current developments
  • Kinetic transport limitations need to be considered in the absolute value of the entries in E, the equilibrium is given by the ratio e_{ij}/e_{ji}.


Here you find a jupyter notebook with a working demonstration. Please note that the parameters are just for demonstration purposes and to get things up and running. If you have some useful values, this would be helpful.

CCC_Demo.ipynb (183.5 KB)
(Also, if you need help installing Python/JupyterNotebook, let me know!)



  • A. Foucault, Centrifugal partition chromatography, Dekker, New York, N.Y., 1994.
  • A. Berthod, Countercurrent chromatography: The support-free liquid phase, 2002.

Operation modes for LLC

Mathematical Models (mostly cell model):

Other Links

1 Like

In the future, I will work on models for liquid-liquid extraction in CADET. As a first task, I want to get familiar with CCC modelling in CADET and CADET-Process. To do this, I reconstructed the data from:
Gerigk et al. (2023). In this paper, @melanie.gerigk created a stage model in Matlab to reconstruct experiment data from a liquid-liquid chromatography experiment. As an alternative and potentially faster model, I used a Lumpedrate model without pores, zero dispersion and upwind discretization scheme. With that method, I was able to reconstruct the result from the paper. In the Figure below you can see the CADET simulations with the experiemntal data from Figure 5 in the paper.
A quick not optimized time analysis on my laptop (32 GB, i7 1360p) showed that the LRM was on average around 85x (7s vs. 10 min) faster than the stage model.
The plan is now to implement the CCC model with the MCT unit from abouve. With this we can include more details, like counter current flows in different phase.