Commit Graph

999 Commits

Author SHA1 Message Date
f6d24cf29f populationBalanceModel: Moved access function for continuous phase turbulence
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2018-05-16 21:36:34 +01:00
c667687dd2 thermophysicalModels: Instantiations for reacting liquids
Stabilisation has also been added to the perfectFluid == operator to
allow for use of this equation of state in a reacting fluid.
2018-05-16 16:21:15 +01:00
018da5a3ce populationBalanceModel: Added Prince and Blanch (1990) coalescence model
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2018-05-16 16:04:17 +01:00
1a2bbc8701 populationBalanceModel: Corrected handling of residual control
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2018-05-16 15:26:35 +01:00
ad32e5ceb9 bin/tools/RunFunctions: avoid messages from codeStream causing getApplication to fail
Resolves bug-report https://bugs.openfoam.org/view.php?id=2933
2018-05-15 17:07:53 +01:00
0c4562422d transformPoints: Added -allRegions option
With the -allRegions option all the regions specified in the
constant/regionProperties are transformed.
2018-05-15 14:48:19 +01:00
d0dfb1a843 decomposePar, reconstructPar: Rationalized the handling of the allRegions option 2018-05-14 19:51:54 +01:00
dc499e25a9 PVReaders: Fixes to compilation against ParaView-5.5.0 2018-05-14 09:01:18 +01:00
59be3e7113 rigidBodyDynamics: Ported tests to general RBD application 2018-05-09 16:04:46 +01:00
ae5a31e8b7 rigidBodyDynamics: Added test application for general bodies 2018-05-09 15:15:23 +01:00
c236ab5369 InterfaceCompositionPhaseChangePhaseSystem: Corrected error message 2018-05-09 14:55:23 +01:00
08cadfde74 Make/options: Added -I options for the now wmkdep 2018-05-08 19:55:28 +01:00
c3be52bcd6 Corrected 'Class' entries in headers
Using script provided by Bruno Santos
See https://bugs.openfoam.org/view.php?id=2919
2018-05-07 14:18:44 +01:00
e6f0f56e28 foamyQuadMesh::CV2D: Add typedef for Foam::point to resolve a problem with gcc-7.3.1 2018-05-04 17:32:45 +01:00
400cd4a889 wmake options files: Removed -I options referring to non-existent directories
Resolves bug-report https://bugs.openfoam.org/view.php?id=2917
2018-05-04 17:16:46 +01:00
08704a2d1f reactingEulerFoam: Removed duplicate IATEsource files 2018-05-03 16:03:24 +01:00
3c000dabec wmake, wmakeLnIncludeAll: Automated the creation of the lnInclude directories based on dependency
Now lnInclude are created as required by the presence of entries in the EXE_INC
variable in the Make/options file.  This removes the need for calling
wmakeLnInclude in various Allwmake files to ensure the existence of the
lnInclude directories prior to compilation of dependent libraries.
2018-05-03 15:59:50 +01:00
87e32ab499 Code style: Updated line comments to start with a space
//This is a comment   ->   // This is a comment
2018-05-01 11:57:50 +01:00
785a7d9e3f cyclicRepeatAMI: New constraint patch type
A new constraint patch has been added which permits AMI coupling in
cyclic geometries. The coupling is repeated with different multiples of
the cyclic transformation in order to achieve a full correspondence.
This allows, for example, a cylindrical AMI interface to be used in a
sector of a rotational geometry.

The patch is used in a similar manner to cyclicAMI, except that it has
an additional entry, "transformPatch". This entry must name a coupled
patch. The transformation used to repeat the AMI coupling is taken from
this patch. For example, in system/blockMeshDict:

boundary
(
    cyclic1
    {
        type cyclic;
        neighbourPatch cyclic2;
        faces ( ... );
    }

    cyclic2
    {
        type cyclic;
        neighbourPatch cyclic1;
        faces ( ... );
    }

    cyclicRepeatAMI1
    {
        type cyclicRepeatAMI;
        neighbourPatch cyclicRepeatAM2;
        transformPatch cyclic1;
        faces ( ... );
    }

    cyclicRepeatAMI2
    {
        type cyclicRepeatAMI;
        neighbourPatch cyclicRepeatAMI1;
        transformPatch cyclic1;
        faces ( ... );
    }

    // other patches ...
);

In this example, the transformation between cyclic1 and cyclic2 is used
to define the repetition used by the two cyclicRepeatAMI patches.
Whether cyclic1 or cyclic2 is listed as the transform patch is not
important.

A tutorial, incompressible/pimpleFoam/RAS/impeller, has been added to
demonstrate the functionality. This contains two repeating AMI pairs;
one cylindrical and one planar.

A significant amount of maintenance has been carried out on the AMI and
ACMI patches as part of this work. The AMI methods now return
dimensionless weights by default, which prevents ambiguity over the
units of the weight field during construction. Large amounts of
duplicate code have also been removed by deriving ACMI classes from
their AMI equivalents. The reporting and writing of AMI weights has also
been unified.

