Commit Graph

3895 Commits

Author SHA1 Message Date
7a398ae297 specie::thermo: Added better diagnostics to the energy->temperature iteration
If the iteration fails it now re-runs the iteration printing the temperature,
energy, heat-capacity and updated temperature for each iteration to help
diagnose which of the properties is causing the convergence failure.
2019-02-14 10:08:28 +00:00
ea02796f31 particle: Fixed ACMI transfers
The optimisation work done as commit 81947c80 introduced a failure mode
where an ACMI interaction could repeat indefinitely. This has now been
corrected.

Resolves bug report https://bugs.openfoam.org/view.php?id=3166
2019-02-12 15:33:16 +00:00
a3fd68eed0 tutorials: shellAndTubeHeatExchanger: Update due to change in snappyHexMesh writeFlags 2019-02-12 11:35:31 +00:00
682caa71b1 Revert "snappyHexMesh: Changed the default for the writing of pointLevels and cellLevels files in the polyMesh directory"
This reverts commit 799db4d958.
2019-02-12 09:41:00 +00:00
c59c82ac0e radiationModels: Relocation, namespace changes, and fixed Qdot access
The radiation modelling library has been moved out of
thermophysicalProperties into the top-level source directory. Radiation
is a process, not a property, and belongs alongside turbulence,
combustion, etc...

The namespaces used within the radiation library have been made
consistent with the rest of the code. Selectable sub-models are in
namespaces named after their base classes. Some models have been
renamed remove the base type from the suffix, as this is unnecessary.
These renames are:

    Old name:                       New name:

    binaryAbsorptionEmission        binary
    cloudAbsorptionEmission         cloud
    constantAbsorptionEmission      constant
    greyMeanAbsorptionEmission      greyMean/greyMeanCombustion
    greyMeanSolidAbsorptionEmission greyMeanSolid
    wideBandAbsorptionEmission      wideBand/wideBandCombustion

    cloudScatter                    cloud
    constantScatter                 constant

    mixtureFractionSoot             mixtureFraction

Some absorption-emission models have been split into versions which do
and don't use the heat release rate. The version that does has been
given the post-fix "Combustion" and has been moved into the
combustionModels library. This removes the dependence on a registered
Qdot field, and makes the models compatible with the recent removal of
that field from the combustion solvers.
2019-02-11 08:38:56 +00:00
b3003ab5be solidDisplacementFoam::readThermalProperties: Cache "k" for thermal BCs 20190210 2019-02-08 17:07:57 +00:00
11fa53fb66 blockMeshMerge: Minor update for consistency with the "fast" algorithm 2019-02-08 15:16:20 +00:00
97095d2b2a solidDisplacementFoam: Cache the "C" field so that it can be used in thermal BCs 2019-02-08 15:14:39 +00:00
c81abfef05 isoSurface: Fix for isoSurface 'eroding' surfaces down to nothing
The occurrence is from cells with vertices that are shared between two faces
only (these vertices can originate from hex refinement). Decomposing both faces
can occasionally produce triangles with identical vertices and this results in a
non-manifold edge which triggers the erosion procedure.

Avoided by detecting cells with these special vertices and making sure the tet-decomposition
never uses the same points on the faces using them.

Patch contributed by Mattijs Janssens
2019-02-08 14:45:54 +00:00
e407f7dcb7 sprayFoam: Reinstated runTime write call 2019-02-07 14:39:21 +00:00
57a7e718b9 sampling: lineFace: Filtering of duplicate segments
Sometimes the initial point and boundary intersection searches can
generate duplicate information which can lead to line-type sampled sets
having duplicated points. This change explicitly filters these
additional points out, so that the resulting set is optimal.

Resolves bug report https://bugs.openfoam.org/view.php?id=3161
2019-02-07 11:34:41 +00:00
960baec5ef particle: Improve robustness of tracking along edges
The tracking hit criteria have been modified slightly so that particles
do not exit a tetrahedron due to a local displacement smaller than the
round-off error. This prevents unresolvable interactions along edges
where the particle considers itself to be leaving every tet along the
edge.
2019-02-07 11:31:31 +00:00
d31f4f7aae freestream[Pressure|Velocity]FvPatchScalarField: Updated for clang 2019-02-05 22:11:23 +00:00
2395769513 reactingEulerFoam: Use dimensioned<Type>::lookupOrDefault
The advantage of using this constructor for user-input dimensioned model
parameters is that it handles a variety of input; from just the value to
the full name-dimensions-value set. As more is specified, more is
checked.

