**
You're reading the documentation for a development version.
For the latest released version, please have a look at v4.4.0.
**

# General Rate Model¶

## Group /input/model/unit_XXX - UNIT_TYPE - GENERAL_RATE_MODEL¶

For information on model equations, refer to General rate model (GRM).

`UNIT_TYPE`

Specifies the type of unit operation model

Type:string

Range:\(\texttt{GENERAL_RATE_MODEL}\)

Length:1

`NCOMP`

Number of chemical components in the chromatographic medium

Type:int

Range:\(\geq 1\)

Length:1

`ADSORPTION_MODEL`

Specifies the type of binding model of each particle type (or of all particle types if length is \(1\))

Type:string

Range:Binding models

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

`ADSORPTION_MODEL_MULTIPLEX`

Multiplexing mode of \(\texttt{ADSORPTION_MODEL}\). If set to \(0\), each particle type has a different binding model and the length of \(\texttt{ADSORPTION_MODEL}\) is \(\texttt{NPARTYPE}\). If set to \(1\), all particle types share the same binding model and the length of \(\texttt{ADSORPTION_MODEL}\) is \(1\). This field is optional and inferred from the length of \(\texttt{ADSORPTION_MODEL}\) if left out.

Type:int

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

Length:1

`NBOUND`

Number of bound states for each component in each particle type in type-major ordering

Type:int

Range:\(\geq 0\)

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

`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

`REACTION_MODEL_PARTICLES`

Specifies the type of reaction model of each particle type (or of all particle types if length is \(1\)). The model is configured in the subgroup \(\texttt{reaction_particle}\), or \(\texttt{reaction_particle_XXX}\) in case of disabled multiplexing.

Type:string

Range:See Section Reaction models

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

`REACTION_MODEL_PARTICLES_MULTIPLEX`

Multiplexing mode of \(\texttt{REACTION_MODEL_PARTICLES}\). If set to \(0\), each particle type has a different reaction model and the length of \(\texttt{REACTION_MODEL_PARTICLES}\) is \(\texttt{NPARTYPE}\). If set to \(1\), all particle types share the same reaction model and the length of \(\texttt{REACTION_MODEL_PARTICLES}\) is \(1\). This field is optional and inferred from the length of \(\texttt{REACTION_MODEL_PARTICLES}\) if left out.

Type:int

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

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_CP`

Initial concentrations for each component in the bead liquid phase (optional, \(\texttt{INIT_C}\) is used if left out). The length of this field can be \(\texttt{NCOMP}\) (same values for each particle type) or \(\texttt{NPARTYPE} \cdot \texttt{NCOMP}\) Values for each particle type can only be given when \(\texttt{ADSORPTION_MODEL_MULTIPLEX}\) is \(0\). The ordering is type-major.

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

Type:double

Range:\(\geq 0\)

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

`INIT_Q`

Initial concentrations for each bound state of each component in the bead solid phase. If \(\texttt{ADSORPTION_MODEL_MULTIPLEX}\) is \(0\), values for each particle type are required in type-component-major ordering (length is \(\texttt{NTOTALBND}\)). If \(\texttt{ADSORPTION_MODEL_MULTIPLEX}\) is \(1\), values for one particle type are required in component-major ordering (length is \(\sum_{i = 0}^{\texttt{NCOMP} - 1} \texttt{NBND}_i\)).

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

Type:double

Range:\(\geq 0\)

`INIT_STATE`

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

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:

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

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

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

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

`COL_LENGTH`

Column length

Unit:\(\mathrm{m}\)

Type:double

Range:\(> 0\)

Length:1

`COL_POROSITY`

Column porosity

Type:double

Range:\((0,1]\)

Length:1

`FILM_DIFFUSION`

Film diffusion coefficients for each component of each particle type

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

Type:double

Range:\(\geq 0\)

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

`FILM_DIFFUSION_MULTIPLEX`

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

Component-dependent, type-independent, section-independent; length of \(\texttt{FILM_DIFFUSION}\) is \(\texttt{NCOMP}\)

Component-dependent, type-independent, section-dependent; length of \(\texttt{FILM_DIFFUSION}\) is \(\texttt{NCOMP} \cdot \texttt{NSEC}\); ordering is section-major

