v2212: New and updated solvers and physics
The radiation view factor generation application, viewFactorsGen, has received multiple updates:
 The method is now based on a combination of double area integral (2AI) when the two surfaces are 'far' apart, and double linear integral (2LI) when surfaces are 'close'. The distance between faces is calculated as the ratio between average areas and the distance between face centres;
 Default use of the standard iterative linear solvers in OpenFOAM, versus the earlier direct solution on a single processor; and
 If compiled with CGAL support, a faster ray intersection routine can be applied.
Dictionary inputs
Additional inputs in the viewFactorsDict dictionary comprise:
// GaussQuad integral error tolerance (default: 0.01)
// Used to decide when to increase order of integration.
GaussQuadTol 0.1;
// Relative distance (default: 8)
// For distTol : use 2AI
distTol 8;
// Constant model use for common edges for 2LI (default : 0.22)
// Approx for integral value of duplicate edges.
alpha 0.22;
// Interval tolerance (default : 1e2)
// Used for ray shooting from face centre to face centre plus intTol to avoid the ray
// hitting the same face where it was originated.
intTol 1e2;
The use of iterative versus direct linear solver is specified using the optional useDirectSolver entry in the radiationProperties dictionary:
{
smoothing false; // Use for closed surfaces where sum(Fij) = 1
constantEmissivity true;
nBands 1;
useDirectSolver false; // Use direct solver or standard iterative solver ("qr", "qRFinal" in fvSolution)
}
In this new version face agglomeration (and hence the faceAgglomeration application) is not needed; this may be reinstated in later versions.
Tutorials
 $FOAM_TUTORIALS/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation
 $FOAM_TUTORIALS/heatTransfer/chtMultiRegionFoam/externalSolarLoad
Source code
$FOAM_SRC/thermophysicalModels/radiation/radiationModels/viewFactor (view factor evaluation)
$FOAM_UTILITIES/preProcessing/viewFactorsGen (view factor generation)
DetachedEddy Simulation (DES) is becoming an increasingly popular turbulence modelling approach, since it offers greater accuracy for challenging flows than steadystate (RANS) models, at significantly less expense than LargeEddy Simulation (LES). However, a shortcoming known as the "grey area" causes delayed development of resolved turbulence in the early shear layer, deteriorating prediction here.
The new greyarea enhanced DES variants accelerate the RANSLES transition in the early shear layer by reducing eddy viscosity locally. Regular subgridscale behaviour returns once the turbulence becomes fully developed. The following figures demonstrate the grey area effect for the recirculating flow downstream of a 2D wallmounted hump. Significantly higher levels of resolved turbulence and better agreement with experiments are seen for the greyarea enhanced model.
The following turbulence modelling features are included in the v2212 release:
 Greyarea enhanced \(\sigma\)DDES formulation [1][3], SpalartAllmarasDDES and kOmegaSSTDDES with activated option useSigma, which is applicable to both SpalartAllmaras and Menter SSTbased DDES formulations;
 Vorticityadaptive filter definition, \(\tilde{\Delta}_\omega\)[4][5], DeltaOmegaTildeDelta, which is recommended for use in conjunction with the \(\sigma\)DDES model; and
 Shearlayer adaptive filter definition, \(\Delta_{SLA}\)[5], SLADelta, which achieves a similar effect to the combination of \(\sigma\)DDES and \(\Delta_\omega\).
Example usage:
simulationType LES;
LES
{
LESModel SpalartAllmarasDDES;
SpalartAllmarasDDESCoeffs
{
useSigma true; // < new entry
}
//delta SLADelta;
delta DeltaOmegaTilde;
DeltaOmegaTildeCoeffs
{}
...
}
It is recommended to use the updated version of the DEShybrid scheme in conjunction with these methods.
Tutorial
Attribution
 The greyarea enhanced DES model components were implemented by Upstream CFD GmbH and integrated into OpenFOAM in collaboration with OpenCFD Ltd with funding by Volkswagen AG.
 Merge request MR!560
