v2206: New and updated boundary conditions

Improved turbulent digital filter condition

TOP

The turbulentDigitalFilterInlet boundary condition has been refactored, simplified and improved:

  • The condition is extended to produce synthetic fluctuations of scalars, e.g. temperature or contaminant concentrations.
  • New input-entry types:
    • Mean and Reynolds stresses have become PatchFunction1 type​.
    • Time-variant input for mean and Reynolds stresses is enabled.
    • Number of input entries has been considerably reduced.​
  • Mapping fluctuations onto an inlet patch is improved and generalised​
    • Users can select an AMI mapping method for the mapping operation
  • Domain rotations/translations are improved​.
    • Users can set a local coordinate system​.
  • Adjustable time-step is enabled for the forward-stepwise method option​.
  • Parallelisation and scaling are improved​.
  • Restart is improved​.
  • Taylor's frozen turbulence assumption is removed for the streamwise integral scale calculations.

A set of results obtained from the oneCellThickPlaneChannel tutorial (plot script available to users) can be seen below:

Digital-filter method (DFM) - only vector

Digital-filter method (DFM) - only scalar

Digital-filter method (DFM) - vector+scalar

Forward-stepwise method (FSM) - only vector

Forward-stepwise method (FSM) - only scalar

Forward-stepwise method (FSM) - vector+scalar

Source code

Tutorial

Merge request

References

  • Xie, Z. T., Hayden, P., & Wood, C. R. (2013). Large-eddy simulation of approaching-flow stratification on dispersion over arrays of buildings. Atmospheric Environment, 71, 64-74. DOI:10.1016/j.atmosenv.2013.01.054
  • Okaze, T., & Mochida, A. (2017). Cholesky decomposition–based generation of artificial inflow turbulence including scalar fluctuation. Computers & Fluids, 159, 23-32. DOI:10.1016/j.compfluid.2017.09.005

New outlet-mapped inlet condition

TOP

The outletMappedUniformInlet boundary condition has been improved for time-delayed inlet-outlet recirculations and generalised input:

  • Arbitrary number of outlets can now be connected to a single inlet.
  • Each inlet can be connected to different and arbitrary combinations of outlets.
  • The optional filtration-fraction and offset entries are upgraded to the Function1 type.
  • Time-delayed recirculation is enabled by a new optional time-delay entry of Function1 type.
  • Each inlet can now have an optional base inlet-field as a PatchFunction1 type.
  • Boundary condition can be used for all field types: scalars, vectors, tensors etc.

A minimal example of this boundary condition can be seen below:

<patchName>
{
    // Mandatory entries
    type            outletMappedUniformInlet;

    outlets
    {
        <outletName.1>
        {
            fraction    <Function1<scalar>>;
            offset      <Function1<Type>>;
            timeDelay   <Function1<scalar>>;
        }
        <outletName.2>
        {
            fraction    <Function1<scalar>>;
            offset      <Function1<Type>>;
            timeDelay   <Function1<scalar>>;
        }
        ...
    }

    // Optional entries
    uniformValue    <PatchFunction1<Type>>;
    phi             phi;

    // Inherited entries
    ...
}

Source code

Tutorial

Merge request

New specie adsorption conditions

TOP

Two new boundary conditions to model sorption processes at a fluid/solid interface have been added, named speciesSorption and enthalpySorption. These conditions should be used with compressible, multicomponent solvers such as rhoReactingFoam which allow for the solution of multi-component, compressible, turbulent flows.

speciesSorption has an option to select the sorption model and specify the corresponding model parameters. One model is based on the adsorption equilibrium model (Langmuir) and the other is based on kinetics, i.e. a first order model.

The species boundary condition keeps stored the amount of adsorbed and desorbed species to the surface over time.

base
{
    type                speciesSorption;
    equilibriumModel    Langmuir;
    kinematicModel      PseudoFirstOrder;
    kabs                10;                 // [1/sec]
    kl                  0.01;               // [1/mol]
    max                 0.1;                // [mol/Kg]
    thickness           uniform 1e-3;       // [m]
    rhoS                2000;               // [kg/m3]
    value               $internalField;
}

Where:

  • kabs : absorption coefficient
  • kl : Langmuir coefficient
  • max : proportional coefficient for equilibrium at the wall for Langmuir model
  • thickness : thickness of the solid
  • rhoS : solid density

It is important to note that the kinetic model provides a source per kg of solid mass [mol/kg/sec]. To calculate the source rate to the species [kg/m3/sec] it is necessary to know the mass of the solid wall where the species is absorbed.

This condition is a zero gradient type for the species at the wall; therefore, the source for the species is added via an fvOption which applies the source to the cells next to the patch.

In the fvOptions dictionary, it is specified as:


patchCellsSource
{
    type            patchCellsSource;
    species         O2;
}

The enthalpySorption condition is applied to the temperature field and accounts for the heat addition or removal associated with the species adsorption via two models: estimated and calculated.

  • estimated: enthalpy adsorbed is calculated by the user inputs: C and Hvap
  • calculated: requires a lookup table of mass load vs enthalpy
base
{
    type                enthalpySorption;
    enthalpyModel       calculated;
    enthalpyTable
    {
        type            table;
        values          ((0 0)(1 50));
    }
    C                   2;
    species             O2;
    includeHs           true;
    value               $internalField;
}

where:

  • enthalpyModel: absorption model (calculated/estimated)
  • enthalpyTable : table for calculated model
  • C: estimated model constant include
  • Hs: include sensitive enthalpy for species
  • species: species being considered

Tutorials

Source code