For cases where the time-step varies in space ddtCorr is not needed with LTS but
in regions where the time-step is uniform it may be required. This change
ensures that the localEuler scheme operates equivalently to Euler in regions and
for cases where the time-step is uniform.
Addresses report https://bugs.openfoam.org/view.php?id=3020
In addition to the current syntax, particle forces can now also be
specified with a named dictionary and a type entry. This allows multiple
forces of the same type to be used. For example:
particleForces
{
// Existing syntax. The model typename, either on it's own
// or heading a dictionary of model parameters.
gravity;
ErgunWenYuDrag
{
alphac alpha.air;
}
// New syntax. An arbitrary name, followed by a dictionary
// containing a type entry, and any model parameters.
gravity2
{
type gravity;
}
drag2
{
type ErgunWenYuDrag;
alphac alpha.air;
}
}
A scaled force has also been added. This is a wrapper around another
particle force model, and applies a scaling factor to the force value.
It can be used to tune the models, or to blend two or more models.
particleForces
{
// Tuning the simulation by reducing the pressure gradient force
scaled1
{
type scaled;
factor 0.94;
forceType pressureGradient;
U U;
}
// Blending two drag models
scaled2
{
type scaled;
factor 0.2;
forceType sphereDrag;
}
scaled3
{
type scaled;
factor 0.8;
forceType ErgunWenYuDrag;
alphac alpha.air;
}
}
This work was supported by Moritz Hoefert, at Evonik
Description
Convergence control based on the 6-DoF motion state.
The body linear and angular velocities are averaged over a specified time
window and compared to specified velocity convergence criteria and the run
stopped after writing the current time results, if the criteria are met.
Example of function object specification:
\verbatim
sixDoFRigidBodyControl
{
type sixDoFRigidBodyControl;
libs ("libsixDoFRigidBodyState.so");
angleFormat degrees;
window 1;
convergedVelocity (1e-2 1e-2 1e-2);
convergedAngularVelocity (5 5 5);
}
\endverbatim
Note the units of the \c convergedAngularVelocity are specified by the \c
angleFormat entry.
Usage
\table
Property | Description | Required | Default value
type | Type name: sixDoFRigidBodyControl | yes |
angleFormat | Degrees or radians | no | radian
window | Averaging window | yes |
convergedVelocity | Linear velocity convergence criterion | yes |
convergedAngularVelocity | Angular velocity convergence criterion | yes |
\endtable
Description
Solid-body motion of the mesh specified by a run-time selectable motion
function. Applies SLERP interpolation of movement as function of
distance to the object surface to move the mesh points.
To switch-off radiation set
radiationModel none;
in radiationProperties which instantiates "null" model that does not read any
data or coefficients or evaluate any fields.
Also extended the cubic equation test routine and modified the error
methods so that they more accurately generate the round of error of
evaluation.
This resolves bug report https://bugs.openfoam.org/view.php?id=3015
The projection direction has been corrected to include the effect of
mesh motion. The case where the source and receiving faces are of
differing orientations and the particle displacement points into both is
now detected and handled.
AMI interpolation is only ever constructed between sets of primitive
patches, so templating on the patch type is unnecessary. Templating in
this instance is undesirable; it makes type type/debug/selection system
more complex and increases the number and compilation times of files
which need recompiling when code is modified.
Description
A dynamic alphaContactAngle scalar boundary condition
Usage
Standard properties:
\table
Property | Description | Required | Default value
theta0 | Equilibrium contact angle | yes |
uTheta | Velocity scale | yes |
\endtable
The advancing and receding contact angles can be either specified with
respect to the interface normal direction:
\table
Property | Description | Required | Default value
thetaA | Limiting advancing contact angle | yes |
thetaR | Limiting receding contact angle | yes |
\endtable
or with respect to the phase outward direction:
\table
Property | Description | Required | Default value
thetaAdv | Limiting advancing contact angle | yes |
thetaRec | Limiting receding contact angle | yes |
\endtable
Example of the boundary condition specification using the interface
normal direction convention:
\verbatim
<patchName>
{
type dynamicAlphaContactAngle;
uTheta 1;
theta0 90;
thetaA 70;
thetaR 110;
limit gradient;
value uniform 0;
}
\endverbatim
Example of the boundary condition specification using the phase outward
direction convention (opposite to the normal direction):
\verbatim
<patchName>
{
type dynamicAlphaContactAngle;
uTheta 1;
theta0 90;
thetaAdv 110;
thetaRec 70;
limit gradient;
value uniform 0;
}
\endverbatim
Resolves feature request https://bugs.openfoam.org/view.php?id=2864
to an arbitrary pair of reacting species.
Description
Langmuir-Hinshelwood reaction rate for gaseous reactions on surfaces.
Reference:
\verbatim
Hinshelwood, C.N. (1940).
The Kinetics of Chemical Change.
Oxford Clarendon Press
\endverbatim
The semiPermeableBaffleMassFraction boundary condition can now calculate
the mass flux as proportional to the difference in mole fraction or
partial pressure. A mass fraction difference driven transfer is also
still possible. An additional keyword, "input" has been added which is
used to select the variable used to calculate the transfer. An example
specification is as follows:
baffle
{
type semiPermeableBaffleMassFraction;
samplePatch membranePipe;
c 0.1;
input massFraction;
value uniform 0;
}
In order to facilitate this, a "W" method to get the molar mass on a
patch has been added to the thermodynamics. To avoid name-clashes,
methods that generate per-species molar masses have been renamed "Wi".
This work was supported by Georg Skillas, at Evonik