OpenFOAM® v2012: New and updated solvers and physics
New vibroacoustics solver
This releases introduces a new finite area model to solve a thin vibrating shell.
Bending waves are the main contributor to acoustic sound radiation from vibrating shelltype structures. For thin shells of homogenous material the first order motions of vibration are described by the KirchhoffLove plate theory. With reasonable assumptions, this theory reduces to a two dimensional biharmonic wave equation. For vibroacoustic applications this needs to be extended by some damping mechanism to ensure the expected frequency dependency behaviour.
To calculate the sound radiation from the bending wave motion, a straightforward approach is the formulation of a boundary condition for the acoustic wave equation.
acousticFoam
The new acousticFoam solver targets the linearized acoustic pressure equation under the assumptions of an homogeneous and quiescent medium.
Boundary condition to handle vibrating plate and coupling to acousticFoam
The new vibrationShell boundary condition couples the 2D vibrating plate and 3D acoustic equation. It automatically creates a runtime selectable vibrationShellModel which is advanced at every time step as the boundary condition is updated.
This gradienttype condition applies a fixed gradient to the acoustic pressure equation, and also holds the material properties of the flat plate, i.e. rho, E and nu.
{
type vibrationShell;
active true;
p pa; // > acoustic pressure field name
solid
{
rho 2500;
kappa 200;
Cp 600;
Hf 0;
emissivity 0;
E 7e10;
nu 0.22;
}
// Input name of the finite area region
region vibrationShell;
// vibrating plate model
vibrationShellModel KirchhoffShell;
f0 0.04; // > model coefficients
f1 0;
f2 0;
value uniform 0;
}
Vibrating plate model
The only vibrationShellModel available with this release is the KirchhoffShell model where only normal displacements are permitted.
The name of the finite area region is given by the keyword region in the vibrationShell boundary condition. Thus, all the variable solved by the finite area will have a appended _<region> to their name, e.g. the plate thickness, h, will be written pa_<region1>.
The flat plate solution is controlled via /system/faSolution file:
nNonOrthCorr  0; 
nSubCycles  5; 
faOption source mapping from file
Pressure sources are added to the equilibrium plate equation using faOptions, a runtime selectable framework for manipulating equations using the same familiar approach provided by fvOptions.
The new externalFileSource faOption reads files written in the boundaryData format, permitting straightforward space and time data interpolation to the finite area model.
An example usage in system/faOption follows:
{
type externalFileSource;
fieldName ws_vibrationShell; // > field being solved for
tableName p; // > name of the files.
active true;
timeStart 0.001;
duration 0.03;
region vibrationShell;
selectionMode all;
}
This looks for a folder in constant/boundaryData/window/<times>/p and an associated points file.
clampedPlate boundary condition for vibrating plates
The new clampedPlate boundary condition imposes a zero displacement and gradient to the nodes of the plate.
acousticWaveTransmissive boundary condition for acoustic pressure
The new acousticWaveTransmissive condition was introduced, where the acoustic speed is input by the user (and not calculated). As the acoustic equation is solved the Courant number is known and there is no need to introduce an extra convective velocity as the medium is assumed to be still.
 Source code
 $FOAM_SRC/regionFaModels/KirchhoffShell
 Tutorial
 $FOAM_TUTORIALS/compressible/acousticFoam/obliqueAirJet
Incompressible nonuniform density turbulent model for VOF
Many incompressible volume of fluid (VOF) cases solved using the interFoam application suffer from spurious velocities at the phase interface, which lead to wave damping due to turbulent viscosity overproduction. These effects are created, in part, by the large density gradient between phases. Taking into account the variation of density between the phases into the turbulence transport helps to reduce this effect.
A new option has been added to the interFoam and interIsoFoam. solvers. The nonuniform density approach is controlled by the density keyword in the turbulenceProperties dictionary as follows:
density variable;
RAS
{
RASModel kEpsilon;
turbulence on;
printCoeffs on;
}
By default density is set to uniform to recover the behaviour of earlier releases, ensuring backwards compatibility.
 Source code
 $FOAM_SRC/fvOptions/sources/derived/buoyancyTurbSource
 Tutorial
 $FOAM_TUTORIALS/multiphase/interFoam/RAS/damBreak
 Attribution
 This new feature was prompted by Wenyuan Fan who contributed to the present formulation of an incompressible nonuniform density turbulent transport for VOF.