Component-dependent, type-dependent, section-independent; length of \(\texttt{FILM_DIFFUSION}\) is \(\texttt{NCOMP} \cdot \texttt{NPARTYPE}\); ordering is type-major

Component-dependent, type-dependent, section-dependent; length of \(\texttt{FILM_DIFFUSION}\) is \(\texttt{NCOMP} \cdot \texttt{NPARTYPE} \cdot \texttt{NSEC}\); ordering is section-type-major

Type:int

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

Length:1

`PAR_POROSITY`

Particle porosity of all particle types or for each particle type

Type:double

Range:\((0,1]\)

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

`PAR_RADIUS`

Particle radius of all particle types or for each particle type

Unit:\(\mathrm{m}\)

Type:double

Range:\(>0\)

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

`PAR_CORERADIUS`

Particle core radius of all particle types or for each particle type (optional, defaults to \(\mathrm{m}\))

Unit:\(\mathrm{m}\)

Type:double

Range:\([0, \texttt{PAR_RADIUS})\)

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

`PORE_ACCESSIBILITY`

Pore accessibility factor of each component in each particle type (optional, defaults to \(1\)). Note: Should not be used in combination with any binding model!

Type:double

Range:\((0, 1]\)

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

`PORE_ACCESSIBILITY_MULTIPLEX`

Multiplexing mode of \(\texttt{PORE_ACCESSIBILITY}\). Determines whether \(\texttt{PORE_ACCESSIBILITY}\) is treated as component-, type-, and/or section-independent. This field is optional. When left out, multiplexing behavior is inferred from the length of \(\texttt{PORE_ACCESSIBILITY}\). Valid modes are: 0. Component-dependent, type-independent, section-independent; length of \(\texttt{PORE_ACCESSIBILITY}\) is \(\texttt{NCOMP}\) 1. Component-dependent, type-independent, section-dependent; length of \(\texttt{PORE_ACCESSIBILITY}\) is \(\texttt{NCOMP} \cdot \texttt{NSEC}\); ordering is section-major 2. Component-dependent, type-dependent, section-independent; length of \(\texttt{PORE_ACCESSIBILITY}\) is \(\texttt{NCOMP} \cdot \texttt{NPARTYPE}\); ordering is type-major 3. Component-dependent, type-dependent, section-dependent; length of \(\texttt{PORE_ACCESSIBILITY}\) is \(\texttt{NCOMP} \cdot \texttt{NPARTYPE} \cdot \texttt{NSEC}\); ordering is section-type-major

Type:int

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

Length:1

`PAR_DIFFUSION`

Effective particle diffusion coefficients of each component in each particle type

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

Type:double

Range:\(\geq 0\)

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

`PAR_DIFFUSION_MULTIPLEX`

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

Component-dependent, type-independent, section-independent; length of \(\texttt{PAR_DIFFUSION}\) is \(\texttt{NCOMP}\)

Component-dependent, type-independent, section-dependent; length of \(\texttt{PAR_DIFFUSION}\) is \(\texttt{NCOMP} \cdot \texttt{NSEC}\); ordering is section-major

Component-dependent, type-dependent, section-independent; length of \(\texttt{PAR_DIFFUSION}\) is \(\texttt{NCOMP} \cdot \texttt{NPARTYPE}\); ordering is type-major

Component-dependent, type-dependent, section-dependent; length of \(\texttt{PAR_DIFFUSION}\) is \(\texttt{NCOMP} \cdot \texttt{NPARTYPE} \cdot \texttt{NSEC}\); ordering is section-type-major

Type:int

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

Length:1

`PAR_SURFDIFFUSION`

Particle surface diffusion coefficients of each bound state of each component in each particle type (optional, defaults to all 0 \(\mathrm{m}_{\mathrm{SP}}^{2}\,\mathrm{s}^{-1}\))

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

Type:double

Range:\(\geq 0\)

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

`PAR_SURFDIFFUSION_MULTIPLEX`

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

Component-dependent, type-independent, section-independent; length of \(\texttt{PAR_SURFDIFFUSION}\) is \(\texttt{NBND}\); ordering is component-major

Component-dependent, type-independent, section-dependent; length of \(\texttt{PAR_SURFDIFFUSION}\) is \(\texttt{NBND} \cdot \texttt{NSEC}\); ordering is section-component-major

