Skip to content

Commit

Permalink
Update MCT documentation (#230)
Browse files Browse the repository at this point in the history
* Adjust MCT interface doc

* Add general MCT equations to modelling section

* Add Link to Modelling from MCT Interface

* Move tracer transport to own use-case subsection

-------

Co-authored-by: Jan Breuer <[email protected]>
  • Loading branch information
hannahlanzrath and jbreue16 committed Jun 28, 2024
1 parent 953fab5 commit 048459a
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 26 deletions.
1 change: 1 addition & 0 deletions doc/interface/unit_operations/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ Unit Operations
2d_general_rate_model
cstr
radial_flow_models
multi_channel_transport_model

31 changes: 20 additions & 11 deletions doc/interface/unit_operations/multi_channel_transport_model.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
.. _multi_channel_transport_model_config:

Multichannel Transport model (MCT model)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
========================================

Group /input/model/unit_XXX - UNIT_TYPE = MULTI_CHANNEL_TRANSPORT
-----------------------------------------------------------------

For information on model equations, refer to :ref:`multi_channel_transport_model`.

``UNIT_TYPE``

Expand Down Expand Up @@ -129,14 +134,6 @@ Multichannel Transport model (MCT model)
================ ======================== ===============================================
**Type:** double **Range:** :math:`[0,1]` **Length:** :math:`\texttt{NCHANNEL}*\texttt{NCHANNEL}*\texttt{NCOMP}`
================ ======================== ===============================================

``NCOL``

Number of axial column discretization cells

============= ========================= =============
**Type:** int **Range:** :math:`\geq 1` **Length:** 1
============= ========================= =============

``NCHANNEL``

Expand All @@ -158,6 +155,10 @@ Multichannel Transport model (MCT model)
================ ====================== ======================================
**Type:** double **Range:** :math:`> 0` **Length:** :math:`\texttt{NCHANNEL}`
================ ====================== ======================================


Group /input/model/unit_XXX/discretization - UNIT_TYPE = MULTI_CHANNEL_TRANSPORT
--------------------------------------------------------------------------------

``USE_ANALYTIC_JACOBIAN``

Expand All @@ -167,6 +168,14 @@ Multichannel Transport model (MCT model)
**Type:** int **Range:** :math:`\{0, 1\}` **Length:** 1
============= =========================== =============

``NCOL``

Number of axial column discretization cells

============= ========================= =============
**Type:** int **Range:** :math:`\geq 1` **Length:** 1
============= ========================= =============

``LINEAR_SOLVER_BULK``

Linear solver used for the sparse column bulk block. This field is optional, the best available method is selected (i.e., sparse direct solver if possible). Valid values are:
Expand All @@ -181,10 +190,10 @@ Multichannel Transport model (MCT model)

``RECONSTRUCTION``

Type of reconstruction method for fluxes
Type of reconstruction method for FV fluxes

================ ================================ =============
**Type:** string **Range:** :math:`\texttt{WENO}` **Length:** 1
================ ================================ =============


For further discretization parameters, see also :ref:`flux_restruction_methods` (FV specific)), and :ref:`non_consistency_solver_parameters`.
59 changes: 44 additions & 15 deletions doc/modelling/unit_operations/multi_channel_transport_model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,67 @@
Multichannel Transport model (MCT model)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



The Multichannel Transport (MCT) model in CADET is based on a class of compartment models introduced by Jonas Bühler et al. :cite:`Buehler2014`, which was originally developed in the field of plant sciences.
There it is used to determine transport and storage parameters of radioactive labelled tracer molecules from positron emission tomography (PET) or magnetic resonance imaging (MRI) based experimental data.
The model represents main functions of vascular transport pathways: axial transport of the tracer, diffusion in axial direction, lateral exchange between compartments and storage of tracer in compartments. Here, the axial direction represents the length of the stem of the plant and the lateral dimension its cross section. In the MCT context, the compartments of the model class are also referred to as channels.

The same model equations arise in describing other biological and technical processes outside of the field of plant sciences, where solutes are transported and exchanged between spatially separated compartments, for example liquid-liquid chromatography (LLC). Here, components in a mixture are separated based on their interactions with two immiscible phases of a biphasic solvent system :cite:`Morley2020`. The MCT model represents these phases by channels with respective transport and exchange properties. While the current implementation only covers linear driving forces for the exchange processes, the reaction module in CADET allows to add non-linear driving forces for the exchange processes and other chemical reactions in the channels.

The model class consists of :math:`N` one-dimensional spatially parallel channels (see :numref:`fig-model-class`).
In each channel tracer can be transported with flux velocities :math:`v_i` while undergoing axial diffusion: :math:`d_i`.
Tracer can be laterally exchanged between any pair of channels :math:`i` and :math:`j` with rate constant :math:`e_{ij}`.
The MCT model equations are given for all channels :math:`l \in \{1, \dots, N_k\}` and components :math:`i \in \{1, \dots, N_c\}` by