References
 Fuchs, M., Mockett, C., Sesterhenn, J., and Thiele, F. (2020). The greyarea enhanced sigmaDDES approach: Formulation review and application to complex test cases. In: Progress in Hybrid RANSLES Modelling, Notes on Numerical Fluid Mechanics and Multidisciplinary Design 143, pp. 119130, Springer, 2020.
 Greenblatt, D., Paschal, K. B., Yao, C.S., Harris, J., Schaeffler, N. W., & Washburn, A. E. (2006). Experimental Investigation of Separation Control Part 1: Baseline and Steady Suction. AIAA Journal, Vol. 44, No. 12, pp. 28202830, 2006.
 Mockett, C., & Fuchs, M. (2017). Application of Alternative SGS Forms for Grey Area Mitigation. In Go4Hybrid, volume 134 of Notes on Numerical Fluid Mechanics and Multidisciplinary Design, Springer, 2017.
 Mockett, C., Fuchs, M., Garbaruk, A.V., Shur, M.L., Spalart, P.R., Strelets, M.K., Thiele, F., & Travin, A.K. (2016). Two nonzonal approaches to accelerate RANS to LES transition of free shear layers in DES. In: Progress in Hybrid RANSLES Modelling, Notes on Numerical Fluid Mechanics and Multidisciplinary Design 130, pp. 187201, Springer, 2015.
 Shur, M. L., Spalart, P. R., Strelets, M. K., & Travin, A. K. (2015). An enhanced version of DES with rapid transition from RANS to LES in separated flows. Flow, Turbulence and Combustion, 95, 709–737, 2015.
The interregion heat transfer fvOption, effectivenessHeatExchangerSource has been renamed as heatExchangerSource, and extended to allow users to specify two new submodels:
 effectivenessTable: the behaviour of the earlier effectivenessHeatExchangerSource; and
 referenceTemperature: a model that uses a reference temperature  either a scalar or calculated from a twodimensional interpolation table  to calculate the heat exchange.
