For reactingTwoPhaseEulerFoam or if only two phases are present in
reactingMultiphaseEulerFoam, new and old formulations are equivalent. In case,
gradients of alpha of more than two phases appear at the same point, it is
necessary to use face based force formulations of turbulent dispersion models,
which take the respective disperse phase fractions into account, and
subsequently blend those.
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
Now for the wall in the simpleFoam pitzDaily tutorial case the following
patchField types are printed
group : wall
scalar v2 v2WallFunction
scalar nut nutkWallFunction
scalar k kqRWallFunction
scalar nuTilda zeroGradient
scalar p zeroGradient
scalar omega omegaWallFunction
scalar f fWallFunction
scalar epsilon epsilonWallFunction
vector U noSlip
instead of
group : wall
scalar v2 generic
scalar nut generic
scalar k generic
scalar nuTilda zeroGradient
scalar p zeroGradient
scalar omega generic
scalar f generic
scalar epsilon generic
vector U noSlip
The new optional entry alphap is the as phase fraction below which bubble
generated turbulence is included. The default is 1 for backward compatibility.
The purpose of this limiter is to avoid spurious turbulence generation at and
around the interface where bubbles are not present.
The moving mesh tracking algorithm is deactivated on moving meshes when
the step fraction is 1 and (if the operation requires it) when the
requested tracking fraction is 0. This optimises usage for
post-processing, in which tracking is done at a single point in time at
which the mesh geometry is fixed, rather than over a time-step across
which the mesh moves. It also prevents the need for the storage of
old-time cell centres for such purposes.
Resolves bug report https://bugs.openfoam.org/view.php?id=3343
The recent field-evaluation additions to basicSpecieMixture means that
the interface composition models no longer need knowledge of the
thermodynamic type in order to do efficient evaluation of individual
specie properties, so templating on the thermodynamics is unnecessary.
This greatly simplifies the implementation.
If the functionObject requires an object list rather than a field list the
non-named arguments are now inserted into the object list, for example
functions
{
#includeFunc writeObjects(kEpsilon:G)
}
which is equivalent to
functions
{
#includeFunc writeObjects(objects = (kEpsilon:G))
}
For example the generation term in the k-epsilon turbulence kEpsilon:G is a
temporary field that is specifically named and registered so that it can be
looked-up be the wall-function boundary conditions and requires slightly
different handling compared to normal temporary fields which are not registered.
The tutorials/incompressible/simpleFoam/pitzDaily case now demostrates this
functionality with the addition of
cacheTemporaryObjects
(
kEpsilon:G
);
functions
{
#includeFunc writeObjects(objects = (kEpsilon:G))
}
in controlDict which caches kEpsilon:G and writes it at every write time.
and removed it from equations of state for which it is too inaccurate to be
useful, in particular from perfectFluid which has been superseded by rPolynomial
which is more accurate and naturally support coefficient mixing.
Description
Reciprocal polynomial equation of state for liquids and solids
\f[
1/\rho = C_0 + C_1 T + C_2 T^2 - C_3 p - C_4 p T
\f]
This polynomial for the reciprocal of the density provides a much better fit
than the equivalent polynomial for the density and has the advantage that it
support coefficient mixing to support liquid and solid mixtures in an
efficient manner.
Usage
\table
Property | Description
C | Density polynomial coefficients
\endtable
Example of the specification of the equation of state for pure water:
\verbatim
equationOfState
{
C (0.001278 -2.1055e-06 3.9689e-09 4.3772e-13 -2.0225e-16);
}
\endverbatim
Note: This fit is based on the small amount of data which is freely
available for the range 20-65degC and 1-100bar.
This equation of state is a much better fit for water and other liquids than
perfectFluid and in general polynomials for the reciprocal of the density
converge much faster than polynomials of the density. Currently rPolynomial is
quadratic in the temperature and linear in the pressure which is sufficient for
modest ranges of pressure typically encountered in CFD but could be extended to
higher order in pressure and/temperature if necessary. The other huge advantage
in formulating the equation of state in terms of the reciprocal of the density
is that coefficient mixing is simple.
Given these advantages over the perfectFluid equation of state the libraries and
tutorial cases have all been updated to us rPolynomial rather than perfectFluid
for liquids and water in particular.
Cebeci, T., & Bradshaw, P. (1977).
Momentum transfer in boundary layers.
Washington, DC, Hemisphere Publishing Corp.; New York,
McGraw-Hill Book Co., 1977. 407 p.
The yPlus function object can now take a "phase" keyword which defines
the name of the phase for which to write yPlus. For example, to write
yPlus for a phase named "liquid", the following entry can be used:
yPlus1
{
type yPlus;
libs ("libfieldFunctionObjects.so");
phase liquid;
}
Note that this will only be necessary in Euler-Euler type simulations
where the phases have separate turbulence models. For VoF, the phase
name will not be required.
Patch contributed by Juho Peltola, VTT.
Allows directories to contain included files without FoamFile headers without
generating warning messages from ParaFoam and other post-processing tools.