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: GENERAL_RATE_MODEL

Length: 1

NCOMP

Number of chemical components in the chromatographic medium

Type: int

Range: 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/NPARTYPE

ADSORPTION_MODEL_MULTIPLEX

Multiplexing mode of ADSORPTION_MODEL. If set to 0, each particle type has a different binding model and the length of ADSORPTION_MODEL is NPARTYPE. If set to 1, all particle types share the same binding model and the length of ADSORPTION_MODEL is 1. This field is optional and inferred from the length of 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: 0

Length: NCOMP / NPARTYPENCOMP

REACTION_MODEL_BULK

Specifies the type of reaction model of the bulk volume. The model is configured in the subgroup 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 reaction_particle, or reaction_particle_XXX in case of disabled multiplexing.

Type: string

Range: See Section Reaction models

Length: 1/NPARTYPE

REACTION_MODEL_PARTICLES_MULTIPLEX

Multiplexing mode of REACTION_MODEL_PARTICLES. If set to 0, each particle type has a different reaction model and the length of REACTION_MODEL_PARTICLES is NPARTYPE. If set to 1, all particle types share the same reaction model and the length of REACTION_MODEL_PARTICLES is 1. This field is optional and inferred from the length of 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: molmIV3

Type: double

Range: 0

Length: NCOMP

INIT_CP

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

Unit: molmMP3

Type: double

Range: 0

Length: NCOMP/NPARTYPENCOMP

INIT_Q

Initial concentrations for each bound state of each component in the bead solid phase. If ADSORPTION_MODEL_MULTIPLEX is 0, values for each particle type are required in type-component-major ordering (length is NTOTALBND). If ADSORPTION_MODEL_MULTIPLEX is 1, values for one particle type are required in component-major ordering (length is i=0NCOMP1NBNDi).

Unit: molmSP3

Type: double

Range: 0

INIT_STATE

Full state vector for initialization (optional, INIT_C, INIT_CP, and INIT_Q will be ignored; if length is 2NDOF, then the second half is used for time derivatives)

Unit: various

Type: double

Range: R

Length: NDOF/2NDOF

COL_DISPERSION

Axial dispersion coefficient

Unit: mIV2s1

Type: double

Range: 0

Length: see COL_DISPERSION_MULTIPLEX

COL_DISPERSION_MULTIPLEX

Multiplexing mode of COL_DISPERSION. Determines whether 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 COL_DISPERSION. Valid modes are:

  1. Component-independent, section-independent; length of COL_DISPERSION is 1

  2. Component-dependent, section-independent; length of COL_DISPERSION is NCOMP

  3. Component-independent, section-dependent; length of COL_DISPERSION is NSEC

  4. Component-dependent, section-dependent; length of COL_DISPERSION is NCOMPNSEC; ordering is section-major

Type: int

Range: {0,,3}

Length: 1

COL_LENGTH

Column length

Unit: 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: ms1

Type: double

Range: 0

Length: see FILM_DIFFUSION_MULTIPLEX

FILM_DIFFUSION_MULTIPLEX

Multiplexing mode of FILM_DIFFUSION. Determines whether 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 FILM_DIFFUSION. Valid modes are:

  1. Component-dependent, type-independent, section-independent; length of FILM_DIFFUSION is NCOMP

  2. Component-dependent, type-independent, section-dependent; length of FILM_DIFFUSION is NCOMPNSEC; ordering is section-major

  3. Component-dependent, type-dependent, section-independent; length of FILM_DIFFUSION is NCOMPNPARTYPE; ordering is type-major

  4. Component-dependent, type-dependent, section-dependent; length of FILM_DIFFUSION is NCOMPNPARTYPENSEC; ordering is section-type-major

Type: int

Range: {0,,3}

Length: 1

PAR_POROSITY

Particle porosity of all particle types or for each particle type

Type: double

Range: (0,1]

Length: 1/NPARTYPE

PAR_RADIUS

Particle radius of all particle types or for each particle type

Unit: m

Type: double

Range: >0

Length: 1/NPARTYPE

PAR_CORERADIUS

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

Unit: m

Type: double

Range: [0,PAR_RADIUS)

Length: 1/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 PORE_ACCESSIBILITY_MULTIPLEX

PORE_ACCESSIBILITY_MULTIPLEX

Multiplexing mode of PORE_ACCESSIBILITY. Determines whether 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 PORE_ACCESSIBILITY. Valid modes are: 0. Component-dependent, type-independent, section-independent; length of PORE_ACCESSIBILITY is NCOMP 1. Component-dependent, type-independent, section-dependent; length of PORE_ACCESSIBILITY is NCOMPNSEC; ordering is section-major 2. Component-dependent, type-dependent, section-independent; length of PORE_ACCESSIBILITY is NCOMPNPARTYPE; ordering is type-major 3. Component-dependent, type-dependent, section-dependent; length of PORE_ACCESSIBILITY is NCOMPNPARTYPENSEC; ordering is section-type-major

