Skip to main content

speciesSorption

Description

The speciesSorption is a boundary condition that provides a first-order zero-gradient condition for a given scalar field to model time-dependent adsorption-desorption processes.

dcdt=kads(ceqcabs) \frac{d c}{d t} = k_{ads} (c_{eq} - c_{abs})

where:

PropertyDescription
ceqc_{eq}Equilibrium concentration
cabsc_{abs}Absorbed at wall
kadsk_{ads}Adsorption rate constant [1/s]
ceq=cmaxklcint1+klcint c_{eq} = c_{max} \frac{k_l \, c_{int}}{1 + k_l \, c_{int}}

where:

PropertyDescription
cmaxc_{max}Maximum concentration
klk_lLangmuir constant
cintc_{int}Local cell value concentration

Usage

The condition requires entries in both the boundary and field files.

Boundary file

<patchName>
{
type patch;
...
}

Field file

<patchName>
{
// Mandatory entries
type speciesSorption;
equilibriumModel <word>;
kinematicModel <word>;
kabs <scalar>;
kl <scalar>;
max <scalar>;
thickness <PatchFunction1<scalar>>;
rhoS <scalar>;

// Optional entries
dfldp <scalarField>;
mass <scalarField>;
pName <word>;

// Inherited entries
...
}

where:

PropertyDescriptionTypeRequiredDefault
typeType name: speciesSorptionwordyes-
equilibriumModelEquilibrium modelwordyes-
kinematicModelKinematic modelwordyes-
kabsAdsorption rate constant [1/s]scalaryes-
klLangmuir constant [1/Pa]scalaryes-
maxMaximum concentation at wall [mol/kg]scalaryes-
thicknessSolid thickness along the patchPatchFunction1<scalar>yes-
rhoSSolid densityscalaryes-
dfldpSource on cells next to patchscalarFieldnoZero
massAbsorbed mass per kg of absorbent [mol/kg]scalarFieldnoZero
pNameName of operand pressure fieldwordnop

Options for the equilibriumModel entry:

PropertyDescription
LangmuirLangmuir model

Options for the kinematicModel entry:

PropertyDescription
PseudoFirstOrderPseudo first-order model

The inherited entries are elaborated in:

  • zeroGradientFvPatchFields.H
  • PatchFunction1.H
  • boundarySourcePatch.H

Further information

Tutorial:

Source code:

API:

History: Introduced in version v2112