Commit Graph

3962 Commits

Author SHA1 Message Date
7f09e1901d CloudFunctionObjects: Added relativeVelocity
This cloud function object will write out a lagrangian field of the
relative velocity between the parcels and the surrounding fluid. It
does not have any additional controls.
2019-02-25 09:31:32 +00:00
a88405a138 foamDictionary: Added support for writing dictionaries containing binary entries 2019-02-22 15:59:55 +00:00
190dd33576 externalWallHeatFluxTemperature: Changed relaxation strategy
Now uses previous valueFraction and refValue values rather than the previous
boundary temperature for relaxation.

Resolves bug-report https://bugs.openfoam.org/view.php?id=3175
2019-02-22 12:34:38 +00:00
a4e6adcd54 foamDictionary: Added initial support for dictionaries containing binary data
The dictionary read is set to binary if there is a "FoamFile" header present
which specifies binary format.
2019-02-21 20:02:13 +00:00
2433fe950c Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-02-21 13:58:45 +00:00
b162c4818b ddtScheme::fvcDdtPhiCoeff: Reverted to previous flux-normalised scheme
The current Courant number limited formulation is preferable for cases running
with VERY small Courant numbers but there are stability issues with it on some
cases for which the previous flux-normalised scheme worked well.  Overall the
previous scheme has proved more reliable and fvcDdtPhiCoeff has been reverted to
it pending further research and development in this area which will require
funding:

https://openfoam.org/news/funding-2019/
https://openfoam.org/maintenance/
2019-02-21 13:54:41 +00:00
d7a5456aae convergenceControl: Store solve index per-field not per-entry
Resolves bug report https://bugs.openfoam.org/view.php?id=3173
2019-02-20 14:23:09 +00:00
4f3c3eaab1 functionObjects: phaseScalarTransport: Made writing of alpha*s switchable 2019-02-18 15:20:40 +00:00
c56f2a2e15 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-02-18 12:29:06 +00:00
d2bddb8cca pressureControl: Added p.correctBoundaryConditions() after the pressure limiting
to ensure boundary consistency.
2019-02-18 12:26:52 +00:00
a86fe1f3ac functionObjects: phaseScalarTransport: Solution control update 2019-02-15 16:55:18 +00:00
111cdf3a65 solutionControl: Renaming and improved final logic
The sub-loops of the solution control are now named more consistently,
with ambiguously named methods such as finalIter replaced with ones
like finalPimpleIter, so that it is clear which loop they represent.

In addition, the final logic has been improved so that it restores state
after a sub-iteration, and so that sub-iterations can be used on their
own without an outer iteration in effect. Previously, if the
non-orthogonal loop were used outside of a pimple/piso iteration, the
final iteration would not execute with final settings.
2019-02-15 16:55:11 +00:00
7b1840c7d3 functionObjects: Added phaseScalarTransport function
This is like the scalarTrasport function except that the transported
scalar is confined to a single phase of a multiphase simulation. In
addition to the usual specification for the scalarTransport function
(i.e., a field, schemes and solution parameters), the user needs to
specify the phase-flux or a pressure field which can be used to generate
it.

Example usage for interFoam:

    phaseScalarTransport1
    {
        type            phaseScalarTransport;
        libs            ("libsolverFunctionObjects.so");

        field           s.water;
        p               p_rgh;
    }

Example usage for reactingTwoPhaseEulerFoam:

    phaseScalarTransport1
    {
        type            phaseScalarTransport;
        libs            ("libsolverFunctionObjects.so");

        field           s.water;
        alphaPhi        alphaRhoPhi.water;
        rho             thermo:rho.water;
    }

The function will write out both the per-unit-phase field that is solved
for (s.water in the above examples) and also the mixture-total field
(alphaS.water), which is often more convenient for post-processing.
2019-02-15 10:56:33 +00:00
e9f3811218 chtMultiRegionFoam,reactingParcelFoam: Improved pressure and density limiting 2019-02-15 10:28:15 +00:00
f9cb8e21d9 rhoPimpleFoam: Improved pressure and density limiting 2019-02-15 08:30:32 +00:00
fbb7b5dfaf solidDisplacementFoam/Make/options: Added -I option for dependency checking 2019-02-14 12:10:29 +00:00
dfc10f67a4 equationOfState::perfectFluid: Added Cp departure function 2019-02-14 10:11:00 +00:00
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