snappyHexMesh now generates a face-zone for the AMI-s, and createBaffles
and mergeOrSplitPoints -split are used to create the patches. Before,
snappy generated AMI patches directly, which were then converted to
AMI-s with createPatch.
This way, the AMI-s match exactly at the start of the simulation. For
more complicated cases that may be derived from this tutorial, this
could be important.
With the -noFields option the mesh is subset but the fields are not changed.
This is useful when the field fields have been created to correspond to the mesh
after the mesh subset.
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