This work was supported by Dr Victoria Suponitsky, at General Fusion
2018-04-30 09:23:52 +01:00
484c16a5da stitchMesh: Do not write the meshModifiers file with the "overwrite" option 2018-04-24 14:04:26 +01:00
b2b2b38a1c reactingEulerFoam: Corrected blending for two-resistance models 2018-04-23 14:11:21 +01:00
e6c2246276 reactingEulerFoam: Added phaseForces functionObject
Added a function object for the reacting Euler-Euler solvers which
evaluates and writes out the blended interfacial forces acting on a
given phase (drag, virtual mass, lift, wall lubrication and turbulent
dispersion).

Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2018-04-23 10:10:07 +01:00
9de5f9e761 reactingEulerFoam: Added Laakkonen et al (2006) breakup model
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2018-04-23 10:10:07 +01:00
ee6216b4e7 reactingEulerFoam: Improved Sauter mean diameter calculation
The Sauter mean diameter calculation has been modified to be more stable
in the limit of vanishing phase fraction. The calculation of the overall
Sauter mean diameter for a populationBalance involving more than one
velocityGroup has been removed. This calculation depends upon the phase
fraction and it is not stable as the fractions tend to zero. The overall
Sauter mean diameter is only used for post-processing and can still be
recovered from the individual diameter fields of the involved
velocityGroups.

Some parts of the population balance modeling have also been renamed and
refactored.

Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2018-04-23 10:09:52 +01:00
aaed6290d0 surfaceFeatures: New version of surfaceFeatureExtract with simplied controls
Surfaces are specified as a list and the controls applied to each, e.g. in the
rhoPimpleFoam/RAS/annularThermalMixer tutorial:

    surfaces
    (
        "AMI.obj"
        "shaft.obj"
        "wall.obj"
        "statorBlades.obj"
        "rotorBlades.obj"
    );

    includedAngle   150;  // Identifes a feature when angle
                      // between faces < includedAngle
    trimFeatures
    {
        minElem         10;   // minimum edges within a feature
    }

    writeObj        yes;  // writes out _edgeMesh.obj files to view features

If different controls are required for different surfaces multiple
sub-dictionaries can be used:

    AMIsurfaces
    {
        surfaces
        (
            "AMI.obj"
        );

        includedAngle   140;  // Identifes a feature when angle
                          // between faces < includedAngle
        trimFeatures
        {
            minElem         8;   // minimum edges within a feature
        }

        writeObj        yes;  // writes out _edgeMesh.obj files to view features
    }

    otherSurfaces
    {
        surfaces
        (
            "shaft.obj"
            "wall.obj"
            "statorBlades.obj"
            "rotorBlades.obj"
        );

        includedAngle   150;  // Identifes a feature when angle
                          // between faces < includedAngle
        trimFeatures
        {
            minElem         10;   // minimum edges within a feature
        }

        writeObj        yes;  // writes out _edgeMesh.obj files to view features
    }

Existing feature edge files corresponding to particular surfaces can be specified using
the "files" association list:

    surfaces
    (
        "AMI.obj"
        "shaft.obj"
        "wall.obj"
        "statorBlades.obj"
        "rotorBlades.obj"
    );

    files
    (
        "AMI.obj" "constant/triSurface/AMI.obj.eMesh";
    );

    includedAngle   150;  // Identifes a feature when angle
                      // between faces < includedAngle
    trimFeatures
    {
        minElem         10;   // minimum edges within a feature
    }

    writeObj        yes;  // writes out _edgeMesh.obj files to view features
2018-04-20 15:23:28 +01:00
6f059eb213 NonRandomTwoLiquid: Corrected dimensions of molecular weight 2018-04-18 12:14:26 +01:00
1b0e09faf0 surfaceFeatureExtract: Moved feature edge editing functions to the surfaceFeatures class 2018-04-17 20:38:15 +01:00
ded92d5951 surfaceFeatureExtract: Updated included files 2018-04-17 00:22:03 +01:00
2730fbad5c surfaceFeatureExtract: Further refactoring to move the extract surface closeness functionality
to triSurfaceMesh
2018-04-17 00:16:12 +01:00
8e453f3874 AttouFerschneider: Correction to cube-root of volume fraction ratio 2018-04-13 14:04:49 +01:00
410700c7a9 compressibleInterFoam: Generalized the handling of phase temperature BCs
Resolves bug-report https://bugs.openfoam.org/view.php?id=2899
2018-04-12 23:40:00 +01:00
cd4445270f reactingEulerFoam: Fixed memory error introduced by commit efad85b0 2018-04-12 11:19:19 +01:00
ed5f44e7e8 surfaceFeatureExtract: Refactoring surface closeness functions 2018-04-12 07:42:25 +01:00
4e2074419b MomentumTransferPhaseSystem: Fixed spelling error 2018-04-11 15:34:31 +01:00
efad85b0e6 reactingEulerFoam: Mixture properties for moving phases only
The calculations for mixture rho and U have been changed so that they
represent phase-averaged quantities over the moving phases only.