Component-dependent, type-dependent, section-independent; length of \(\texttt{PAR_SURFDIFFUSION}\) is \(\texttt{NTOTALBND}\); ordering is type-component-major

Component-dependent, type-dependent, section-dependent; length of \(\texttt{PAR_SURFDIFFUSION}\) is \(\texttt{NTOTALBND} \cdot \texttt{NSEC}\); ordering is section-type-component-major

`PAR_SURFDIFFUSION_MULTIPLEX`

**Type:**int**Range:**\(\{ 0, \dots, 3 \}\)**Length:**1

`PAR_SURFDIFFUSION_DEP`

Parameter dependence of \(\texttt{PAR_SURFDIFFUSION}\). Valid dependencies are:

\(\texttt{NONE}\) Original parameter is used unmodified.

\(\texttt{LIQUID_SALT_EXPONENTIAL}\) Original parameter is modified by exponential law of liquid phase salt concentration.

\(\texttt{LIQUID_SALT_POWER}\) Original parameter is modified by power law of liquid phase salt concentration.

\(\texttt{LIQUID_SALT_COLLOIDAL_AFFINITY}\) Original parameter is modified by colloidal binding affinity based on liquid phase salt concentration.

Optional: If left out, no parameter dependence is assumed and the original surface diffusion coefficients are used unmodified.

Type:string

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

`PAR_SURFDIFFUSION_EXPFACTOR`

Factor \(\texttt{p1}\) in exponential law particle surface diffusion relation \(D_{s, i, m} = \tilde{D}_{s, i, m} p_{1, i, m} exp \left(p_{2, i, m} c_{0}^{p} \right)\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient. Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_EXPONENTIAL}\).

Type:double

Range:\(\geq 0\)

Length:\(\texttt{NBOUND}\)

`PAR_SURFDIFFUSION_EXPARGMULT`

Factor \(\texttt{p2}\) in exponential law particle surface diffusion relation \(D_{s, i, m} = \tilde{D}_{s, i, m} p_{1, i, m} exp \left(p_{2, i, m} c_{0}^{p} \right)\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient. Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_EXPONENTIAL}\).

Type:double

Range:\(\mathbb{R}\)

Length:\(\texttt{NBOUND}\)

`PAR_SURFDIFFUSION_POWFACTOR`

Factor \(\texttt{p1}\) in power law particle surface diffusion relation \(D_{s, i, m} = \tilde{D}_{s, i, m} p_{1, i, m} \left( c_{0}^{p} \right)^{p_{2, i, m}}\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient. Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_POWER}\).

Type:double

Range:\(\geq 0\)

Length:\(\texttt{NBOUND}\)

`PAR_SURFDIFFUSION_POWEXP`

Fjactor \(\texttt{p2}\) in power law particle surface diffusion relation \(D_{s, i, m} = \tilde{D}_{s, i, m} p_{1, i, m} \left( c_{0}^{p} \right)^{p_{2, i, m}}\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient. Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_POWER}\).

Type:double

Range:\(\mathbb{R}\)

Length:\(\texttt{NBOUND}\)

`PAR_SURFDIFFUSION_LOGKEQFACTOR`

Factor \(\texttt{p1}\) in colloidal affinity law particle surface diffusion relation \(D_{s, i, m} = \tilde{D}_{s, i, m} \left[ p_{4, i, m} \left( k_{i, m} \left( c_{0}^{p} \right) \right)^{p_{5, i, m}} p_{6, i, m} exp \left( p_{7, i, m} k_{i, m} \left( c_{0}^{p} \right) \right) \right]\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient and \(k_{i, m} \left( c_{0}^{p} \right) = p_{1, i, m}\left( c_{0}^{p} \right)^{p_{2, i, m}} + p_{3, i, m}\). Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_COLLOIDAL_AFFINITY}\).

Type:double

Range:\(\mathbb{R}\)

Length:\(\texttt{NBOUND}\)

`PAR_SURFDIFFUSION_LOGKEQEXP`

