Latent heat is now evaluated at Tsat instead of Tf for the thermal phase
change method. This provides a smooth transition of the interface
temperature field as the phase fraction tends to zero.
Patch contributed by Juho Peltola, VTT.
The phase which the function object relates to is now selected with the
keyword "phase", rather than "phaseName". This is consistent with other
name entries such as the "phi" entry for an inletOutlet boundary.
The Qdot field has been removed from all reacting solvers, in favour of
computing on the fly whenever it is needed. It can still be generated
for post-processing purposes by means of the Qdot function object. This
change reduces code duplication and storage for all modified solvers.
The Qdot function object has been applied to a number of tutorials in
order to retain the existing output.
A fix to Qdot has also been applied for multi-phase cases.
This function object writes out the heat release rate field for a
combustion model. This is useful for solvers where combustion is
optional, and which do not therefore write out the heat release rate by
default; e.g., chtMultiRegionFoam and reactingTwoPhaseEulerFoam.
The tutorial has been converted from two-dimensions to a wedge and the
flow has been swirl stabilised. The turbulence parameters have been made
physical. The transport schemes have been increased to second order. The
reaction mechanism has been changed to one from a publically accessible
reference. The gas thermodynamics have been made incompressible, and the
pressure offset around zero, which improves the behaviour of the
pressure solution.
The motion solvers are executed in order and the resulting displacements
accumulated into an overall displacement and the displaced point positions
returned.
This functionality replaces the dynamicMotionSolverListFvMesh class with the
equivalent specification of a "solvers" list rather than a "solver" entry in
dynamicMeshDict e.g.
dynamicFvMesh dynamicMotionSolverFvMesh;
solvers
(
Rotor
{
solver solidBody;
solidBodyCoeffs
{
cellZone region1;
solidBodyMotionFunction rotatingMotion;
rotatingMotionCoeffs
{
origin (0 0 0);
axis (0 0 1);
omega 100; // rad/s
}
}
}
Piston
{
solver velocityComponentLaplacian;
motionSolverLibs ("libfvMotionSolvers.so");
velocityComponentLaplacianCoeffs
{
component z;
diffusivity inverseDistance 1(wall1);
}
}
);
Added headers to all reactions files to prevent warnings in paraview.
Added references for known mechanisms. Removed unused reaction and
thermophysical property files.
to rationalise the structure and class names to avoid the need for the confusing
addNamedToRunTimeSelectionTable and use instead use the standard
addToRunTimeSelectionTable to populate the run-time selection table.
This is a heat transfer model with a constant fixed value for the
Nusselt number. It requires a single "Nu" entry to be specified.
Patch contributed by Juho Peltola, VTT
This had been removed by commit e1c95941, as most of the time it was
only being used to control writing of the diameter field. IATE does
require it, however, so it has been reinstated for that model.
This is an inlet-outlet condition where the inlet value differs above
and below a wave interface. It can be used as follows:
inlet
{
type waveInletOutlet;
inletValueAbove 0.01;
inletValueBelow 0.1;
}
The construction of some patch fields has been corrected so that the
patchType setting always propagates on mapping, IO, clone, etc...
Dictionary and mapping-based patch field constructors now call the
corresponding constructor from the base class, regardless of whether
dictionary settings or mapping are actually needed.
A "mappingRequired" flag has been added to some of the base constructors
in order to prevent unecessary mapping of field data and retain the
previous level of optimisation.
Resolves bug report https://bugs.openfoam.org/view.php?id=3144
Class
Foam::functionEntries::if
Description
Conditional parsing of dictionary entries.
E.g.
\verbatim
U_inlet 15;
#if #calc "${U_inlet} < 10"
..
#else
..
#endif
\endverbatim
Note:
- only supports single line, '\' is not supported
- condition should be readable as a \c Switch
(supports 0,1, true, false, etc.)
Class
Foam::functionEntries::ifeqEntry
Description
Conditional parsing of dictionary entries.
E.g.
\verbatim
a #calc "0.123";
b 1.23e-1;
#ifeq $a $b
..
#else
..
#endif
\endverbatim
\verbatim
ddtSchemes
{
#ifeq ${FOAM_APPLICATION} simpleFoam
default steadyState;
#else
default Euler;
#endif
}
\endverbatim
Note:
- supports dictionary variables and environment variables
- the two arguments should be two tokens
- the comparison is a string comparison for any word/string/variable,
integer comparison for two integers and floating point comparison for
any floating point number.
- parsing of (non)matching \c #else, \c #endif is not very sophisticated
Contributed by Mattijs Janssens
A new "-empty" option launches ParaView without opening any files. This enables users
to run ParaView using the paraFoam script for all data (OpenFOAM or otherwise), making
use of the automatic launching with Mesa if system OpenGL fails.
To view OpenFOAM case files, run "paraFoam".
To view other data files, run "paraFoam -empty" and open the files within ParaView.
Registration occurs when the temporary field is transferred to a non-temporary
field via a constructor or if explicitly transferred to the database via the
regIOobject "store" methods.