Commit Graph

2325 Commits

Author SHA1 Message Date
9d185f2cb1 POSIX: Unifying checking for ".gz" and ".orig" variants 2018-07-17 16:53:21 +01:00
a9cdfa0f4e dynamicAlphaContactAngleFvPatchScalarField: Added support for alternative direction convention
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
2018-07-17 14:03:38 +01:00
669935efd6 LangmuirHinshelwoodReactionRate: corrected, rationalized and generalized
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
2018-07-12 18:16:22 +01:00
d75d045039 sampledSet/lineFace: Added error message 2018-07-12 11:00:03 +01:00
95cf9666e7 particle: Added some extra debugging statements 2018-07-12 09:11:21 +01:00
23d523d9bf ThermoCloud: Corrected counter data type
Resolves bug report https://bugs.openfoam.org/view.php?id=2999
2018-07-12 08:56:27 +01:00
20653ee01e semiPermeableBaffle: Added mole-fraction and partial-pressure input options
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
2018-07-11 10:08:44 +01:00
e0cf9706ca Merge branch 'mergeDyM' 2018-07-11 09:48:17 +01:00
5ed4fe7017 Updated web-links 2018-07-10 21:30:42 +01:00
29fc94d3e2 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev into mergeDyM 2018-07-10 20:10:01 +01:00
fdbf3c134f Rationalized dictionary and configuration file headers 2018-07-09 15:40:05 +01:00
bf54ab67e1 Updated OpenFOAM Foundation web-link in headers 2018-07-06 21:42:54 +01:00
867bb83891 fileOperation: Corrected findInstance
Patch contributed by Mattijs Janssens
2018-07-06 11:32:45 +01:00
fcef3ed3c9 moleFractionsFunctionObjects.H: Corrected documentation 2018-07-06 10:38:22 +01:00
0af5c9061f DPMFoam: Merged with DPMDyMFoam
DPMFoam can now run with static or dynamic meshes selected in the
constant/dynamicMeshDict dictionary.
2018-07-05 10:25:51 +01:00
6c6ab41e66 RBD: Corrections to 0-DOF joints 2018-07-02 12:56:10 +01:00
eb1420ec03 Reactions: Improved documentation for member functions 2018-06-30 11:57:27 +01:00
914512f13f NonEquilibriumReversibleReaction: Return beta for the forward rather than reverse reaction 2018-06-30 11:56:52 +01:00
09e6c93d4a Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2018-06-28 18:45:56 +01:00
16ddfa3cb4 Reaction: Corrected handling of null beta list 2018-06-28 18:45:30 +01:00
2793a717e8 AMI: Fixes to point transfers 2018-06-28 10:52:59 +01:00
cb1237dd4c displacementMotionSolver: Reorganized the updateMesh function
It is not clear that the original updateMesh function in
displacementLayeredMotionMotionSolver is correct and needs checking and testing.
2018-06-27 22:23:21 +01:00
42dde9014c postProcess.H: clear the object owned by the mesh objectRegistry
at the end of each time processed to ensure all fields are updated for each
time.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2997
2018-06-27 22:21:02 +01:00
025e48373b fileHandler: Added flush method
This method waits until all the threads have completed IO operations and
then clears any cached information about the files on disk. This
replaces the deactivation of threading by means of zeroing the buffer
size when writing and reading of a file happen in sequence. It also
allows paraFoam to update the list of available times.

Patch contributed by Mattijs Janssens
Resolves bug report https://bugs.openfoam.org/view.php?id=2962
2018-06-27 15:25:20 +01:00
c00e283e8c displacementLinearMotionMotionSolver: New simple linear motion solver
Mesh motion solver simple linear expansion and contraction of a mesh
region defined by a motion axis and the extents of the motion.

Example:
\verbatim
    dynamicFvMesh   dynamicMotionSolverFvMesh;

    motionSolver    displacementLinearMotion;

    axis            (0 1 0);
    xFixed          0.8;
    xMoving         0;
    displacement    table
    (
        (0 0)
        (4 0.7)
    );
\endverbatim