The mixture density is used as part of the pressure solution to
calculate buoyancy forces. The pressure within a stationary phase is
considered to be decoupled from the moving phases; i.e., it is
considered self-supporting. Therefore the stationary phase density
should not form a part of buoyancy calculations. This change to the
definition of mixture density ensures this.
2018-04-11 14:50:13 +01:00
47a2dbcb29 reactingEulerFoam: Removed unnecessary U-grad-U calculation 2018-04-11 14:24:13 +01:00
6f4e9ec164 reactingEulerFoam: Order-independent lookup of unordered pair models
Lookup of models associated with unordered phase pairs now searches for
both possible pair names; e.g. gasAndLiquid and liquidAndGas.

Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2018-04-11 11:47:13 +01:00
3e1ab675f6 surfaceFeatureExtract: Refactored pointIndexHitList functionality into corresponding core classes 2018-04-10 23:08:56 +01:00
388b3107c8 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2018-04-10 21:53:30 +01:00
a908847b9c surfaceFeatureExtract: Refactored core line and edge functions corresponding classes 2018-04-10 21:52:44 +01:00
b9d7740e1f reactingEulerFoam: Update and instantiate interface composition models
The nonRandomTwoLiquid and Roult interface composition models have been
instantiated (and updated so that they compile), and a fuller set of
multi-component liquids and multi-component and reacting gases have been
used.

The selection name of the saturated and nonRandomTwoLiquid models have
also been changed to remove the capitalisation from the first letter, as
is consistent with other sub-models that are not proper nouns.
2018-04-09 09:58:00 +01:00
21d5267b6f surfaceFeatureExtract: Refactor core functionality into core classes and libraries 2018-04-06 20:15:28 +01:00
43b35a5173 triangle, triFace, face: Rationalized normal for consistency with the rest of OpenFOAM
For compatibility with all the mesh and related classes in OpenFOAM The 'normal'
function of the 'triangle', 'triFace' and 'face' classes now returns the unit
normal vector rather than the vector area which is now provided by the 'area'
function.
2018-04-06 13:57:36 +01:00
1fd4ecb024 phaseTransferModels: Added deposition model
This model transfers a dispersed droplet phase to a film phase at a rate
relative to its intersection with a third phase. The third phase is
termed the "surface". It can be enabled in constant/phaseProperties as
follows:

    phaseTransfer
    (
        (droplets and film)
        {
            type            deposition;
            droplet         droplets;
            surface         solid;
            efficiency      0.1;
        }
    );

The efficiency is an empirical factor which represents a reduction in
collisions as a result of droplets flowing around the surface phase and
not coalescing on impact.

This work was supported by Georg Skillas and Zhen Li, at Evonik
2018-04-05 15:11:39 +01:00
85a9e17dd5 reactingEulerFoam: Added phase transfer structure
An additional layer has been added into the phase system hierarchy which
facilitates the application of phase transfer modelling. These are
models which exchange mass between phases without the thermal coupling
that would be required to represent phase change. They can be thought of
as representation changes; e.g., between two phases representing
different droplet sizes of the same physical fluid.

To facilitate this, the heat transfer phase systems have been modified
and renamed and now both support mass transfer. The two sided version
is only required for derivations which support phase change.

The following changes to case settings have been made:

- The simplest instantiated phase systems have been renamed to
basicTwoPhaseSystem and basicMultiphaseSystem. The
heatAndMomentumTransfer*System entries in constant/phaseProperties files
will need updating accordingly.

- A phaseTransfer sub-model entry will be required in the
constant/phaseProperties file. This can be an empty list.

- The massTransfer switch in thermal phase change cases has been renamed
phaseTransfer, so as not to be confused with the mass transfer models
used by interface composition cases.

This work was supported by Georg Skillas and Zhen Li, at Evonik
2018-04-05 15:11:39 +01:00
f068c0935a reactingEulerFoam: dragModels: Typo in AttouFerschneider constructor
This change made the trickleBed case not exhibit the instability, so the
parameters have been modified a bit to keep the flow field non-trivial.
2018-04-05 15:11:10 +01:00
c3f30630e4 compressibleInterFoam::TEqn: De-reference the dimensioned internal field of the sources
Minor change to make it simpler to change the set of sources.
2018-04-04 22:05:19 +01:00
633968dec6 phaseSystem: Corrected spelling 2018-04-03 10:29:02 +01:00
262ed2cd33 reactingEulerFoam/phaseSystems/populationBalanceModel: Rationalization of function names and documentation
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
2018-03-29 17:40:45 +01:00
ec9ca0229b reactingEulerFoam: Added Coulaloglou and Tavlarides (1977) coalescence model
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
2018-03-29 17:40:08 +01:00