Framework Overview#
CADET-Process is written in Python, a free and open-source programming language that gained a lot of popularity in the scientific community in recent years. One of the main advantages of Python is the easy integration of other scientific and numerical packages. This makes it especially useful for a modular approach such as the one presented. The following figure gives a general overview of the program structure and workflow.
The Process
is an abstract representation of the chromatographic process configuration including the operational and design parameters.
Processes can be simulated using a Simulator
which solves the underlying equations.
The Simulator
adapter acts as an abstract interface to external solvers (e.g. CADET) and translates the internal configuration to the corresponding format of the solver.
After the computation is finished, the SimulationResults
are returned and can be further evaluated (see Process Simulation).
If a StationarityEvaluator
is configured to test for cyclic stationarity, more chromatographic cycles are be simulated until stationarity is reached (see Cyclic Stationarity).
For processing the SimulationResults
, different modules are provided.
For example, they can be compared to experimental data (or other simulations) using a Comparator
which computes residuals such as the sum of squared errors (see also Comparing Simulation Results with Reference Data).
Moreover, the Fractionator
module automatically determines fractionation times of the simulated chromatograms and determines process performance indicators such as purity, yield, and productivity (see Product Fractionation).
These metrics can be used as objectives in an OptimizationProblem
class which serves to configure optimization studies.
Here, any process parameter can be added as optimization variable and the evaluation methods can be used to construct objectives and constraint functions.
This enables many different scenarios such as process optimization and parameter estimation.
Again, an abstract Optimizer
provides an interface to external optimization algorithms such as U-NSGA-3
(see Optimization).