Generalized Newtonian viscosity models
The feature from openfoam.org allows the use of generalized Newtonian models for both compressible and incompressible flows. It forms part of the laminar turbulence framework, controlled using the entries within the laminar subdictionary.
The laminar viscosity is taken from the thermodynamics package for compressible solvers (if available) or from the transportProperties for incompressible solvers.
Note that the option to include viscosity models through the transportDict in incompressible solvers is still available, but will be deprecated in future versions.
The following models are available:
 BirdCarreau
 Casson
 CrossPowerLaw
 HerscheBulkley
 powerLaw
The model is specified in the turbulenceProperties dictionary as follows:
laminar
{
model generalizedNewtonian;
viscosityModel powerLaw;
nuMin 1e06;
nuMax 1;
k 0.02;
n 0.4;
}
 Source code
 $FOAM_SRC/TurbulenceModels/turbulenceModels/laminar/generalizedNewtonian
 Tutorial
 $FOAM_TUTORIALS/compressible/rhoSimpleFoam/squareBendLiqNoNewtonian
$FOAM_TUTORIALS/multiphase/icoReactingMultiPhaseInterFoam/inertMultiphaseMultiComponent  Attribution
 This feature was ported from openfoam.org
New tabulated thermodynamics
This feature from openfoam.org allows the use of a tabulated equation of state (EoS), viscosity transport and thermodynamics.
The tabulated EoS is called icoTabulated and comprises an incompressible formulation, the new thermo functionality is called hTabulated and the transport viscosity model is named tabulated.
As an example, the models are specified in thermophysicalProperties file as follows:
{
type heRhoThermo;
mixture pureMixture;
transport tabulated;
thermo hTabulated;
equationOfState icoTabulated;
specie specie;
energy sensibleEnthalpy;
}
mixture
{
specie
{
nMoles 1;
molWeight 200.9;
}
equationOfState
{
rho
(
(200 13525)
(350 13529)
(400 13520)
);
}
thermodynamics
{
Hf 0;
Sf 0;
Cp
(
(200 139)
(350 140)
(400 145)
);
}
transport
{
mu
(
(200 0.0015)
(350 0.002)
(400 0.0025)
);
kappa
(
(200 2.56e2)
(350 3.33e2)
(400 4.72e2)
);
}
}
 Source code
 $FOAM_SRC/TBA
 Tutorial
 $FOAM_TUTORIALS/multiphase/icoReactingMultiPhaseInterFoam/inertMultiphaseMultiComponent/
 Attribution
 This feature was ported from openfoam.org
New noise utility weightings
Noiserelated models have been refactored, and A, B, C, and D weightings made available.
The weighting can be selected using the new SPLweighting keyword, where options include:
 none: no weighting (default)
 dBA: dB(A) weighting
 dBB: dB(B) weighting
 dBC: dB(C) weighting
 dBD: dB(D) weighting
New buoyancy fvOption
The buoyancyTurbSource finitevolume option applies sources on turbulent kinetic energy, k, and either turbulent kinetic energy dissipation rate, epsilon, or specific dissipation rate, omega, to incorporate effects of buoyancy on turbulence in incompressible and compressible flows. It is generally applicable where density gradients exist such as compressible heat transfer and wave modelling using the volumeoffluid method. The minimum working example of this finitevolume option can be seen below:
{
type buoyancyTurbSource;
beta 3.3e03;
rho rho;
alphat alphat;
T T;
}
$FOAM_TUTORIALS/heatTransfer/buoyantBoussinesqSimpleFoam/hotRoom
 Source code
 $FOAM_SRC/fvOptions/sources/derived/buoyancyTurbSource
 Tutorial
 $FOAM_TUTORIALS/heatTransfer/buoyantBoussinesqSimpleFoam/hotRoom
 References

 Barakos, G., Mitsoulis, E., & Assimacopoulos, D. O. (1994). Natural convection flow in a square cavity revisited: laminar and turbulent models with wall functions. Int. J. for Numerical Methods in Fluids, 18(7), 695719. DOI:10.1002/fld.1650180705
 Devolder, B., Troch, P., & Rauwoens, P. (2018). Performance of a buoyancymodified k and k SST turbulence model for simulating wave breaking under regular waves using OpenFOAM. Coastal Engineering, 138, 4965. DOI:10.1016/j.coastaleng.2018.04.011
 Attribution
 OpenCFD would like to thank Dr. Brecht Devolder (DEME Group) for the useful discussions, his helpful suggestions, and providing various verification/test cases.
