Commit Graph

3962 Commits

Author SHA1 Message Date
89b4ad6ba7 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-08-01 14:27:11 +01:00
b8fcd10cf7 singleStepCombustion: Refactored to include the singleStepReactingMixture functionality
allowing the removal of singleStepReactingMixture which is the first step in
refactoring the instantiation of the reaction scheme.
2019-08-01 14:24:13 +01:00
006c3a5099 thermoPhysicalModels/specie: Corrected documentation
Removed historic references to conversion from mass-based to mole-based
properties in some thermodynamic and transport models
2019-07-31 16:47:22 +01:00
332b72d561 tutorials: reactingTwoPhaseEulerFoam: Updates to steamInjection
Added limiters for the phase temperatures to prevent divergence, and
monitors to report the minimum and maximum values. Removed the
setTimeStep functionObject as the temperature limiters make this
unnecessary. Dereased the number of energy correctors and set a higher
Courant number limit to reduce the execution-time of the case.

Patch contributed by Juho Peltola, VTT.
2019-07-31 16:01:56 +01:00
a8020984f6 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-07-31 15:45:58 +01:00
2d0f459ea5 chemistryModel, reactions, ODESolver: Added "li" argument to all functions which evaluate the reaction rate
In chemistryModel "li" is set to the current cell index but for other reacting
systems it should be set to the current index of the element for which the
reaction system is being evaluated.

In the ODESolver "li" is the current index of the element for which the ODE
system is being solved if there is a list of related systems being solved,
otherwise it can be set to 0.
2019-07-31 15:40:04 +01:00
ccb0f5b7b2 cut: Symmetric operation when levels are all zero 2019-07-31 14:17:08 +01:00
ba5cdbeb61 functionObject::fieldAverage: Corrected the name of mean and variance of phase fields
Now rather than the average of "U.air" being named "U.airMean" it is correctly
named for the air phase "UMean.air".
2019-07-30 12:22:10 +01:00
22bba48722 Field: Corrected handling of unrefinement self-mapping of field
Resolves bug-report https://bugs.openfoam.org/view.php?id=3316
2019-07-26 11:38:03 +01:00
e684cc1c3a wmkdep: Added the source file directory to the directory search list 2019-07-25 18:03:48 +01:00
b942ba07e0 ractingEulerFoam: populationBalance: Refactored scaling
Refactored the function for scaling the size group volume fractions to
better handle situations in which their sum drifts away from unity.
Scaling is now turned on by default, and can be turned off in the
solution dictionary for the population balance.

Additional revision and renaming of *Polydisperse tutorials

Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-07-25 12:27:09 +01:00
696d5f4941 reactingEulerFoam: populationBalance: Clean up of header documentation
Removed unnecessary clutter in header descriptions for models that are
only required for testing purposes.

Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-07-25 12:12:05 +01:00
7af67fbf3f reactingEulerFoam: Corrected LaakkonenAlopaeusAittamaa daughter size distribution model
This fix also required a generalization of the corresponding base class,
which allows the user to specify the number of daughter particles per
breakup event separately.

Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-07-25 12:12:05 +01:00
e24f701372 reactingEulerFoam: populationBalance: Corrected treatment of coalescence
Following this commit, a coalescence event leading to a size larger than
that of the last size group is not discarded anymore, but leads to an
accumulation of volume fraction in the last size group.

Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-07-25 12:12:05 +01:00
d0579252a0 reactingEulerFoam: phaseForces: Corrected calculation of accumulated force
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-07-25 12:12:05 +01:00
824b243ee8 GeometricField: Removed unimplemented member function prototypes 2019-07-25 10:49:06 +01:00
9ca4cb8b99 barotropicCompressibilityModel: Obtain rhovSat from pSat
Resolves feature request https://bugs.openfoam.org/view.php?id=3314
2019-07-24 14:12:26 +01:00
eecd590eb6 sixDoFRigidBodyMotionSolver: Derive from sixDoFRigidBodyMotion
Resolves patch request https://bugs.openfoam.org/view.php?id=3308
Patch contributed by SeongMo Yeon
2019-07-23 16:45:48 +01:00
4a810cbe9d SpalartAllmaras[I][D]DES: Named temporary fields and added optional caching for LESRegion
The various temporary fields used to create the nuTilda equation sources are now
internal fields to avoid unnecessary evaluation of boundary conditions, lowering
storage and reducing CPU time, particularly when running in parallel.  These
temporary fields are now named with respect to the model so that they can be
cached conveniently and written as required.

