The closeness option in surfaceFeatures set in surfaceFeaturesDict, e.g.
closeness
{
// Output the closeness of surface points to other surface elements.
pointCloseness yes;
}
calculates and writes both the internal and external surface "closeness"
measures either of which could be used to set the span refinement in
snappyHexMesh depending on which side of the surface is being meshed which is
specified with either refinement mode "insideSpan" or "externalSpan", e.g. in
the tutorials/mesh/snappyHexMesh/pipe case the inside of the pipe is meshed and
refined based on the internal span using the following specification:
refinementRegions
{
pipeWall
{
mode insideSpan;
levels ((1000 2));
cellsAcrossSpan 40;
}
}
Rather than specifying the controls per field it is simpler to use a single set
of controls for all the fields in the list and use separate instances of the
fieldAverage functionObject for different control sets:
Example of function object specification setting all the optional parameters:
fieldAverage1
{
type fieldAverage;
libs ("libfieldFunctionObjects.so");
writeControl writeTime;
restartOnRestart false;
restartOnOutput false;
periodicRestart false;
restartPeriod 0.002;
base time;
window 10.0;
windowName w1;
mean yes;
prime2Mean yes;
fields (U p);
}
This allows for a simple specification with the optional prime2Mean entry using
#includeFunc fieldAverage(U, p, prime2Mean = yes)
or if the prime2Mean is not needed just
#includeFunc fieldAverage(U, p)
Corrected the use of the lagged thermal phase change dmdt in interfacial
heat transfer calculations of n-phase simulations
Patch contributed by Juho Peltola, VTT.
To handle the additional optional specification for the closeness calculation
these settings are now is a sub-dictionary of surfaceFeaturesDict, e.g.
closeness
{
// Output the closeness of surface elements to other surface elements.
faceCloseness no;
// Output the closeness of surface points to other surface elements.
pointCloseness yes;
// Optional maximum angle between opposite points considered close
internalAngleTolerance 80;
externalAngleTolerance 80;
}
Description
PTT model for viscoelasticity using the upper-convected time
derivative of the stress tensor with support for multiple modes.
Reference:
\verbatim
Thien, N. P., & Tanner, R. I. (1977).
A new constitutive equation derived from network theory.
Journal of Non-Newtonian Fluid Mechanics, 2(4), 353-365.
\endverbatim
Currently the common exponential form of the PTT model is provided but it could
easily be extended to also support the linear and quadratic forms if the need
arises.
The \ continuation line marker is no longer required, multi-line argument lists
are parsed naturally by searching for the end ), e.g. in
tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/titaniaSynthesis/system/controlDict
#includeFunc writeObjects \
( \
d.particles, \
phaseTransfer:dmidtf.TiO2.particlesAndVapor \
)
is now written in the simpler form:
#includeFunc writeObjects
(
d.particles,
phaseTransfer:dmidtf.TiO2.particlesAndVapor
)
to support the more convenient #includeFunc specification in both
#includeFunc fieldAverage(U.air, U.water, alpha.air, p)
and
#includeFunc fieldAverage(fields = (U.air, U.water, alpha.air, p))
forms.
A single mode may now be specified either with the 'modes' list containing a
single entry:
// Example 1-mode specification
modes
(
{
lambda 0.01;
}
);
or by specifying the 'lambda' entry without 'modes'
// Single mode coefficient
lambda 0.03;
If both are provided the 'modes' entry will be used and a warning about the
unused 'lambda' entry printed.
By specifying a list of coefficients in turbulenceProperties, e.g. for the
generalised Maxwell model:
modes
(
{
lambda 0.01;
}
{
lambda 0.04;
}
);
of for the generalised Giesekus model:
modes
(
{
lambda 0.01;
alphaG 0.05;
}
{
lambda 0.04;
alphaG 0.2;
}
);
Visco-elasticity stress tensors (sigma0, sigma1...) are solved for each mode and
summed to create the effective stress of the complex fluid:
Any number of modes can be specified and if only one mode is required the
'modes' entry is not read and the coefficients are obtained as before.
The mode sigma? fields are read if present otherwise are constructed and
initialised from the sigma field but all of the mode sigma? fields are written
for restart and the sigma field contains the sum.
References:
http://en.wikipedia.org/wiki/Generalized_Maxwell_model
Wiechert, E. (1889). Ueber elastische Nachwirkung.
(Doctoral dissertation, Hartungsche buchdr.).
Wiechert, E. (1893).
Gesetze der elastischen Nachwirkung für constante Temperatur.
Annalen der Physik, 286(11), 546-570.
The mean, prime2Mean and base now have default values:
{
mean on; // (default = on)
prime2Mean on; // (default = off)
base time; // time or iteration (default = time)
window 200; // optional averaging window
windowName w1; // optional window name (default = "")
}
so for the majority of cases for which these defaults are appropriate the
fieldAverage functionObject can now be specified in the functions entry in
controlDict thus:
functions
{
fieldAverage1
{
#includeEtc "caseDicts/postProcessing/fields/fieldAverage.cfg"
fields
(
U.air
U.water
alpha.air
p
);
}
}
also utilising the new fieldAverage.cfg file.
For cases in which these defaults are not appropriate, e.g. the prime2Mean is
also required the optional entries can be specified within sub-dictionaries for
each field, e.g.
fieldAverage1
{
#includeEtc "caseDicts/postProcessing/fields/fieldAverage.cfg"
fields
(
U
{
prime2Mean yes;
}
p
{
prime2Mean yes;
}
);
}
rhoPimpleFoam now produces identical results to rhoSimpleFoam when run
with a steady-state time-scheme. The intention is that this solver can
now be used as a reference when adding steady-state support to other
compressible solvers for which no SIMPLE variant exists.
rhoReactingFoam has also been updated to support SIMPLE operation, as it
shares a pressure equation with rhoPimpleFoam.
to splice the SlicedGeometricField into a complete contiguous Field.
e.g. to splice the flux field phi:
scalarField completePhi
(
slicedSurfaceScalarField
(
IOobject
(
"slicedPhi",
runTime.timeName(),
mesh
),
phi,
false
).splice()
);
ThermalPhaseChangePhaseSystem enables phase change for phase pairs that
have saturationModels. This change makes alphatWallBoilingWallFunction
work in the same way; i.e., it disables evalulation of the wall boiling
models if a saturation model is not found.
Patch contributed by Juho Peltola, VTT.
The hRefConst and eRefConst thermos that were local to
reacting*EulerFoam have been removed and the reference state that they
used has been incorporated into the standard hConst and eConst thermos.
The hConst thermo model now evaluates the enthalpy like so:
Ha = Hf + Hs
= Hf + Cp*(T - Tref) + Hsref (+ equation of state terms)
Where Ha is absolute enthalpy, Hs is sensible enthalpy, Cp is specific
heat at constant pressure, T is temperature, Tref is a reference
temperature and Hsref is a reference sensible enthalpy. Hf, Cp, Tref and
Hsref are user inputs. Of these, Tref and Hsref are new. An example
specification is as follows:
thermodynamics
{
Hf -1.34229e+07;
Cp 2078.4;
Tref 372.76;
Hsref 128652;
}
The ref quantities allows the user to specify a state around which to
linearise the relationship between temperature and enthalpy. This is
useful if the temperature range of the simulation is small enough to
consider the relationship linear, but linearity does not hold all the
way to standard conditions.
To maintain backwards compatibility, Tref defaults to standard
temperature, and Hsref defaults to zero, so a case using hConst thermo
requires no modification as a result of this change.
The only change to the default operation is that to calculate sensible
enthalpy Cp is multiplied by the difference between the current
temperature and the standard temperature, whether as previously Cp was
multiplied by the current temperature only. This means that at standard
conditions sensible enthalpy is now zero, and absolute enthalpy equals
the formation enthalpy. This is more consistent with the definitions of
the various enthalpies, and with other thermo models such as janaf. This
change should only affect reacting cases that use constant thermo
models.