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

Axial Flow Column 1D

Group /input/model/unit_XXX - UNIT_TYPE - COLUMN_MODEL_1D

UNIT_TYPE

Specifies the type of unit operation model

Type: string

Range: \(\texttt{COLUMN_MODEL_1D}\)

Length: 1

NCOMP

Number of chemical components in the chromatographic medium

Type: int

Range: \(\geq 1\)

Length: 1

CROSS_SECTION_AREA

Cross section area of the column (optional if \(\texttt{VELOCITY}\) is present, see Section Specification of flow rate / velocity and direction) Unit: \(\mathrm{m}^{2}\)

Type: double

Range: \(>0\)

Length: 1

COL_LENGTH

Column length

Unit: \(\mathrm{m}\)

Type: double

Range: \(> 0\)

Length: 1

COL_POROSITY

Column porosity

Type: double

Range: \((0,1]\)

Length: 1

NPARTYPE

Number of particle types.

Type: int

Range: \(\geq 1\)

Length: 1

PAR_TYPE_VOLFRAC

Volume fractions of the particle types. The volume fractions can be set for all axial cells together or for each individual axial cell. For each cell, the volume fractions have to sum to \(1\). In case of a spatially inhomogeneous setting, the data is expected in cell-major ordering and the \(\texttt{SENS_SECTION}\) field is used for indexing the axial cell when specifying parameter sensitivities. This field is optional in case of only one particle type.

Type: double

Range: \([0,1]\)

Length: \(\texttt{NPARTYPE} / \texttt{NCOL} \cdot \texttt{NPARTYPE}\)

VELOCITY

Interstitial velocity of the mobile phase (optional if \(\texttt{CROSS_SECTION_AREA}\) is present, see Section Specification of flow rate / velocity and direction) Unit: \(\mathrm{m}\,\mathrm{s}^{-1}\)

Type: double

Range: \(\mathbb{R}\)

Length: \(1 / \texttt{NSEC}\)

COL_DISPERSION

Axial dispersion coefficient

Unit: \(\mathrm{m}_{\mathrm{IV}}^{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- 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, section-independent; length of \(\texttt{COL_DISPERSION}\) is \(1\)

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

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

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

Type: int

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

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 the bulk mobile phase

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

Type: double

Range: \(\geq 0\)

Length: \(\texttt{NCOMP}\)

INIT_STATE

Full state vector for initialization (optional, \(\texttt{INIT_C}\), \(\texttt{INIT_CP}\), and \(\texttt{INIT_CS}\) 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}\)

Group /input/model/unit_XXX/particle_type_XXX

Each particle type is specified in another subgroup particle_type_XXX, see Particle Model.

Group /input/model/unit_XXX/discretization - UNIT_TYPE - COLUMN_MODEL_1D

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

Spatial discretization - Numerical Methods

CADET offers two spatial discretization methods: Finite Volumes (FV) and Discontinuous Galerkin (DG). Each method has it’s own set of input fields. While both methods approximate the same solution to the same underlying model, they may differ in terms of computational performance. With our currently implemented variants of FV and DG, FV perform better for solutions with steep gradients or discontinuities, while DG can be much faster for rather smooth solutions. For the same number of discrete points, DG will generally be slower but often more accurate.

For further information on the choice of discretization methods and their parameters, see Spatial discretization methods.

SPATIAL_METHOD

Spatial discretization method. Optional, defaults to \(\texttt{FV}\)

Type: string

Range: \(\{\texttt{FV}, \texttt{DG}\}\)

Length: 1

Discontinuous Galerkin

POLYDEG

DG polynomial degree. Optional, defaults to 4 and \(N_d \in \{3, 4, 5\}\) is recommended. The total number of axial discrete points is given by (POLYDEG + 1 ) * NELEM

Type: int

Range: \(\geq 1\)

Length: 1

NELEM

Number of axial column discretization DG cellselements. The total number of axial discrete points is given by (POLYDEG + 1 ) * NELEM

Type: int

Range: \(\geq 1\)

Length: 1

NCOL

Number of axial discrete points. Optional and ignored if NELEM is defined. Otherwise, used to calculate NELEM = \(\lfloor\) NCOL / (POLYDEG + 1 ) \(\rfloor\)

Type: int

Range: \(\geq 1\)

Length: 1

EXACT_INTEGRATION

Specifies the DG integration variant. Optional, defaults to 0

Type: int

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

Length: 1

LINEAR_SOLVER

Specifies the linear solver variant used to factorize the semidiscretized system. Optional, defaults to SparseLU. For more information on these solvers, we refer to the Eigen documentation

Type: int

Range: \(\{\texttt{SparseLU}, \texttt{SparseQR}, ..., \texttt{BiCGSTAB}\}\)

Length: 1

When using the DG method, we generally recommend specifying USE_MODIFIED_NEWTON = 1 in Group /solver/time_integrator, i.e. to use the modified Newton method to solve the linear system within the time integrator. For further information on discretization parameters, see also Nonlinear solver for consistent initialization.

Finite Volumes

NCELLS

Number of axial column discretization points, i.e. FV cells

Type: int

Range: \(\geq 1\)

Length: 1

RECONSTRUCTION

Type of reconstruction method for fluxes

Type: string

Range: \(\texttt{WENO}\)

Length: 1

The following FV discretization parameters are only required if particles are present:

GS_TYPE

Type of Gram-Schmidt orthogonalization, see IDAS guide Section 4.5.7.3, p. 41f. A value of \(0\) enables classical Gram-Schmidt, a value of 1 uses modified Gram-Schmidt.

Type: int

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

Length: 1

MAX_KRYLOV

Defines the size of the Krylov subspace in the iterative linear GMRES solver (0: \(\texttt{MAX_KRYLOV} = \texttt{NCOL} \cdot \texttt{NCOMP} \cdot \texttt{NPARTYPE}\))

Type: int

Range: \(\{0, \dots, \texttt{NCOL} \cdot \texttt{NCOMP} \cdot \texttt{NPARTYPE} \}\)

Length: 1

MAX_RESTARTS

Maximum number of restarts in the GMRES algorithm. If lack of memory is not an issue, better use a larger Krylov space than restarts.

Type: int

Range: \(\geq 0\)

Length: 1

SCHUR_SAFETY

Schur safety factor; Influences the tradeoff between linear iterations and nonlinear error control; see IDAS guide Section~2.1 and 5.

Type: double

Range: \(\geq 0\)

Length: 1

FIX_ZERO_SURFACE_DIFFUSION

Determines whether the surface diffusion parameters \(\texttt{SURFACE_DIFFUSION}\) are fixed if the parameters are zero. If the parameters are fixed to zero (\(\texttt{FIX_ZERO_SURFACE_DIFFUSION} = 1\), \(\texttt{SURFACE_DIFFUSION} = 0\)), the parameters must not become non-zero during this or subsequent simulation runs. The internal data structures are optimized for a more efficient simulation. This field is optional and defaults to \(0\) (optimization disabled in favor of flexibility).

Type: int

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

Length: 1

For further information on discretization parameters, see also Flux reconstruction methods (FV specific)), and Nonlinear solver for consistent initialization.