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

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). The ordering of the state vector is defined in Unit Operation state vector ordering, similar to 2D models but with channels instead of radial column direction.

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 reconstruction methods (FV specific)), and Nonlinear solver for consistent initialization.