New multicomponent evaporation and condensation droplet modelling
Universal aerosol condensation and evaporation models are typically formed by grouping droplet (or particle) components and applying simplifications, including:
 Soluble and evaporable components
 The evaporable components directly lead to dropletsize change due to the mass transfer across the liquidgas interface.
 Soluble but nonevaporable components
 These normally do not experience mass change during the aerosol growth/evaporation process. However, they occupy parts of the surface at the liquidgas interface. Accordingly, they reduce the mass fractions of the evaporable components on the droplet side, and affect the droplet diameter at the equilibrium state.
 Insoluble and nonevaporable components
 These have a limited effect on particle growth/evaporation, except for their contributions to the aerosol size and thermal capacity.
The new model takes into account
 the FuchsKnudsen number correction;
 modified Raoult’s law to obtain the concentration of the evaporable component on the surface;
 activity coefficient; and
 correction Kelvin.
New method for particle mass/volume update
Particle mass/volume updates are now controlled using the new volumeUpdateMethod keyword, offering the following options:
 constantRho: updates the density of the particle keeping the volume constant
 constantVolume: updates the volume of the particle keeping the density constant
 updateRhoAndVol: updates both volume and density
Note on backwards compatibility: the old keyword constantVolume true/false has priority over volumeUpdateMethod.
constantProperties
The entry rho0 is now optional for multicomponent parcels. If defined it is used; if not, the density is calculated from the original mixture. T0 is still used as initial parcel temperature, and Cp0 still required but is overwritten by the mixture properties.
EvaporationCondensation Model
The new liquidEvapFuchsKnudsen model is based on a diffusion type of evaporationcondensation on particles composed of a liquidsolid solution.
liquidEvapFuchsKnudsenCoeffs
{
gamma 6.8e8; // Mean gas free path
alpham 1; // The mass thermal accommodation
solution (H2O NaCl); // Solution (liquid solid)
activityCoefficient Hoff; // Activity coefficient Model
ic 1.85; // Activity coefficient (Hoff)
enthalpyTransfer enthalpyDifference;
}
The entry solution controls which components of the liquid and solid phases form the solution which exchange mass with the fluid, taking the format (’liquid’ ’solid’).
 Source code
 $FOAM_SRC/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvapFuchsKnudsen
 Tutorial
 $FOAM_TUTORIALS/lagrangian/reactingParcelFoam/rectangularChannel
 References
 Xiaole Chen, Yu Feng, Wenqi Zhon, Clement Kleinstreuer. Numerical investigation of the interaction, transport and deposition of multicomponent droplets in a a simple mouththroat model. Journal of Aerosol Science, 105(2017), 108127. DOI:10.1016/j.jaerosci.2016.12.001
Lagrangian: new particle recycling
The new recycleInteraction particle interaction model enables particles to reenter the domain having hit an outflow patch. Particles are reintroduced at random locations on the specified inlet patch with the same local velocity as the carrier flow. The recycleFraction is used to scale the number of particles represented by each computational parcel to represent withholding of a fraction of the particle volume.
The model is designed to be used with the multiInteraction patch interaction model, so that ’other’ models control how particles interact with nonrecycling patches, e.g.
{
oneInteractionOnly no;
model2
{
patchInteractionModel recycleInteraction;
recycleInteractionCoeffs
{
// list of (outlet>inlet) mappings
recyclePatches ((outlet inlet2));
// fraction of particles to reintroduced
recycleFraction 0.8;
}
}
model1
{
patchInteractionModel standardWallInteraction;
standardWallInteractionCoeffs
{
type rebound;
}
// Optionally write the interaction histories to file
writeToFile yes;
}
}
At runtime additional statistics are provided to show the progress:
Parcel fate: system (number, mass)
 escape = 0, 0
Parcel fate: patch outlet (number, mass)
 removed = 130, 1.8600759e05
Parcel fate: patch inlet2 (number, mass)
 injected = 127, 1.4365714e05
The following video shows a case where particles are continually fed from the inlet on the left, and after exiting the domain on the right, are recycled via the upper patch.