Type: int

Range: {0,,3}

Length: 1

PAR_DIFFUSION

Effective particle diffusion coefficients of each component in each particle type

Unit: mMP2s1

Type: double

Range: >0

Length: see PAR_DIFFUSION_MULTIPLEX

PAR_DIFFUSION_MULTIPLEX

Multiplexing mode of PAR_DIFFUSION. Determines whether 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 PAR_DIFFUSION. Valid modes are:

  1. Component-dependent, type-independent, section-independent; length of PAR_DIFFUSION is NCOMP

  2. Component-dependent, type-independent, section-dependent; length of PAR_DIFFUSION is NCOMPNSEC; ordering is section-major

  3. Component-dependent, type-dependent, section-independent; length of PAR_DIFFUSION is NCOMPNPARTYPE; ordering is type-major

  4. Component-dependent, type-dependent, section-dependent; length of PAR_DIFFUSION is NCOMPNPARTYPENSEC; ordering is section-type-major

Type: int

Range: {0,,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 mSP2s1)

Unit: mSP2s1

Type: double

Range: 0

Length: see PAR_SURFDIFFUSION_MULTIPLEX

PAR_SURFDIFFUSION_MULTIPLEX

Multiplexing mode of PAR_SURFDIFFUSION. Determines whether 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 PAR_SURFDIFFUSION. Valid modes are:

  1. Component-dependent, type-independent, section-independent; length of PAR_SURFDIFFUSION is NBND; ordering is component-major

  2. Component-dependent, type-independent, section-dependent; length of PAR_SURFDIFFUSION is NBNDNSEC; ordering is section-component-major

  3. Component-dependent, type-dependent, section-independent; length of PAR_SURFDIFFUSION is NTOTALBND; ordering is type-component-major

  4. Component-dependent, type-dependent, section-dependent; length of PAR_SURFDIFFUSION is NTOTALBNDNSEC; ordering is section-type-component-major

PAR_SURFDIFFUSION_MULTIPLEX

Type: int

Range: {0,,3}

Length: 1

PAR_SURFDIFFUSION_DEP

Parameter dependence of PAR_SURFDIFFUSION, please refer to Parameter Dependencies, section parameter-state dependencies, for more information.

VELOCITY

Interstitial velocity of the mobile phase (optional if CROSS_SECTION_AREA is present, see Section Specification of flow rate / velocity and direction) Unit: ms1

Type: double

Range: R

Length: 1/NSEC

CROSS_SECTION_AREA

Cross section area of the column (optional if VELOCITY is present, see Section Specification of flow rate / velocity and direction) Unit: m2

Type: double

Range: >0

Length: 1

NPARTYPE

Number of particle types. Optional, inferred from the length of NPAR or NBOUND if left out.

Type: int

Range: 1

Length: 1

PAR_GEOM

Specifies the particle geometry for all or each particle type. Valid values are SPHERE, CYLINDER, SLAB. Optional, defaults to SPHERE.

Type: string

Length: 1 / 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 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: NPARTYPE/NCOLNPARTYPE

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 EQUIDISTANT_PAR, EQUIVOLUME_PAR, and USER_DEFINED_PAR.

Type: string

Length: 1 / NPARTYPE

PAR_DISC_VECTOR

Node coordinates for the cell boundaries (ignored if PAR_DISC_TYPEUSER_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 [rc,j,rp,j]. The coordinates for each particle type are appended to one long vector in type-major ordering.

Type: double

Range: [0,1]

Length: i(NPARi+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 FV

Type: string

Range: {FV,DG}

Length: 1

Finite Volumes (Default)

NCOL

Number of axial column discretization points

Type: int

Range: 1

Length: 1

NPAR

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

Type: int

Range: 1

Length: 1 / 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: 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: MAX_KRYLOV=NCOLNCOMPNPARTYPE)

Type: int

Range: {0,,NCOLNCOMPNPARTYPE}

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: 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: 0

Length: 1

FIX_ZERO_SURFACE_DIFFUSION

Determines whether the surface diffusion parameters PAR_SURFDIFFUSION are fixed if the parameters are zero. If the parameters are fixed to zero (FIX_ZERO_SURFACE_DIFFUSION=1, 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 Nd{3,4,5} is recommended. The total number of axial discrete points is given by (POLYDEG + 1 ) * NELEM

Type: int

Range: 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: 1

Length: 1

NCOL

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

Type: int

Range: 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: 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: 1

Length: 1 / NPARTYPE

When using the DG method for the GRM, we 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 discretization parameters, see also Nonlinear solver for consistent initialization.