Some other minor formatting improvements to the reactingEulerFoam
sub-modeling libraries have also been made.

Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-02-05 09:19:01 +00:00
d3a02cff1e freestreamVelocity/Pressure BC: stabilise in the limit of mag(Up) = 0 20190204 2019-02-04 20:55:37 +00:00
015ad0a0a0 specieCoeffs: Separated from the Reaction class 2019-02-04 18:10:56 +00:00
e600bb0482 dynamicCode: Trigger recompile on changes to options and libs 2019-02-04 15:15:19 +00:00
6d4960e36c chtMultiRegionFoam: Added shell-and-tube heat exchanger tutorial
This tutorial serves as a reference of how to create a multi-region
mesh with layer addition.

The multiRegionHeater tutorial and it's variants have been removed as
the geometry is not meaningful and the functionality is now all
represented elsewhere.
2019-02-04 12:27:11 +00:00
7203f20283 chtMultiRegionFoam: Added radiation to reverseBurner tutorial 2019-02-04 09:18:37 +00:00
b292fc6d8d radiation: Changed to dictionary constructors for dimensioned types
This allows coefficients of the constantAbsorptionEmission and
constantScatter to be entered as pure numbers, with the name and
dimensions set automatically, rather than having to specify them
manually.
2019-02-04 09:18:37 +00:00
ba61e39119 surfaceFind: Report true distance to faces 2019-02-04 09:18:36 +00:00
756d10c37c reactingEulerFoam: sizeDistribution: Naming conventions
The keyword which selects how the subset over which the function
operates is generated has been renamed to "selectionMode", to make it
more consistent with other parts of the OpenFOAM (e.g., fvOptions). It
can still take the value "all" or "cellZone". A cell zone is now
specified with a "cellZone", again for consistency.

Error messaging has also been overhauled.

Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-02-04 09:18:36 +00:00
860a40d237 reactingEulerFoam: populationBalanceModel: Added breakup and coalescence models
Added the breakup and coalescence models of Lehr et al. (2002), and the
coalescence model of Luo (1993).

Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-02-04 09:18:36 +00:00
f6bac37fc9 reactingEulerFoam: populationBalanceModel: Fix to drift term
Prior to this commit, the drift term implementation was invalid for a
ratio x_{i+1}/x_i >= 2 between the characteristic volumes of two
subsequent size groups.

Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-02-04 09:18:36 +00:00
528dccc094 dynamicCode: Fixed handling of options and libs 2019-02-04 09:18:36 +00:00
b4a22214a1 populationBalanceModel::binaryBreakupModels::LuoSvendsen: New breakup model
References:
        Luo, H., & Svendsen, H. F. (1996).
        Theoretical model for drop and bubble breakup in turbulent dispersions.
        AIChE Journal, 42(5), 1225-1233.
        Eq. 27, p. 1229.

        Bannari, R., Kerdouss, F., Selma, B., Bannari, A., & Proulx, P. (2008).
        Three-dimensional mathematical modeling of dispersed two-phase flow
        using class method of population balance in bubble columns.
        Computers & chemical engineering, 32(12), 3224-3237.
        Eq. 49, p. 3230.

Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2019-02-02 20:17:45 +00:00
220ba4989d src/OpenFOAM/Make/files: Added incGamma.C
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2019-02-02 14:39:39 +00:00
f24a901084 scalar: Added incomplete gamma functions
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2019-02-02 14:38:15 +00:00
5afec3aae0 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-02-01 14:10:22 +00:00
67cfa3f257 reactingMultiphaseEulerFoam::multiphaseSystem: Applied the new generalised subCycle
which now handles lists of fields.  This avoids problems with the interaction
between sub-cycling and outer-iteration.
2019-02-01 14:08:49 +00:00
700f11fa11 dynamicCode: Put code entries on a list
The dynamic code functionality has been generalised so that the names of
the code entries in the specifying dictionary can be set by the caller.
This means that functions which utilise dynamic code but use different
entry names (e.g., codedFunctionObject uses codeExecute, codeEnd,
etc..., instead of code) now function correctly. The differently named
entries now form part of the library hash, and re-building triggers
appropriately as they are modified.
2019-02-01 09:17:26 +00:00
0497d2a170 snappyHexMesh: Per-patch face merging options
Face merging in the layer addition phase can now be controlled at a
per-patch level. By default, faces that are connected to the same cell
and patch, and which do not differ in orientation by more than the
planar angle, are merged if the patch they belong to is associated with
meshed geometry. This has not changed, but it can now be overridden with
a new "mergeFaces" keyword. This can be set in addLayersControls to
control the default behaviour on all patches, and it can be overridden
in the layer settings associated with each patch. For example:

addLayersControls
{
    mergeFaces true; // <-- Merge faces on all patches, not just those
                     // associated with geometry

    layers
    {
        wall1
        {
            nSurfaceLayers 2;
        }
        wall2
        {
            nSurfaceLayers 2;
            mergeFaces false; // <-- Do not merge faces on this patch
        }
    }
}

