Close

17th February 2014

OpenFOAM 2.3.0: Physical Modelling

Particle Tracking

In previous versions of OpenFOAM, patch injection models would inject new parcels at locations between the centres of the boundary face and near-wall cells, leading to a parcel distribution with an ordered structure which would persist for some time unless dispersion was applied. In v2.3.0, particles injected at patches are randomly distributed across the patch faces, reducing ordering in the particle distribution considerably. The example below shows mesh geometry on the left, the centre image shows particle injection behaviour from v2.2.2, and the right shows the equivalent behaviour in v2.3.0. Ordering in the particle distribution, evidently based on the mesh structure in the centre images, is clearly removed in the images on the right.

injectionModelsVertical
injectionModelsHorizontal

The cloud function object input specification has been overhauled in v2.3.0 to allow multiple objects of the same type, and to be consistent with the main function object specification in the controlDict file. Examples of cloud function objects can be found in the examples listed at the end of this section.

A new suppressionCollision collision model for the reacting multi-phase parcel has been added. This model can be used to deactivate the particle devolitisation and combustion models based on the outcome of an inter-particle collision event.

User-input has been simplified by requiring the user to specify only the constant properties used by the models that the user activates in the simulation. For example the verticalChannel example for the reactingParcelFoam tutorial now only uses the following constantProperties entries in the reactingCloud1Properties dictionary

constantProperties
{
    rho0            1000;
    T0              350;
    Cp0             4100;

    constantVolume  false;
}

Source code

  • lagrangianIntermediate library
    $FOAM_SRC/lagrangian/intermediate

Examples

  • cyclone
    $FOAM_TUTORIALS/MPPICFoam/cyclone
  • injection channel
    $FOAM_TUTORIALS/MPPICFoam/injectionChannel
  • particleCollector function object
    $FOAM_TUTORIALS/lagrangian/reactingParcelFilmFoam/splashPanel
  • facePostProcessing and patchPostProcessing function objects
    $FOAM_TUTORIALS/lagrangian/reactingParcelFoam/filter
  • particleTracks function object
    $FOAM_TUTORIALS/lagrangian/simpleReactingParcelFoam/verticalChannel

Surface Film Modelling

Surface film modelling was first introduced in OpenFOAM v2.0.0 to predict the complex behaviour of thin films. In v2.3.0, the following new models are available.

  • Thermodynamics models for density, surface tension, thermal conductivity, and specific heat capacity, where options include: constant, constant values; liquid, calculated using a liquid whose thermophysical modelling is specified.
  • Film turbulence models: laminar, reproducing the earlier surface shear models (now deprecated).
  • Viscosity models, including: constant, constant value; liquid, calculated using a liquid whose thermophysical modelling is specified; thixotropic, based on the evolution of a structural parameter, which is modelled by a transport equation.
  • Phase change, including: solidification where the film solidifies at a prescribed temperature by transferring its mass to a separate accumulated mass field for post-processing.

In addition, a new indicator field, alpha can be used to identify where the film is present.

Source code

  • libsurfaceFileModels library
    $FOAM_SRC/regionModels/surfaceFilmModels
  • hot boxes
    $FOAM_TUTORIALS/lagrangian/reactingParcelFilmFoam/hotBoxes

Co-ordinate System Specification

The behaviour of flow and heat transfer in porous media is usually approximated by applying models, e.g. source terms in equations, to a region of the mesh occupied by the porous media, instead of generating a mesh which resolves the detailed geometry of the porous media. The model properties are typically anisotropic, due to structural alignment, e.g. of the pores. Physical properties are inevitably specified in a co-ordinate system of the porous media. The local co-ordinate system of such a region is generally different from the global, Cartesian co-ordinate system of the underlying geometry and equations. We must therefore transform the properties from local co-ordinates to the global co-ordinate system in which the models, e.g. source terms, are specified.

