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:
Component-independent, channel-independent, section-independent; length of \(\texttt{COL_DISPERSION}\) is 1
Component-independent, channel-dependent, section-independent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCHANNEL}\)
Component-dependent, channel-independent, section-independent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCOMP}\)
Component-dependent, channel-dependent, section-independent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCOMP} \cdot \texttt{NCHANNEL}\); ordering is channel-major
Component-independent, channel-independent, section-dependent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NSEC}\)
Component-independent, channel-dependent, section-dependent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCHANNEL} \cdot \texttt{NSEC}\); ordering is section-major
Component-dependent, channel-independent, section-independent; length of \(\texttt{COL_DISPERSION}\) is \(\texttt{NCOMP} \cdot \texttt{NSEC}\); ordering is section-major
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:
Channel-independent, section-independent; length of \(\texttt{VELOCITY}\) is 1
Channel-dependent, section-independent; length of \(\texttt{VELOCITY}\) is \(\texttt{NCHANNEL}\)
Section-dependent; length of \(\texttt{VELOCITY}\) is \(\texttt{NSEC}\)
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.