Factor \(\texttt{p2}\) in colloidal affinity law particle surface diffusion relation \(D_{s, i, m} = \tilde{D}_{s, i, m} \left[ p_{4, i, m} \left( k_{i, m} \left( c_{0}^{p} \right) \right)^{p_{5, i, m}} p_{6, i, m} exp \left( p_{7, i, m} k_{i, m} \left( c_{0}^{p} \right) \right) \right]\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient and \(k_{i, m} \left( c_{0}^{p} \right) = p_{1, i, m}\left( c_{0}^{p} \right)^{p_{2, i, m}} + p_{3, i, m}\). Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_COLLOIDAL_AFFINITY}\).

Type:double

Range:\(\mathbb{R}\)

Length:\(\texttt{NBOUND}\)

`PAR_SURFDIFFUSION_LOGKEQCONST`

Factor \(\texttt{p3}\) in colloidal affinity law particle surface diffusion relation \(D_{s, i, m} = \tilde{D}_{s, i, m} \left[ p_{4, i, m} \left( k_{i, m} \left( c_{0}^{p} \right) \right)^{p_{5, i, m}} p_{6, i, m} exp \left( p_{7, i, m} k_{i, m} \left( c_{0}^{p} \right) \right) \right]\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient and \(k_{i, m} \left( c_{0}^{p} \right) = p_{1, i, m}\left( c_{0}^{p} \right)^{p_{2, i, m}} + p_{3, i, m}\). Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_COLLOIDAL_AFFINITY}\).

Type:double

Range:\(\mathbb{R}\)

Length:\(\texttt{NBOUND}\)

`PAR_SURFDIFFUSION_POWFACTOR`

Factor \(\texttt{p4}\) in colloidal affinity law particle surface diffusion relation \(D_{s, i, m} = \tilde{D}_{s, i, m} \left[ p_{4, i, m} \left( k_{i, m} \left( c_{0}^{p} \right) \right)^{p_{5, i, m}} p_{6, i, m} exp \left( p_{7, i, m} k_{i, m} \left( c_{0}^{p} \right) \right) \right]\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient and \(k_{i, m} \left( c_{0}^{p} \right) = p_{1, i, m}\left( c_{0}^{p} \right)^{p_{2, i, m}} + p_{3, i, m}\). Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_COLLOIDAL_AFFINITY}\).

Type:double

Range:\(\mathbb{R}\)

Length:\(\texttt{NBOUND}\)

`PAR_SURFDIFFUSION_POWEXP`

Factor \(\texttt{p5}\) in colloidal affinity law particle surface diffusion relation \(D_{s, i, m} = \tilde{D}_{s, i, m} \left[ p_{4, i, m} \left( k_{i, m} \left( c_{0}^{p} \right) \right)^{p_{5, i, m}} p_{6, i, m} exp \left( p_{7, i, m} k_{i, m} \left( c_{0}^{p} \right) \right) \right]\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient and \(k_{i, m} \left( c_{0}^{p} \right) = p_{1, i, m}\left( c_{0}^{p} \right)^{p_{2, i, m}} + p_{3, i, m}\). Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_COLLOIDAL_AFFINITY}\).

Type:double

Range:\(\mathbb{R}\)

Length:\(\texttt{NBOUND}\)

`PAR_SURFDIFFUSION_EXPFACTOR`

\(D_{s, i, m} = \tilde{D}_{s, i, m} \left[ p_{4, i, m} \left( k_{i, m} \left( c_{0}^{p} \right) \right)^{p_{5, i, m}} p_{6, i, m} exp \left( p_{7, i, m} k_{i, m} \left( c_{0}^{p} \right) \right) \right]\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient and \(k_{i, m} \left( c_{0}^{p} \right) = p_{1, i, m}\left( c_{0}^{p} \right)^{p_{2, i, m}} + p_{3, i, m}\). Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_COLLOIDAL_AFFINITY}\).

Type:double

Range:\(\mathbb{R}\)

Length:\(\texttt{NBOUND}\)

`PAR_SURFDIFFUSION_POWEXP`

