Updated the continuity error compensation term in the face momentum formulation
so that separate flow and source continuity errors are combined into a single
term.
Rotational transforms can now be automatically calculated from the
coupled patch geometries even when a) the patches are non-planar, b)
the patch normals are not perpendicular to the rotation axis, and/or c)
the rotation angle is 180 degrees.
This case is an updated version of
tutorials/multiphase/multiphaseEulerFoam/damBreak4phase using the latest models
available in reactingMultiphaseEulerFoam for interface capturing.
The utilised static parts of polyMeshGeometry are now part of a
polyMeshCheck namespace. Everything else has been removed, as they were
unused, out of date, and/or duplicated elsewhere.
This operator was defined with an incorrect (or at least
counter-intuitive) ordering. Given the possibility for ambiguity
associated with transformation ordering it is considered preferable for
the transformer class not to have compound assigment operators. Forcing
the full syntax (e.g., "a = a & b" or "a = b & a") makes it clear in
which order the transformations are intended to be applied.
There is now an optional tauy entry in the thixotropicCoeffs to specify the
Bingham yield stress, e.g.:
filmViscosityModel thixotropic;
thixotropicCoeffs
{
mu0 100;
muInf 0.1;
a 0.1;
b 3;
c 0.005;
d 0.9;
tauy 1.1; // Yield stress in Pa
}
In multiphase systems it is only necessary to solve for all but one of the
moving phases. The new referencePhase option allows the user to specify which
of the moving phases should not be solved, e.g. in constant/phaseProperties of the
tutorials/multiphase/reactingMultiphaseEulerFoam/RAS/fluidisedBed tutorial case with
phases (particles air);
referencePhase air;
the particles phase is solved for and the air phase fraction and fluxes obtained
from the particles phase which provides equivalent behaviour to
reactingTwoPhaseEulerFoam and is more efficient than solving for both phases.
combining the multiphaseCompressibleTurbulenceModels and derivedFvPatchFields
libraries with the generic multiphase turbulence models from the
twoPhaseCompressibleTurbulenceModels library, kineticTheoryModels and
phasePressureModel into a single common library compiled and linked into both
reactingTwoPhaseEulerFoam and reactingMultiphaseEulerFoam.
This significantly simplifies the creation and maintenance of coded classes and
used in CodedFunction1 to provide an example of its use; the other coded classes
will be refactored and simplified in this manner in the future.
For example in the new tutorial case:
tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse
a cosine bell velocity pulse is specified at the inlet by directly defining the
code for it:
inlet
{
type uniformFixedValue;
uniformValue coded;
name pulse;
codeInclude
#{
#include "mathematicalConstants.H"
#};
code
#{
return vector
(
0.5*(1 - cos(constant::mathematical::twoPi*min(x/0.3, 1))),
0,
0
);
#};
}
which is then compiled automatically and linked into the running pimpleFoam
dynamically and executed to set the inlet velocity.
Rather than being tied to the Time class the dlLibraryTable libs is now a global
variable in the Foam namespace which is accessable by any class needing to load
dynamic libraries, in particular argList, Time and codeStream.