You're reading the documentation for a development version. For the latest released version, please have a look at v5.0.1.

Multichannel Transport model (MCT model)

Group /input/model/unit_XXX - UNIT_TYPE = MULTI_CHANNEL_TRANSPORT

For information on model equations, refer to Multichannel Transport model (MCT model).

UNIT_TYPE

Specifies the type of unit operation model

Type: string

Range: \(\texttt{MULTI_CHANNEL_TRANSPORT}\)

Length: 1

NCOMP

Number of chemical components in the chromatographic medium

Type: int

Range: \(\geq 1\)

Length: 1

REACTION_MODEL_BULK

Specifies the type of reaction model of the bulk volume. The model is configured in the subgroup \(\texttt{reaction_bulk}\).

Type: string

Range: See Section Reaction models

Length: 1

INIT_C

Initial concentrations for each component in all channels of the bulk mobile phase (length \(\texttt{NCOMP}\)), or for each component in each channel (length \(\texttt{NCOMP} \cdot \texttt{NCHANNEL}\), ordering channel-major)

Unit: \(\mathrm{mol}\,\mathrm{m}^{-3}\)

Type: double

Range: \(\geq 0\)

Length: \(\texttt{NCOMP} / \texttt{NCOMP} \cdot \texttt{NCHANNEL}\)

INIT_STATE

Full state vector for initialization (optional, \(\texttt{INIT_C}\) will be ignored; if length is \(2\texttt{NDOF}\), then the second half is used for time derivatives)

Unit: \(various\)

Type: double

Range: \(\mathbb{R}\)

Length: \(\texttt{NDOF} / 2\texttt{NDOF}\)

COL_DISPERSION

Axial dispersion coefficient. In case of a spatially inhomogeneous setting, the \(\texttt{SENS_PARTYPE}\) field is used for indexing the channel when specifying parameter sensitivities.

Unit: \(\mathrm{m}^{2}\,\mathrm{s}^{-1}\)

Type: double

Range: \(\geq 0\)

Length: see \(\texttt{COL_DISPERSION_MULTIPLEX}\)

COL_DISPERSION_MULTIPLEX

Multiplexing mode of \(\texttt{COL_DISPERSION}\). Determines whether \(\texttt{COL_DISPERSION}\) is treated as component-, channel-, and/or section-independent. This field is optional. When left out, multiplexing behavior is inferred from the length of \(\texttt{COL_DISPERSION}\). Valid modes are:

  1. Component-independent, channel-independent, section-independent; length of \(\texttt{COL_DISPERSION}\) is 1

  2. Component-independent, channel-dependent, section-independent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCHANNEL}\)

  3. Component-dependent, channel-independent, section-independent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCOMP}\)

  4. Component-dependent, channel-dependent, section-independent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCOMP} \cdot \texttt{NCHANNEL}\); ordering is channel-major

  5. Component-independent, channel-independent, section-dependent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NSEC}\)

  6. Component-independent, channel-dependent, section-dependent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCHANNEL} \cdot \texttt{NSEC}\); ordering is section-major

  7. Component-dependent, channel-independent, section-independent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCOMP} \cdot \texttt{NSEC}\); ordering is section-major

  8. Component-dependent, channel-dependent, section-dependent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCOMP} \cdot \texttt{NCHANNEL} \cdot \texttt{NSEC}\); ordering is section-channel-major

Type: int

Range: \(\{0, \dots, 7 \}\)

Length: 1

COL_LENGTH

Column length

Unit: \(\mathrm{m}\)

Type: double

Range: \(> 0\)

Length: 1

VELOCITY

Velocity

Unit: \(\mathrm{m}\,\mathrm{s}^{-1}\)

Indicates flow direction in each channel (forward if value is positive, backward if value is negative), see Section Specification of flow rate / velocity and direction). In case of a spatially inhomogeneous setting, the \(\texttt{SENS_PARTYPE}\) field is used for indexing the channel when specifying parameter sensitivities.

Type: double

Range: \(\mathbb{R}\)

Length: see \(\texttt{VELOCITY_MULTIPLEX}\)

VELOCITY_MULTIPLEX

Multiplexing mode of \(\texttt{VELOCITY}\). Determines whether \(\texttt{VELOCITY}\) is treated as channel- and/or section-independent. This field is optional. When left out, multiplexing behavior is inferred from the length of \(\texttt{VELOCITY}\). Valid modes are:

  1. Channel-independent, section-independent; length of \(\texttt{VELOCITY}\) is 1

  2. Channel-dependent, section-independent; length of \(\texttt{VELOCITY}\) is \(\texttt{NCHANNEL}\)

  3. Section-dependent; length of \(\texttt{VELOCITY}\) is \(\texttt{NSEC}\)

  4. Channel-dependent, section-dependent; length of \(\texttt{VELOCITY}\) is \(\texttt{NCHANNEL} \cdot \texttt{NSEC}\); ordering is section-major

Type: int

Range: \(\{0, \dots, 3 \}\)

Length: 1

EXCHANGE_MATRIX

Exchange matrix

Unit: \(\mathrm{s}^{-1}\)

Ordered list containing all exchange rates \(e^k_{ij}\) for component \(k\) from compartment \(i\) to \(j\) based on the exchange matrix \(E^k\). The vector ordering is source channel - destination channel - component (i.e. i-j-k) major.

\[\begin{split}E^k=\begin{bmatrix} 0 & e^k_{12} & \dots & e^k_{1N} \\ e^k_{21} & \ddots & & \vdots\\ \vdots & & \ddots & e^k_{(N-1)N}\\ e^k_{N1} & \dots & e^k_{N(N-1)} & 0 \end{bmatrix}\end{split}\]

For addressing the exchange rates as a parameter senstivity, the mapping is as follows:

  • \(\texttt{SENS_BOUNDPHASE}\) Channel from

  • \(\texttt{SENS_PARTYPE}\) Channel to

Type: double

Range: \([0,1]\)

Length: \(\texttt{NCHANNEL}*\texttt{NCHANNEL}*\texttt{NCOMP}\)

NCHANNEL

Number of channels \(ij\)

Type: int

Range: \(\geq 1\)

Length: 1

CHANNEL_CROSS_SECTION_AREAS

Cross section areas

Unit: \(\mathrm{m}^{2}\)

Defines the cross section area of each channel

Type: double

Range: \(> 0\)

Length: \(\texttt{NCHANNEL}\)

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

USE_ANALYTIC_JACOBIAN

Determines whether analytically computed Jacobian matrix (faster) is used (value is 1) instead of Jacobians generated by algorithmic differentiation (slower, value is 0)

Type: int

Range: \(\{0, 1\}\)

Length: 1

NCOL

Number of axial column discretization cells

Type: int

Range: \(\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:

  • \(\texttt{DENSE}\) Converts the sparse matrix into a banded matrix and uses regular LAPACK. Slow and memory intensive, but always available.

  • \(\texttt{UMFPACK}\) Uses the UMFPACK sparse direct solver (LU decomposition) from SuiteSparse. Fast, but has to be enabled when compiling and requires UMFPACK library.

  • \(\texttt{SUPERLU}\) Uses the SuperLU sparse direct solver (LU decomposition). Fast, but has to be enabled when compiling and requires SuperLU library.

Type: string

Range: \(\{\texttt{DENSE},\texttt{UMFPACK},\texttt{SUPERLU}\}\)

Length: 1

RECONSTRUCTION

Type of reconstruction method for FV fluxes

Type: string

Range: \(\texttt{WENO}\)

Length: 1

For further discretization parameters, see also flux_restruction_methods (FV specific)), and Nonlinear solver for consistent initialization.