In addition, the patch-association has been fixed so that faces are no
longer merged on patches which are set not to merge, but are
cell-connected to patches which are.

This change makes it possible to guarantee that the surface mesh retains
the same geometry before and after layer addition, and therefore add
layers to coupled interfaces.
2019-01-31 09:00:18 +00:00
82356c7d08 tutorials: windAroundBuildings: Updated snappyHexMesh write flags 2019-01-31 08:55:05 +00:00
799db4d958 snappyHexMesh: Changed the default for the writing of pointLevels and cellLevels files in the polyMesh directory
These files are now only written if the "refinement" write flag is set:

writeFlags
(
    .
    .
    .
    refinement
);
2019-01-30 17:50:23 +00:00
bcd79106e3 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-01-30 15:02:51 +00:00
bd93bf10c8 changeDictionary: Added a "deprecated", use foamDictionary instead 2019-01-30 15:01:18 +00:00
d2dcd6d679 tests: waterAndIsopropanolEvaporation: Updated thermodynamics
Updates to the thermodynamic input data was necessary following the
recent changes to the departure functions.
2019-01-30 12:08:57 +00:00
b90ceefa91 tests: Fixed name of turbulent Schmidt number 2019-01-30 12:08:57 +00:00
20cefd3b81 timeVaryingMappedFixedValueFvPatchField: Corrected rmap of the timeVaryingMappedFvPatchField 2019-01-30 11:43:46 +00:00
da77e6a77f tutorial simplifiedSiwek: Updated chemistry stability settings for the new Jacobian
Resolves bug-report https://bugs.openfoam.org/view.php?id=3155
2019-01-29 22:38:47 +00:00
e5532ff568 Changed writeKeyword to the new simpler writeEntry form where appropriate 2019-01-29 22:32:42 +00:00
15b1d6e7ec codeTemplates/BC: Updated to use the new primitive writeEntry 2019-01-29 13:57:48 +00:00
8b4f866b51 timeVaryingMappedFixedValueFvPatchField: Refactored so the underlying mapping function can be used in other BCs
The new patch field mapping class timeVaryingMappedFvPatchField has been
factored out of the timeVaryingMappedFixedValueFvPatchField BC so that it can be
used to map data onto fields stored within other BCs.

In the process the writeEntryIfDifferent function had to be moved from
fvPatchField to dictionary so that it can still be used in the
timeVaryingMappedFvPatchField class and it made good sense to create the
non-conditional variant writeEntry to simplify the patch field write functions.
This rationalisation has been propagated all other patch fields.
2019-01-29 10:09:38 +00:00
08553fbc9d Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-01-28 17:38:28 +00:00
f070388e5b liquidProperties::N2: Corrected mu coefficient
Resolves bug-report https://bugs.openfoam.org/view.php?id=3136
2019-01-28 17:37:56 +00:00
5e2f17a9af populationBalanceModel: phaseChange: Improvements
A number of improvements have been made to the population balance phase
change drift model.

- The model now checks the ordering of the phase pairs and changes the
sign of the drift rate accordingly.

- The phase change mass flux and weights are calculated for each
velocity group, so the drift rate and phase change mass flux should be
consistent for each velocity group.

- By default the phase change mass flux is distributed between the size
groups based on the interfacial area of each group. For backward
compatibility number weighting can be enabled with a new
"numberWeighted" option.

The model now requires the user to provide a list of phase pairs in the
usual parenthesised form, rather than using the name. For example:

    phaseChange
    {
        pairs ((gas and liquid));
    }

Patch contributed by Juho Peltola, VTT.
2019-01-28 16:47:34 +00:00
dc6b7d7803 ThermalPhaseChangePhaseSystem: Fix for building with Clang 2019-01-28 11:59:01 +00:00
3b9c7f7c81 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-01-28 09:54:51 +00:00
51a8b15afe Renamed MVAPICH2 -> MV2MPI for consistency with the MPI implementation naming convention
Resolves patch request https://bugs.openfoam.org/view.php?id=3153
2019-01-28 09:52:41 +00:00
7e799e9fef TwoResistanceHeatTransferPhaseSystem: Changed stabilisation term
The stabilisation term for the heat transfer with the interface
temperature has been changed to mirror the local heat transfer in the
phase, rather than an effective heat transfer across both phases. This
makes the stabilisation term match the actual temperature-based transfer
terms more accurately. The difference is particularly significant when
the mass transfer rate is high, and cases of this type gain a
significant stability benefit from this change as a result.

Patch contributed by Juho Peltola, VTT.
2019-01-25 11:00:32 +00:00