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.
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
andpatchPostProcessing
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