The LESRegion field can now be contructed on demand if it is requested as a
cached temporary field and written out for diagnostics if needed, for example in
the tutorials/incompressible/pisoFoam/LES/motorBike tutorial:

cacheTemporaryObjects
(
    SpalartAllmarasDDES:LESRegion
);

functions
{
    writeCachedObjects
    {
        type        writeObjects;
        libs        ("libutilityFunctionObjects.so");

        writeControl writeTime;
        writeOption anyWrite;

        objects
        (
            SpalartAllmarasDDES:LESRegion
        );
    }

    #include "cuttingPlane"
    #include "streamLines"
    #include "forceCoeffs"
}
2019-07-23 11:48:14 +01:00
eef560b883 objectRegistry: Added member function to query and add to the cached temporary objects list 2019-07-23 11:45:53 +01:00
94642ba4d9 etc/bashrc: Added better handling for symbolic links in the WM_PROJECT_DIR path
Patch contributed by Bruno Santos
2019-07-22 14:36:20 +01:00
b5f471585a gradientEnergyFvPatchScalarField: Added writing of "value" field
Resolves feature request https://bugs.openfoam.org/view.php?id=3311
2019-07-22 12:01:44 +01:00
fdf1216ef5 objectRegistry: Added support for optionally caching temporary objects
which provides a very convenient mechanism to process and write any temporary
fields created during a time-step, either within models the construction of
equations and matrices or any other intermediate processing step within an
OpenFOAM application.  The cached fields can relate to physical properties in
models, e.g. the generation term or other terms in the turbulence models, or
numerical, e.g. the limiters used on convection schemes.  This mechanism
provides a new very powerful non-intrusive way of analysing the internals of an
OpenFOAM application for diagnosis and general post-processing which cannot be
easily achieved by any other means without adding specific diagnostics code to
the models or interest and recompiling.

For example to cache the kEpsilon:G field in
tutorials/incompressible/simpleFoam/pitzDaily add the dictionary entry

cacheTemporaryObjects
(
    grad(k)
    kEpsilon:G
);

to system/controlDict and to write the field add a writeObjects entry to the
functions list:

functions
{
    writeCachedObjects
    {
        type        writeObjects;
        libs        ("libutilityFunctionObjects.so");

        writeControl writeTime;
        writeOption anyWrite;

        objects
        (
            grad(k)
            kEpsilon:G
        );
    }

    #includeFunc streamlines
}

If a name of a field which in never constructed is added to the
cacheTemporaryObjects list a waning message is generated which includes a useful
list of ALL the temporary fields constructed during the time step, e.g. for the
tutorials/incompressible/simpleFoam/pitzDaily case:

--> FOAM Warning : Could not find temporary object dummy in registry region0
Available temporary objects
81
(
(((0.666667*C1)-C3)*div(phi))
div(phi)
(interpolate(nuEff)*magSf)
surfaceIntegrate(phi)
(interpolate(DepsilonEff)*magSf)
((interpolate(((1|((1|(1|A(U)))-H(1)))-(1|A(U))))*snGrad(p))*magSf)
grad(p)
((interpolate(nuEff)*magSf)*snGradCorr(U))
(interpolate((1|((1|(1|A(U)))-H(1))))*magSf)
((1|((1|(1|A(U)))-H(1)))-(1|A(U)))
((Cmu*sqr(k))|epsilon)
interpolate(HbyA)
interpolate(DkEff)
interpolate(U)
phiHbyA
weights
div(((interpolate((1|((1|(1|A(U)))-H(1))))*magSf)*snGradCorr(p)))
(phiHbyA-flux(p))
MRFZoneList:acceleration
average(interpolate(max(epsilon,epsilonMin)))
div(((interpolate(DepsilonEff)*magSf)*snGradCorr(epsilon)))
nuEff
kEpsilon:G
grad(k)
interpolate((1|((1|(1|A(U)))-H(1))))
(nuEff*dev2(T(grad(U))))
grad(U)
interpolate(epsilon)
(phi*linearUpwind::correction(U))
((interpolate(DepsilonEff)*magSf)*snGradCorr(epsilon))
grad(k)Cached
(HbyA-((1|((1|(1|A(U)))-H(1)))*grad(p)))
pos0(phi)
-div((nuEff*dev2(T(grad(U)))))
H(1)
interpolate(k)
((nut|sigmak)+nu)
snGrad(p)
(0.666667*div(phi))
surfaceIntegrate(((interpolate((1|((1|(1|A(U)))-H(1))))*magSf)*snGradCorr(p)))
DepsilonEff
(1|A(U))
surfaceIntegrate(((interpolate(DepsilonEff)*magSf)*snGradCorr(epsilon)))
limitedLinearLimiter(epsilon)
surfaceIntegrate(((interpolate(DkEff)*magSf)*snGradCorr(k)))
grad(epsilon)
(interpolate(DkEff)*magSf)
div(((interpolate(DkEff)*magSf)*snGradCorr(k)))
surfaceSum(magSf)
((1|A(U))-(1|((1|(1|A(U)))-H(1))))
(1|((1|(1|A(U)))-H(1)))
((interpolate((1|((1|(1|A(U)))-H(1))))*magSf)*snGradCorr(p))
mag(div(phi))
surfaceSum((magSf*interpolate(max(epsilon,epsilonMin))))
interpolate(DepsilonEff)
-grad(p)
snGradCorr(p)
interpolate(p)
interpolate(max(epsilon,epsilonMin))
dev(twoSymm(grad(U)))
surfaceIntegrate((phi*linearUpwind::correction(U)))
(magSf*interpolate(max(epsilon,epsilonMin)))
limitedLinearLimiter(k)
(nut+nu)
HbyA
max(epsilon,epsilonMin)
surfaceIntegrate(((interpolate(nuEff)*magSf)*snGradCorr(U)))
surfaceIntegrate(phiHbyA)
DkEff
(((C1*kEpsilon:G)*epsilon)|k)
(mag(S)+2.22507e-308)
(((1|A(U))-(1|((1|(1|A(U)))-H(1))))*grad(p))
((nut|sigmaEps)+nu)
((interpolate(DkEff)*magSf)*snGradCorr(k))
(nut*(dev(twoSymm(grad(U)))&&grad(U)))
interpolate(nuEff)
((C2*epsilon)|k)
interpolate((nuEff*dev2(T(grad(U)))))
(epsilon|k)
div(phiHbyA)
div(((interpolate(nuEff)*magSf)*snGradCorr(U)))
)

Multiple regions are also supported by specifying individual region names in a
cacheTemporaryObjects dictionary, e.g. in the
tutorials/heatTransfer/chtMultiRegionFoam/heatExchanger case

cacheTemporaryObjects
{
    air
    (
        kEpsilon:G
    );

    porous
    (
        porosityBlockage:UNbr
    );
}

functions
{
    writeAirObjects
    {
        type        writeObjects;
        libs        ("libutilityFunctionObjects.so");

        region      air;
        writeControl writeTime;
        writeOption anyWrite;

        objects     (kEpsilon:G);
    }

    writePorousObjects
    {
        type        writeObjects;
        libs        ("libutilityFunctionObjects.so");

        region      porous;
        writeControl writeTime;
        writeOption anyWrite;

        objects     (porosityBlockage:UNbr);
    }
}
2019-07-22 10:31:36 +01:00
403bc05870 turbulenceModels: Explicitly name model specific fields using the modelName function 2019-07-22 10:22:46 +01:00
01da12c1f6 IOobject: Added modelName member function
which constructs the name for a field property associated with the model by
pre-pending the given field name with <modelType>: e.g. the generation term in
the kEpsilon model is named kEpsilon:G
2019-07-22 10:19:13 +01:00
53e8458153 foamToVTK: Added support for vol internal fields 2019-07-20 20:16:18 +01:00
5c49d24b7d Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-07-19 23:38:44 +01:00
5e7895daf0 wmake/rules/General/mplibINTELMPI64: Updated paths for recent releases of Intel MPI 2019-07-19 23:38:05 +01:00
7e65281f60 ThermoCloud: Corrected calculation of sigmap
https://bugs.openfoam.org/view.php?id=3309
2019-07-19 11:39:44 +01:00
853aab18cf foamFormatConvert: Fixed region handling for lagrangian data 2019-07-18 11:37:56 +01:00
1769c87804 GeometricField: Added another New temporary field constructor 2019-07-18 11:37:10 +01:00
0c66eb9f94 finiteVolume: Use the GeometricField::New method to construct temporary fields
Avoids database registration of temporary fields, simplifies the code and
improves maintainability.
2019-07-18 09:32:12 +01:00
9bcbaea4a3 functionObjects::scalarTransport/phaseScalarTransport: Use int for the corrector loop
rather than label.
2019-07-15 22:29:10 +01:00
67d3a8dc1b paraFoam: Added support to read vol internal fields
This is useful to visualise sources which are created as
volScalarField::Internal, e.g. the turbulence generation term for models like
kEpsilon in which it is named kEpsilon:G.
2019-07-15 22:26:34 +01:00
d1fb1944e5 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-07-15 12:51:00 +01:00
b7c0646ed9 PVFoamReader: Added support for visualising surfaceFields
To avoid additional clutter in the interface volFields, surfaceFields and
pointFields are now selected from a single fields selection box consistent with
the single directory with guaranteed unique names in which they are stored.