The local region, e.g. of the porous media, is specified in OpenFOAM using a cellZone. Previous versions of OpenFOAM supported only fixed, Cartesian co-ordinates for the cellZone, such that a single transformation was applied to the model properties for all cells within it. In the latest version, the user can ascribe a local cylindrical co-ordinate system to the cellZone, suitable when the directional bias of the properties follows the radial or circumferential directions.

The following examples show the file syntax for specifying properties in local Cartesian and cylindrical co-ordinate systems, respectively. In the first example, the local Cartesian coordinateSystem is specified by a coordinateRotation of type axesRotation. The viscous momentum sink coefficients of (5e7 -1000 -1000) are specified in local Cartesian coordinate axes specified by e1 and e2, with the third axis calculated as e1 ^ e2.

explicitPorositySourceCoeffs
{
    type            DarcyForchheimer;
    cellZone        porosity;

    DarcyForchheimerCoeffs
    {
        d   d [0 -2 0 0 0 0 0] (5e7 -1000 -1000);
        f   f [0 -1 0 0 0 0 0] (0 0 0);

        coordinateSystem
        {
            type    cartesian;  // global co-ordinate system (redundant)
            origin  (0 0 0);    // redundant in this case
            coordinateRotation
            {
                type    axesRotation; // local Cartesian co-ordinates
                e1      (0.70710678 0.70710678 0);
                e2      (0 0 1);
            }
        }
    }
} 

In the second example, the local cylindrical coordinateSystem is specified by a coordinateRotation of type localAxesRotation. In this case, the user specifies: e3, the axis of rotation (z) of the local cylindrical coordinate system; and, the origin, from which the radial direction (r) is constructed by the vector from the origin to local cell centre. In this case, the viscous momentum sink (0 1e5 0) denotes a value of 1e5 in the circumferential direction (θ) and zero in the radial and axial directions.

explicitPorositySourceCoeffs
{
    type            DarcyForchheimer;
    cellZone        porosity;

    DarcyForchheimerCoeffs
    {
        d   d [0 -2 0 0 0 0 0] (0 1e5 0);
        f   f [0 -1 0 0 0 0 0] (0 0 0);

        coordinateSystem
        {
            type    cartesian;
            origin  (0 0 0);
            coordinateRotation
            {
                type    localAxesRotation;
                e3      (0 0 1);
            }
        }
    }
} 

Turbulence Modelling

Wall functions typically apply constraints to the near wall cells. For corner cells sharing more than one wall patch face, the value was previously assigned on the basis of the last wall to apply the condition wins. In v2.3.0 the corner values are now calculated using an average value, with contributions from all participating wall patches.

Combustion/Pyrolysis

Soot formation and destruction is a complex chemical process involving many reaction steps, which has proved to be a difficult process to predict accurately. For industrial purposes simplified models have been used. This version includes the mixture fraction soot model which provides a simple one-step state model for soot prediction. The amount of soot produced is determined by a single step chemical reaction of fuel and oxidant, where the user specifies the soot yield.

Currently, the soot concentration is not considered into the thermodynamics of the system and it is not being independently transported by the flow but, instead, its spatial distribution is mapped on one of the products of the one-step combustion. The soot volume fraction is not taken into account as absorption mechanism for the radiation.

A new filmPyrolysisRadiativeCoupledMixed boundary condition has been implemented to provide thermal coupling between a solid region using a pyrolysis model and a fluid region using a film model. This BC takes into account the thickness of the liquid film on the solid wall in order to exchange heat either with the film or with the main fluid region. A radiative heat flux is included on the heat balance at the wall.

Source code

  • filmPyrolysisRadiativeCoupledMixed library
    $FOAM_SRC/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed
  • libradiationModels library, soot models
    $FOAM_SRC/thermophysicalModels/radiationModels/submodels/sootModel
  • small pool fire 2D
    $FOAM_TUTORIALS/combustion/fireFoam/les/smallPoolFire2D
  • flame spread water suppression panel
    $FOAM_TUTORIALS/combustion/fireFoam/les/flameSpreadWaterSuppressionPanel