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.

\[\frac{d c}{d t} = k_{ads} (c_{eq} - c_{abs})\]

where:

Property Description
\(c_{eq}\) Equilibrium concentration
\(c_{abs}\) Absorbed at wall
\(k_{ads}\) Adsorption rate constant [1/s]
\[c_{eq} = c_{max} \frac{k_l \, c_{int}}{1 + k_l \, c_{int}}\]

where:

Property Description
\(c_{max}\) Maximum concentration
\(k_l\) Langmuir constant
\(c_{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:

Property Description Type Required Default
type Type name: speciesSorption word yes -
equilibriumModel Equilibrium model word yes -
kinematicModel Kinematic model word yes -
kabs Adsorption rate constant [1/s] scalar yes -
kl Langmuir constant [1/Pa] scalar yes -
max Maximum concentation at wall [mol/kg] scalar yes -
thickness Solid thickness along the patch PatchFunction1<scalar> yes -
rhoS Solid density scalar yes -
dfldp Source on cells next to patch scalarField no Zero
mass Absorbed mass per kg of absorbent [mol/kg] scalarField no Zero
pName Name of operand pressure field word no p

Options for the equilibriumModel entry:

Property Description
Langmuir Langmuir model

Options for the kinematicModel entry:

Property Description
PseudoFirstOrder Pseudo 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