This mesh is compressed between \c xFixed and \c xMoving in the direction
\c axis between time 0 and 4 with a maximum displacement of 0.7.
The mesh beyond \c xFixed is fixed and beyond \c xMoving moves with maximum
displacement.
2018-06-26 14:45:40 +01:00
19fb483c6d MichaelisMentenReactionRate: Michaelis-Menten reaction rate for enzymatic reactions
Updated chemFoam to support liquid reactions
2018-06-25 10:28:21 +01:00
70181745c9 ODESolvers/seulex: Documented the current stability/monotonicity check 2018-06-22 12:05:36 +01:00
211ac3b04d sampledSet: Fix headers and interfaceHeight for new namespace 2018-06-21 12:34:21 +01:00
5f8638bc74 sampledSet: Put sets in a namespace 2018-06-21 11:59:32 +01:00
135e6eb8b9 sampleSet: Improve error message for renamed sets 2018-06-21 08:42:16 +01:00
3ef4c803cd sampledSet: Consistent renaming, documentation, and code maintenance
The sampled sets have been renamed in a more explicit and consistent
manner, and two new ones have also been added. The available sets are as
follows:

    arcUniform: Uniform samples along an arc. Replaces "circle", and
    adds the ability to sample along only a part of the circle's
    circumference. Example:

        {
            type        arcUniform;
            centre      (0.95 0 0.25);
            normal      (1 0 0);
            radial      (0 0 0.25);
            startAngle  -1.57079633;
            endAngle    0.52359878;
            nPoints     200;
            axis        x;
        }

    boundaryPoints: Specified point samples associated with a subset of
    the boundary. Replaces "patchCloud". Example:

        {
            type        boundaryPoints;
            patches     (inlet1 inlet2);
            points      ((0 -0.05 0.05) (0 -0.05 0.1) (0 -0.05 0.15));
            maxDistance 0.01;
            axis        x;
        }

    boundaryRandom: Random samples within a subset of the boundary.
    Replaces "patchSeed", but changes the behaviour to be entirely
    random. It does not seed the boundary face centres first. Example:

        {
            type        boundaryRandom;
            patches     (inlet1 inlet2);
            nPoints     1000;
            axis        x;
        }

    boxUniform: Uniform grid of samples within a axis-aligned box.
    Replaces "array". Example:

        {
            type    boxUniform;
            box     (0.95 0 0.25) (1.2 0.25 0.5);
            nPoints (2 4 6);
            axis    x;
        }

    circleRandom: Random samples within a circle. New. Example:

        {
            type        circleRandom;
            centre      (0.95 0 0.25);
            normal      (1 0 0);
            radius      0.25;
            nPoints     200;
            axis        x;
        }

    lineFace: Face-intersections along a line. Replaces "face". Example:

        {
            type        lineFace;
            start       (0.6 0.6 0.5);
            end         (0.6 -0.3 -0.1);
            axis        x;
        }

    lineCell: Cell-samples along a line at the mid-points in-between
    face-intersections. Replaces "midPoint". Example:

        {
            type        lineCell;
            start       (0.5 0.6 0.5);
            end         (0.5 -0.3 -0.1);
            axis        x;
        }

    lineCellFace: Combination of "lineFace" and "lineCell". Replaces
    "midPointAndFace". Example:

        {
            type        lineCellFace;
            start       (0.55 0.6 0.5);
            end         (0.55 -0.3 -0.1);
            axis        x;
        }

    lineUniform: Uniform samples along a line. Replaces "uniform".
    Example:

        {
            type        lineUniform;
            start       (0.65 0.3 0.3);
            end         (0.65 -0.3 -0.1);
            nPoints     200;
            axis        x;
        }

    points: Specified points. Replaces "cloud" when the ordered flag is
    false, and "polyLine" when the ordered flag is true. Example:

        {
            type        points;
            points      ((0 -0.05 0.05) (0 -0.05 0.1) (0 -0.05 0.15));
            ordered     yes;
            axis        x;
        }

    sphereRandom: Random samples within a sphere. New. Example:

        {
            type        sphereRandom;
            centre      (0.95 0 0.25);
            radius      0.25;
            nPoints     200;
            axis        x;
        }

    triSurfaceMesh: Samples from all the points of a triSurfaceMesh.
    Replaces "triSurfaceMeshPointSet". Example:

        {
            type        triSurfaceMesh;
            surface     "surface.stl";
            axis        x;
        }

The headers have also had documentation added. Example usage and a
description of the control parameters now exists for all sets.