Note that when visualising the "phi" flux fields that these are extensive, the
value depends directly on the face area, so unless the mesh is uniform
interpolated continuous colour plots are not physical or informative.

Based on proposal contributed by Mattijs Janssens
2019-07-15 11:16:35 +01:00
aab3a22708 KinematicParcel: Corrected sign of Eo for bubbles
Resolves bug report https://bugs.openfoam.org/view.php?id=3305
2019-07-15 09:00:43 +01:00
6c7d08b262 isoSurface: Selection of filtering level
The filtering level for an iso-surface can now be selected. The keyword
is "filtering", and the options are "full", "partial" or "none". The
default is "full". The other options are only retained for debugging and
to provide a fallback if robustness of the full filtering algorithm is
an issue. As of commit 2ee8b7ac, "full" filtering has no known
disadvantages and is recommended in all usage cases.

This setting replaces the "regularise" entry, which switched between
what are now the "full" and "none" settings. "partial" was not
previously an option.
2019-07-15 08:34:07 +01:00
916d0a0624 isoSurface: Additional fixes for isoSurface 'eroding' surfaces down to nothing
This is a slight rework of commit c81abfef. Instead of adapting tet
base points cell-by-cell, the dangling points are pre-computed and then
the adaptations to the base points are made face-by-face. This correctly
adapts faces which have different dangling points relative to the owner
and neighbour cells.
2019-07-15 08:34:06 +01:00
26187dd89d etc/templates: Updated to use the new dictionary "slash" syntax 2019-07-11 19:54:17 +01:00
33c3521c7a Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-07-11 19:45:12 +01:00
e947e4d301 tutorials: Updated to use the new dictionary "slash" syntax 2019-07-11 19:44:29 +01:00
163324d837 foamDictionary: Added support for the new dictionary "slash" syntax
Maintains backward compatibility with the current "dot" syntax.
2019-07-11 19:43:40 +01:00
4e902bf450 fixedValueFvPatchField: Removed value constructor
The corresponding constructor in the base class was removed as part of a
number of related changes to patch field construction in commit
70021b12.

Resolves bug report https://bugs.openfoam.org/view.php?id=3304
2019-07-11 10:46:00 +01:00
b7c0cdefce dictionary: Added support for absolute paths when reading dictionaries referred to within keywords
For example in the combustion/coldEngineFoam/freePiston/0/p field the
internalField entry may be obtained from the include/caseSettings dictionary
using either a relative path:

    internalField   uniform $include/caseSettings!internalField/p;

or an absolute path:

    internalField   uniform ${$FOAM_CASE/0/include/caseSettings!internalField/p};

in which recursive substitution using ${...} is applied to expand the $FOAM_CASE
environment variable.
2019-07-11 09:46:42 +01:00
c4a61bb8ac dictionary: Read dictionaries referred to within keywords relative to the directory of the current dictionary
Special handling for absolute paths will be added.
2019-07-11 00:22:17 +01:00
cd910ed6b8 dictionary::inputSyntaxEntry: Completed support for specifying the default syntax in etc/controlDict 2019-07-11 00:16:30 +01:00
cba96822f4 tutorials/compressible/rhoSimpleFoam/aerofoilNACA0012/system/blockMeshDict: Updated to demonstrate the new "slash" syntax 2019-07-10 19:41:44 +01:00
329852dcba applications/test/dictionary: Added comments to the new test dictionaries 2019-07-10 19:41:17 +01:00
16333b47c5 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-07-10 15:26:32 +01:00