.. math::
\begin{aligned}
\frac{\partial c_{i,l}^\ell}{\partial t}
=
- u_l \frac{\partial c_{i,l}^\ell}{\partial z}
+ D_{\text{ax},i,l} \frac{\partial^2 c_{i,l}^\ell}{\partial z^2}
+ \sum_{k=1}^{N_k} e^i_{kl} c_{i,k}^\ell A_k / A_l - e^i_{lk} c_{i,l}^\ell
+ f_{\text{react},i,l}\left( c^\ell_l \right),
\end{aligned}
where :math:`e^i_{lk}` denotes the exchange rate of component :math:`i` from channel :math:`l` to channel :math:`k`, and :math:`A_l` denotes the cross section area of channel :math:`l`.
The equations are complemented by Danckwerts boundary conditions :cite:`Danckwerts1953`

.. math::
\begin{aligned}
u_l c^\ell_{\text{in},i,l}(t) &= u_l c^\ell_{i,l}(t,0) - D_{\text{ax},i,l} \frac{\partial c^\ell_{i,l}}{\partial z}(t, 0) & \forall t > 0,\\
\frac{\partial c^\ell_{i,l}}{\partial z}(t, L) &= 0 & \forall t > 0.
\end{aligned}
The MCT model describes :math:`N_k` one-dimensional spatially parallel channels (see :numref:`fig-model-class`).
In each channel :math:`l`, molecules of different species :math:`i`, represented by a liquid phase concentration :math:`c^\ell_{i,l}`, can be transported with flux velocities :math:`v_{i,l}` while undergoing axial diffusion: :math:`D_{\text{ax},i,l}`.
Molecules can be laterally exchanged between any pair of channels :math:`l` and :math:`k` with rate constant :math:`e^i_{lk}`.
If reactions are considered, the term :math:`f_{\text{react},i,l}\left(c^\ell_l\right)` represents the net change of concentration :math:`c^\ell_{il}` due to reactions in channel :math:`l` involving component :math:`i`.

.. _fig-model-class:
.. figure:: multi_channel_transport_model_class.png

Illustration of the Multichannel Transport model class and relevant parameters.
Figure taken from Jonas Bühler et al. :cite:`Buehler2014`.

The model class is defined by a system of partial differential equations:
The cross-section area :math:`A_N` is individually specified for each channel (see :numref:`fig-variable-areas`). The MCT is agnostic to the shape of these cross sections, while their ratio determines the distribution of the volumetric flow.


.. _fig-variable-areas:
.. figure:: mct_variable_areas.png

Scheme of exemplary channels with different cross section areas and arbitrary exchange between channels.

Use-case: Tracer transport in plants
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The MCT can be used to model tracer transport in plants, following Jonas Bühler et al. :cite:`Buehler2014`.
There, the model class is defined by a system of partial differential equations:

.. math::
\frac{\partial \boldsymbol{\rho}(x,t)}{\partial t} = \left({A}^T-{V}\frac{\partial}{\partial x}+{D}\frac{\partial^2}{\partial x^2} \right){\boldsymbol{\rho}(x,t)}
- :math:`\boldsymbol{\rho}=({\rho}_1 \dots {\rho}_N)^T` is the tracer density within each channel :math:`N` at position :math:`x` and time :math:`t`.
- The coupling matrix :math:`A` contains exchange rates :math:`e_{ij}` describing the lateral tracer transport from channel :math:`i` to channel :math:`j`. All diagonal elements :math:`e_{ii}` in the first term are zero indicating there is no tracer exchange of one channel with itself. The second term ensures mass conservation and removes exchanged tracer from each channel respectively, by subtracting the sum of all exchange rates of a row (and therefore channel) from the diagonal. The third term describes the decay of a radioactive tracer at a tracer specific rate :math:`\lambda`.
- The coupling matrix :math:`A` contains exchange rates :math:`e_{lk}` describing the lateral tracer transport from channel :math:`l` to channel :math:`k`. All diagonal elements :math:`e_{ll}` in the first term are zero indicating there is no tracer exchange of one channel with itself. The second term ensures mass conservation and removes exchanged tracer from each channel respectively, by subtracting the sum of all exchange rates of a row (and therefore channel) from the diagonal. The third term describes the decay of a radioactive tracer at a tracer specific rate :math:`\lambda`.

.. math::
Expand All @@ -45,7 +80,7 @@ The model class is defined by a system of partial differential equations:
\end{bmatrix}-
\lambda {I}
- The diagonal matrix :math:`V` contains the flux velocities :math:`v_{i}` for each channel.
- The diagonal matrix :math:`V` contains the flux velocities :math:`v_{l}` for each channel.

.. math::
Expand All @@ -55,7 +90,7 @@ The model class is defined by a system of partial differential equations:
0 & & v_N
\end{bmatrix}
- The diagolal matrix :math:`D` contains the dispersion coefficients :math:`d_{i}` for each channel.
- The diagolal matrix :math:`D` contains the dispersion coefficients :math:`d_{l}` for each channel.

.. math::
Expand All @@ -70,13 +105,7 @@ All parameters can be zero to exclude the respective mechanism from the model.
A chart of all resulting valid models of the model family can be found in Bühler et al. :cite:`Buehler2014`.


The cross-section area :math:`A_N` is individually specified for each channel (see :numref:`fig-variable-areas`). The MCT is agnostic to the shape of these cross sections, while their ratio determines the distribution of the volumetric flow.


.. _fig-variable-areas:
.. figure:: mct_variable_areas.png

Scheme of exemplary channels with different cross section areas and arbitrary exchange between channels.


For information on model parameters see :ref:`multi_channel_transport_model_config`.

0 comments on commit 048459a

Please sign in to comment.