Factor \(\texttt{p5}\) in colloidal affinity law particle surface diffusion relation \(D_{s, i, m} = \tilde{D}_{s, i, m} \left[ p_{4, i, m} \left( k_{i, m} \left( c_{0}^{p} \right) \right)^{p_{5, i, m}} p_{6, i, m} exp \left( p_{7, i, m} k_{i, m} \left( c_{0}^{p} \right) \right) \right]\) where \(\tilde{D}_{s, i, m}\) is the original surface diffusion coefficient and \(k_{i, m} \left( c_{0}^{p} \right) = p_{1, i, m}\left( c_{0}^{p} \right)^{p_{2, i, m}} + p_{3, i, m}\). Only required if \(\texttt{PAR_SURFDIFFUSION_DEP}\) is \(\texttt{LIQUID_SALT_COLLOIDAL_AFFINITY}\).

Type:double

Range:\(\mathbb{R}\)

Length:\(\texttt{NBOUND}\)

`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}\)

`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

`NPARTYPE`

Number of particle types. Optional, inferred from the length of \(\texttt{NPAR}\) or \(\texttt{NBOUND}\) if left out.

Type:int

Range:\(\geq 1\)

Length:1

`PAR_GEOM`

Specifies the particle geometry for all or each particle type. Valid values are \(\texttt{SPHERE}\), \(\texttt{CYLINDER}\), \(\texttt{SLAB}\). Optional, defaults to \(\texttt{SPHERE}\).

Type:string

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

`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}\)

## Group /input/model/unit_XXX/discretization - UNIT_TYPE - GENERAL_RATE_MODEL¶

`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

`PAR_DISC_TYPE`

Specifies the discretization scheme inside the particles for all or each particle type. Valid values are \(\texttt{EQUIDISTANT_PAR}\), \(\texttt{EQUIVOLUME_PAR}\), and \(\texttt{USER_DEFINED_PAR}\).

Type:string

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

`PAR_DISC_VECTOR`

Node coordinates for the cell boundaries (ignored if \(\texttt{PAR_DISC_TYPE} \neq \texttt{USER_DEFINED_PAR}\)). The coordinates are relative and have to include the endpoints \(0\) and \(1\). They are later linearly mapped to the true radial range \([r_{c,j}, r_{p,j}]\). The coordinates for each particle type are appended to one long vector in type-major ordering.

Type:double

Range:\([0,1]\)

Length:\(\sum_i (\texttt{NPAR}_i + 1)\)

## Spatial discretization - Numerical Methods¶

CADET offers two spatial discretization methods: Finite Volumes (FV) and Discontinuous Galerkin (DG). Only the input fields for the chosen method need to be specified. While both methods approximate the same solution to the same underlying model, they may differ in terms of computational performance. Generally, FV is more performant for solutions with steep gradients or discontinuities, while DG excels for rather smooth solutions. We note that DG is only faster in the sense that less spatial discrete points are required to achieve the same accuracy as FV. For the same number of discrete points, DG will be slower, but 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

## Finite Volumes (Default)¶

`NCOL`

Number of axial column discretization points

Type:int

Range:\(\geq 1\)

Length:1

`NPAR`

Number of particle (radial) discretization points for each particle type

Type:int

Range:\(\geq 1\)

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

`PAR_BOUNDARY_ORDER`

Order of accuracy of outer particle boundary condition. Optional, defaults to \(2\).

Type:int

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

Length:1

`RECONSTRUCTION`

Type of reconstruction method for fluxes

Type:string

Range:\(\texttt{WENO}\)

Length:1

`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{PAR_SURFDIFFUSION}\) are fixed if the parameters are zero. If the parameters are fixed to zero (\(\texttt{FIX_ZERO_SURFACE_DIFFUSION} = 1\), \(\texttt{PAR_SURFDIFFUSION} = 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 discretization parameters, see also Flux reconstruction methods (FV specific)), and Nonlinear solver for consistent initialization.

## 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

`PAR_POLYDEG`

DG particle (radial) polynomial degree. Optional, defaults to 3. The total number of particle (radial) discrete points is given by (

`PARPOLYDEG`

+ 1 ) *`PAR_NELEM`

.

Type:int

Range:\(\geq 1\)

Length:1

`PAR_NELEM`

Number of particle (radial) discretization DG elements for each particle type. For the particle discretization, it is usually most performant to fix

`PAR_NELEM`

= 1 and to increase the polynomial degree for more accuracy.

Type:int

Range:\(\geq 1\)

Length:\(1\) / \(\texttt{NPARTYPE}\)For further discretization parameters, see also Nonlinear solver for consistent initialization.