A minimal example usage follows:
heatExchangerSource1
{
type heatExchangerSource;
// Option1
model effectivenessTable;
// Option2
model referenceTemperature;
Source code
Merge request
Multiregion cases can be challenging to assemble and operate. The new pureZoneMixture model can be used to simplify setups where regions differ only by the choice of thermophysical properties. Here, users can employ a single mesh region and select the thermophysical properties per cell zone, simplifying pre and postprocessing and potentially reducing run times.
Interzone coupling is treated implicitly using internal faces, or explicitly using boundary conditions. The internal face coupling is less flexible  there can be no additional resistance, e.g. shell conduction, or sources, e.g. radiation. For internal faces the effect of having discontinuous properties might be handled through, e.g. harmonic interpolation.
Zonal mixture
This takes a mixture setting for every cell zone. A typical constant/<region>/thermophysicalProperties for a solid region might contain
thermoType
{
type heSolidThermo;
mixture pureZoneMixture;
transport constIso;
thermo hConst;
equationOfState rhoConst;
specie specie;
energy sensibleEnthalpy;
}
mixture
{
leftSolid
{
specie
{
molWeight 50;
}
transport
{
kappa 80;
}
thermodynamics
{
Hf 0;
Cp 450;
}
equationOfState
{
rho 8000;
}
}
rightSolid
{
// Start off from properties of cellZone leftSolid
${leftSolid}
// Selectively overwrite properties
equationOfState
{
rho 2800;
}
}
}
Notes
 The 'special' cellZone named none will match any unzoned cells;
 pureZoneMixture can be applied to fluid regions, provided that they use the pureMixture, i.e. a nonreacting, singlecomponent mixture;
 Only the mixture properties can change;
 you cannot have both fluid and solid in the same region;
 pureZoneMixture will yield exactly the same results as pureMixture when the cell zones have the same mixture properties.
Source code
Merge request
A new, optional, logFrequency entry has been added to the cloud solution input dictionary to reduce the amount of information the lagrangian models write to the log, e.g. in the /constant/*CloudProperties file, i.e.
solution
{
active true;
coupled false;
transient yes;
cellValueSourceCorrection off;
maxCo 0.3;
logFrequency 3; // < NEW ENTRY
...
}
The value controls the number of carrier phase time steps that are performed between reporting lagrangian phase statistics, e.g.
Solving2D cloud reactingCloud1
Cloud: reactingCloud1
Current number of parcels = 994
Current mass in system = 0.009735873844
Linear momentum = (0.0001652067978 0.0001039875528 0)
Linear momentum = 0.0001952093676
Linear kinetic energy = 0.0001660812145
Average particle per parcel = 19.21387643
Injector model1:
 parcels added = 994
 mass introduced = 0.01
Parcel fate: system (number, mass)
 escape = 0, 0
Parcel fate: patch (wallscyc.*) (number, mass)
 escape = 0, 0
 stick = 0, 0
Parcel fate: patch (inletoutlet) (number, mass)
 escape = 0, 0
 stick = 0, 0
Temperature min/max = 275.039299, 275.4193813
Mass transfer phase change = 0.000264126156
Mass transfer devolatilisation = 0
Mass transfer surface reaction = 0
The value is set to 1 by default to maintain backwards compatibility.
The finitearea options used for, e.g. thermal shell, now handle multiple patches correctly.
The externalHeatFluxSource now supports a Function1 specification
The finite area perturbedTemperatureDependentContactAngleForce has been renamed dynamicContactAngle and extended to include:

filmspeed dependent contactangle force calculation with stochastic perturbations; and

an additional force contribution acting against the motion of the contact line movement creating a hysteresis when the film thickness exceeds a critical film thickness.
A minimal example of this model can be seen below:
dynamicContactAngleForceCoeffs
{
// Mandatory entries
distribution <subDict>;
// Optional entries
hCrit <scalar>; // Critical film height
// Conditional entries
// Option1
Utheta <Function1<scalar>>; // Contact angle vs film speed
// Option2
Ttheta <Function1<scalar>>; // Contact angle vs film temperature
// Inherited entries
...
}
The illustration below shows a rivulet panelflow case where the effects of using the critical film height and contactangle vs filmspeed entries are shown from left to right. The new implementation resulted in coalescence of rivulets on the right figure:
Source code
References
 Meredith, K. V., Heather, A., De Vries, J., & Xin, Y. (2011). A numerical model for partiallywetted flow of thin liquid films. Computational Methods in Multiphase Flow VI, 70, 239.

Novák, M., Devaradja, R., Papper, J., & Černý, M. (2020). Efficient CFD methods for assessment of water management. In 20. Internationales Stuttgarter Symposium (pp. 151170). Springer Vieweg, Wiesbaden.
Merge request
The Brun film dripping model has been migrated from the finite volume film library to the finite area library. It is applied in the U/<filmPatch> velocityFilmShell definition for injection models, e.g.
injectionModels
(
// curvatureSeparation
BrunDrippingInjection
);
BrunDrippingInjectionCoeffs
{
deltaStable 1e3;
}
Source code
Merge request
The limitHeight finite area option (faOption) applies an explicit correction to limit the maximum film height to the userspecified value.
Example usage:
limitHeight1
{
type limitHeight;
region velocityFilmShell;
h hf_film;
selectionMode all;
max 0.001;
}
Source code
Merge request
The lagrangian surfaceFilmModel is responsible for transferring lagrangian parcels to finitearea and finitevolume film models. Users have a new parcelTypes entry, which describes the list of parcel type IDs interacting with a surface film. If the entry is omitted, all parcels participate.
surfaceFilmModel kinematicSurfaceFilm;
kinematicSurfaceFilmCoeffs
{
interactionType absorb;
// Optional list of participating parcel IDs
parcelTypes (10);
}
To set the parcel type by injector, injectorID entry can be used when specifying the injector models, e.g.
injectionModels
{
model1
{
type <injectionModelType>;
// Optional injector ID
//  if ommitted, parcels use '1'
injectorID 10;
...
}
}
Source code
Merge request
The new solidIsothermalReactionRate model provides isothermal reaction rates for solids alongside the solidArrheniusReactionRate model. A minimal example of this model is given below:
{
// Mandatory entries
C <scalar>; // Model constant
Cp <scalar>; // Specific heat of solid material (assumed constant)
Tpc <scalar>; // Phase change temperature
Elat <scalar>; // Latent heat of phase change
// Elat, the latent energy is defined in the present
// implementation as a negative value (using the convention
// endothermic process has negative enthalpy.)
}
Source code
References

W.H. Lee, A pressure iteration scheme for twophase flow modeling, T.N. Veziroglu (Ed.), Multiphase Transport Fundamentals, Reactor Safety, Applications, vol. 1, Hemisphere Publishing, Washington, DC (1980).

Kharangate, C. R., & Mudawar, I. (2017). Review of computational studies on boiling and condensation. International Journal of Heat and Mass Transfer, 108, 11641196.
Merge request