In addition, a number of the algorithms which generate the sets have
been refactored or rewritten. This was done either to take advantage of
the recent changes to random number generation, or to remove ad-hoc
fixes that were made unnecessary by the barycentric tracking algorithm.
2018-06-21 08:41:44 +01:00
b4dfbd7f06 foamDoc.H: completed top-level directory list 2018-06-20 20:07:09 +01:00
227db6deb3 Added underscores to #ifndef/#define statements with namespaces 2018-06-20 16:31:07 +01:00
f29114bfb6 Removed incomplete, inconsistent, confusing and un-maintained header clutter 2018-06-20 15:55:18 +01:00
dea88d883a utilities: Removed the -list.* options which are only useful for solver applications
Avoids unnecessary clutter printed by the -help option
2018-06-20 14:10:56 +01:00
241b4a60fc mappedFieldFvPatchField: Added base-class autoMap/rmap calls
Patch contributed by Mattijs Janssens
2018-06-19 14:06:57 +01:00
89f1053f82 Code style: Fixed formatting of banners 2018-06-19 12:01:50 +01:00
eca187e025 dictionaryListEntryIO: Trap errors when reading entries in the list
Resolves bug-report https://bugs.openfoam.org/view.php?id=2984
2018-06-18 10:24:29 +01:00
46821b553c kOmegaSST.H, nutkWallFunctionFvPatchScalarField.H: Updated documentation 2018-06-17 15:30:38 +01:00
21b3d19575 thermophysicalModels::Reaction: Refactored to remove unnecessary solid reaction specific functions 2018-06-15 16:15:42 +01:00
14a50c7d62 thermophysicalModels: Corrected the name of solidReaction -> SolidReaction
for consistency with the rest of the reaction system
2018-06-15 15:23:12 +01:00
4dc35c6810 thermophysicalModels: Implementation of the full algebraic Jacobian
including third-body and pressure dependent derivatives, and derivative of the
temperature term.  The complete Jacobian is more robust than the incomplete and
partially approximate form used previously and improves the efficiency of the
stiff ODE solvers which rely on the Jacobian.

Reaction rate evaluation moved from the chemistryModel to specie library to
simplfy support for alternative reaction rate expressions and associated
Jacobian terms.

Temperature clipping included in the Reaction class. This is inactive by default
but for most cases it is advised to provide temperature limits (high and
low). These are provided in the foamChemistryFile with the keywords Thigh and
Tlow. When using chemkinToFoam these values are set to the limits of the Janaf
thermodynamic data.  With the new Jacobian this temperature clipping has proved
very beneficial for stability and for some cases essential.

Improvement of the TDAC MRU list better integrated in add and grow functions.

To get the most out of this significant development it is important to re-tune
the ODE integration tolerances, in particular the absTol in the odeCoeffs
sub-dictionary of the chemistryProperties dictionary:

odeCoeffs
{
    solver          seulex;
    absTol          1e-12;
    relTol          0.01;
}

Typically absTol can now be set to 1e-8 and relTol to 0.1 except for ignition
time problems, and with theses settings the integration is still robust but for
many cases a lot faster than previously.

Code development and integration undertaken by
Francesco Contino
Henry G. Weller, CFD Direct
2018-06-15 12:26:59 +01:00
a3177bd759 twoPhaseMixtureThermo: Fix for collated file operation
twoPhaseMixtureThermo writes the temperatures during construction only
for them to be read again immediately after by construction of the
individual phases' thermo models. When running with collated file
handling this behaviour is not thread safe. This change deactivates
threading for the duration of this behaviour.

Patch contributed by Mattijs Janssens
2018-06-14 10:55:27 +01:00
268f1f612e hRef: Define height in opposite direction to gravity
The reference height is now defined in the direction of -g, whether as
previously it was defined in the direction cmptMag(g). This change makes
the behaviour consistent when the case is transformed. For a "typical"
case with g along one of the negative axes, this should make no
difference. None of the tutorials are affected.

Resolves bug report https://bugs.openfoam.org/view.php?id=2980
2018-06-14 10:49:15 +01:00
1fb1183478 ReactingMultiphaseParcel: Enable surface reactions when devolatilisation is inactive
Resolves bug report https://bugs.openfoam.org/view.php?id=2966
2018-06-13 10:37:19 +01:00
ee6a53adee seulex: Reverting change to stability/monotonicity check
This change cause some cases to fail, in particular
tutorials/lagrangian/sprayFoam/aachenBomb

Reopened https://bugs.openfoam.org/view.php?id=2972
2018-06-12 10:11:50 +01:00
2e1825a50f utilities: Remove unused case related options 2018-06-11 15:21:34 +01:00
712d4ca07d OpenFOAM: Added new removeCaseOptions.H convenience header 2018-06-11 15:20:15 +01:00
7e466cfbd7 foamDictionary, adiabaticFlameT, equilibriumFlameT: remove unused case related options 2018-06-11 14:31:36 +01:00
61363e74c6 Random: Declare member function specializations within the Foam namespace
Required for gcc-4.8.5
2018-06-11 14:21:58 +01:00