Commit Graph

4328 Commits

Author SHA1 Message Date
28a3b34c49 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-10-02 14:48:04 +01:00
ebc46492ca reactingFoam, rhoPorousSimpleFoam, chtMultiRegionFoam, reactingParcelFoam, sprayFoam: Updated the handling of HbyA
Changed the interpolation of HbyA from

    fvc::flux(rho*HbyA)

to

    fvc::interpolate(rho)*fvc::flux(HbyA)

for consistency with the latest compressible p-U algorithm in rhoPimpleFoam.

For most cases this change does not affect the results but test on highly
compressible, transonic and supersonic cases have shown a small but clear
benefit in the new form.
2019-10-02 14:31:06 +01:00
c32d7ea592 wmkdep: Removed a file search optimisation which can generate the incorrect path
if there is more than one search directory containing the same file name.
2019-10-02 14:30:04 +01:00
d94a7bf590 tutorials/incompressible/simpleFoam/turbineSiting: Replaced file copying with foamDictionary and .orig 2019-10-01 15:00:55 +01:00
5e09cccd9c topoSet: Corrected output of size of zones and patches in parallel 2019-10-01 14:57:17 +01:00
826c380fa3 tutorials/lagrangian/reactingParcelFoam/splashPanel: Resolved divergence
The side surfaces in this tutorial have been made symmetry planes to
match the corresponding boundaries in the film region, and the top has
had its pressure condition changed to totalPressure. The case now runs
successfully to completion.

Previously the pressure-velocity boundary condition combination on the
non-film patches was incorrect in that in regions of outflow a pressure
value was not being specified. This resulted in divergence.
2019-10-01 13:39:26 +01:00
1bbac95448 objectRegistry: Improvements to caching of temporary objects
Cached temporary objects are now registered from the moment of
construction. This means it is possible to use them before they go out
of scope. Non-cached temporaries are not registered, as before.

The check for the existence of requested cached objects is now done
after function object evaluation. This means that caching can be done on
fields generated by the function objects themselves without generating
warning messages.

The above, however, means that if an object isn't successfully cached
and it's lookup in a function fails, then the warning will not be
generated before the lookup raises an error. This could make diagnosing
the reason for such a failure more difficult. To remedy this the content
of the warning (i.e., the list of objects that are available for
caching) has been added to the lookup error message if the looked up
name is on the caching list. The same level of logged information is
therefore retained in the event of caching and lookup failures.
2019-09-30 16:32:39 +01:00
54f379f668 Changed species' diffusivity to alphaEff
All multi-specie solvers function on the assumption that the
mass-diffusivities of the different species are the same. A consequence
of this is that the diffusivities of energy and mass must be the same,
otherwise mass diffusivity results in unphysical temperature
fluctuations. This change enforces this requirement across all
multi-species solvers.

For the same reason, the turbulent Schmidt number has been removed from
the multi-component phase model in reactingEulerFoam. In order to obey
physical constraints this Schmidt number had to be exactly the same as
the Prandtl number. This condition is now enforced by the solver, rather
than relying on the input being correct.
2019-09-30 16:32:39 +01:00
f1b975bbb1 rigidBodyDynamics::restraints::linearSpring: Added switch "allowSlack" to allow no restraint when line is shorter than restLength
Based on patch contributed by SeongMo Yeon
Resolved contribution https://bugs.openfoam.org/view.php?id=3352
2019-09-30 14:26:57 +01:00
2ebed5ec71 functionObject: Added executeAtStart
By default most functionObjects now execute and write at the start-time except
those that perform averaging (fieldAverage, dsmcFields) which cannot be executed
until the end of the first time-step.  There is also a new optional
functionObject dictionary entry "executeAtStart" which defaults to true but can
be set false if the execution and results of the functionObject are not required
or appropriate at the start-time.

A result of this change is that time logs of forces, sampling etc. now include a
values for time 0.
2019-09-30 11:03:20 +01:00
6f1c3362a6 cloudInfo: Corrected libcloudFunctionObjects -> liblagrangianFunctionObjects
Resolves bug-report https://bugs.openfoam.org/view.php?id=3356
20190929
2019-09-27 11:40:09 +01:00
24d9974a3d regionToCell: Corrected indexing of neighbour cell selections 2019-09-26 14:00:43 +01:00
46e8d22445 etc/caseDicts/annotated/mirrorMeshDict: Added examples of planeEquation and embeddedPoints
Resolves contribution https://bugs.openfoam.org/view.php?id=3342
Patch provided by Gerhard Holzinger
2019-09-25 13:27:07 +01:00
4feee735a3 functionObjects::log: Added optional switch to disable dimension checking:
Description
    Calculates the natural logarithm of the specified scalar field.

    Performs \f$ln(max(x, a))\f$ where \f$x\f$ is the field and \f$a\f$ an
    optional clip to handle 0 or negative \f$x\f$.  Dimension checking can
    optionally be suspended for this operation if \f$x\f$ is dimensioned.

    Example of function object specification:
    \verbatim
    log1
    {
        type            log;
        libs            ("libfieldFunctionObjects.so");
        field           p;
        clip            1e-3;
        checkDimensions no;
    }
    \endverbatim

    or using \c postProcess
    \verbatim
    postProcess -func 'log(p, clip=1e-3, checkDimensions=no)'
    \endverbatim

Usage
    \table
        Property        | Description               | Required | Default value
        type            | Type name: log            | yes      |
        clip            | Clip value                | no       |
        checkDimensions | Dimension checking switch | no       |
    \endtable
2019-09-24 11:37:38 +01:00
474962ffcc reacting*EulerFoam: Pair-storage and specification of interface composition models
Interface composition models are now specified in
constant/phaseProperties like so:

   interfaceComposition.gas
   (
        (gas and water)
        {
            // ...
        }
        (gas and oil)
        {
            // ...
        }
   );
   interfaceComposition.water
   (
        (water and gas)
        {
            // ...
        }
        // ...
   );
   // ...

I.e., the models associated with diffusive transfer within a phase
"<phase>" are specified in the list "interfaceComposition.<phase>".
Within the list, models are specified in unordered phase pairs
corresponding to the interface.

This replaces a system where models were specified in a single
interfaceComposition list, with the ordered pair entry "(<phase1> in
<phase2>)" meaning transfer within phase1 at the interface with phase2.
This ordered pair syntax is otherwise used for distinguishing between
continuous and dispersed phases. This dual meaning was considered
counter-intuitive. The new entries also more closely resemble the
associated two-resistance heat and mass transfer model specifications.
2019-09-23 09:13:14 +01:00
396c552949 reacting*EulerFoam: Renamed massTransfer models diffusiveMassTransfer
There are now many types of mass transfer, so massTransfer is now too
generic a term for what these models do. These models generate a
diffusivity which when multiplied by a concentration difference results
in mass transfer, hence the new name.

This change is not backwards compatible. Cases running the interface
composition system will need "massTransfer" entries renamed to
"diffusiveMassTransfer".
2019-09-23 08:43:29 +01:00
9cbc90110d reacting*EulerFoam: phaseSystem: Renamed massTransfer method specieTransfer 2019-09-19 17:02:23 +01:00
975784d062 BlendedInterfacialModel: Removed unused methods 2019-09-19 17:02:23 +01:00
a9de972d7a reacting*EulerFoam: phaseSystem: Removed dmdt(pair) method
Mass transfer for a pair is now no longer available at the top level.
The solver should never need to know mass transfer rates individually;
the dmdts method (which returns all mass transfers simultaneously)
should be sufficient.

In addition the construction of zero-valued fields and addition of
fields into lists and tables within the phase system has been
simplified and code duplication removed.
2019-09-19 17:02:23 +01:00
66ad375c1d reacting*EulerFoam: Corrected pressure equation for incompressible variable-density phases
The density time-derivative terms should always appear in the pressure
equation except when the phase is isochoric (i.e., the equation of state
is constant density) and the phase is pure (as species fraction changes
can also generate changes in density, even for an isochoric equation of
state). The logic in the pressure equations of reactingTwoPhaseEulerFoam
and reactingMultphaseEulerFoam has been changed to fulfil this
requirement.

This has resolved a mass-conservation issue with the
waterAndIsopropanolEvaporation case, which uses a multi-component liquid
with a constant-density equation of state.
2019-09-19 17:01:39 +01:00
fc2e2b54da TwoResistanceHeatTransferPhaseSystem: Restored asymmetric stabilisation term
See commit 7e799e9f for details.
2019-09-19 17:01:39 +01:00
df683520c8 reacting*EulerFoam: Corrected mass transfer processes
A number of fixes have been made to the mass transfer implementations in
the phase system hierarchy in order to improve conservation of energy,
and other properties.

From an implementation perspective, each phase system that defines mass
transfer now has also to implement all property transfers that occur as
a result. The base classes no longer generate the transfers
automatically; it is not in general possible to correctly calculate the
property transfer terms from a single accumulated mass transfer rate.

To facilitate this additional burden on the derived layers, a number of
addDmdt? and addDmidt? methods have been added which compute and add
these transfers into the governing equations in a generic manner. In the
case of simple explicit mass transfers, a mass-transferring system need
only pass a table of the transfer rates to these functions in order to
generate the appropriate transfer terms.

The difference between the addDmdt? and addDmidt? methods is that the
former takes a table of bulk transfers across the interfaces, whilst the
latter takes a table-of-tables of individual species transfers.

Updates to PopulationBalancePhaseSystem and
ThermalPhaseChangePhaseSystem were provided by Timo Niemi, and Juho
Peltola, VTT.
2019-09-19 17:01:39 +01:00
bfbaddc5e5 test/multiphase/reactingTwoPhaseEulerFoam/interfaceComposition: Added mass and energy conservation plots 2019-09-19 17:01:39 +01:00
b77dacd0b9 tutorials/*/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporatingDissolving: Fixed air properties 2019-09-19 17:01:39 +01:00
ea129bca76 reacting*EulerFoam: MomentumTransferSystem: Corrected turbulent dispersion force handling for multiple phases 2019-09-19 16:38:37 +01:00
210cf4f361 reacting*EulerFoam: phaseSystem: Corrected blended model pair order
Blended models are now constructed with the same phase order as the
corresponding pair stored by the phase system. This should ultimately
prevent some of the sign comparisons that are currently necessary when
applying models.
2019-09-19 16:08:54 +01:00
29e4cc592a constrainHbyA: Added constrainPhiHbyA to constrain the predicted flux directly 2019-09-18 16:37:36 +01:00
4718103136 blockMesh: Improved block face orientation check and added an optional switch
//- Switch checking block face orientation
        //  to ensure that all faces are outward-pointing.
        //  This check may fail if the block is intentionally very twisted
        //  for curved edges to be applied and can be switched off.
        static Switch checkBlockFaceOrientation;

To switch this check off set

checkBlockFaceOrientation false;

in blockMeshDict.
2019-09-18 11:16:41 +01:00
c1b52700c3 solidParticle: Corrected typo
Resolves bug-report https://bugs.openfoam.org/view.php?id=3350
2019-09-17 17:39:12 +01:00
a79786f7c8 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-09-16 09:00:03 +01:00
0284c2c906 tutorials/incompressible/simpleFoam/pitzDaily: Removed duplicate functions entry 2019-09-16 08:59:27 +01:00
7651bbaf62 tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting: Restored endTime 2019-09-12 11:24:23 +01:00
216cb0f0fe chemkinToFoam: Added -lchemistryModel 2019-09-11 11:46:57 +01:00
124c70a90d reactingEulerFoam: Use the turbulent dispersion face flux in the face based algorithm.
For reactingTwoPhaseEulerFoam or if only two phases are present in
reactingMultiphaseEulerFoam, new and old formulations are equivalent. In case,
gradients of alpha of more than two phases appear at the same point, it is
necessary to use face based force formulations of turbulent dispersion models,
which take the respective disperse phase fractions into account, and
subsequently blend those.

Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-09-11 09:45:10 +01:00
0a5dc8e3af reactions: Moved from specie to chemistryModel to avoid linkage order problems 2019-09-10 19:56:57 +01:00
d1acbe25bb tutorials/combustion/reactingFoam/RAS/membrane: Clean up
Removed unused species and made the schemes appropriate for a
non-orthogonal mesh.
2019-09-10 11:01:22 +01:00
d4042c0e49 tutorials/reactingTwoPhaseEulerFoam/.../titaniaSynthesis: Corrected parameters and fixed file permissions
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum Dresden -
Rossendorf (HZDR) and VTT Technical Research Centre of Finland Ltd.
2019-09-09 09:31:33 +01:00
99fc24102f reactingEulerFoam/.../aerosolDrag: Fixed reference to tmp
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum Dresden -
Rossendorf (HZDR) and VTT Technical Research Centre of Finland Ltd.
2019-09-09 09:26:14 +01:00
11748012ad DPMFoam: Added support for the kOmegaSST turbulence model 2019-09-08 20:05:49 +01:00
107b5d161d patchSummary: Added printing of the actual patchField types
Now for the wall in the simpleFoam pitzDaily tutorial case the following
patchField types are printed

group   : wall
    scalar              v2              v2WallFunction
    scalar              nut             nutkWallFunction
    scalar              k               kqRWallFunction
    scalar              nuTilda         zeroGradient
    scalar              p               zeroGradient
    scalar              omega           omegaWallFunction
    scalar              f               fWallFunction
    scalar              epsilon         epsilonWallFunction
    vector              U               noSlip

instead of

group   : wall
    scalar              v2              generic
    scalar              nut             generic
    scalar              k               generic
    scalar              nuTilda         zeroGradient
    scalar              p               zeroGradient
    scalar              omega           generic
    scalar              f               generic
    scalar              epsilon         generic
    vector              U               noSlip
2019-09-08 16:39:45 +01:00
a9bfb223ff pointPatchField: Define typedef value_type locally as it is not inherited from UList 2019-09-08 16:36:54 +01:00
f2fe387423 turbulenceFieldsTemplates: omega not registered on construction 2019-09-08 16:36:12 +01:00
cbae0c8cc0 foamDictionary: Improved handling of header for binary files 2019-09-07 20:55:23 +01:00
723b1d6024 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-09-06 18:08:19 +01:00
f1912cac1e Merged 2019-09-06 18:08:01 +01:00
f84708c689 mixtureKEpsilon: Added a phase fraction limiter for bubble generated turbulence
The new optional entry alphap is the as phase fraction below which bubble
generated turbulence is included.  The default is 1 for backward compatibility.

The purpose of this limiter is to avoid spurious turbulence generation at and
around the interface where bubbles are not present.
2019-09-06 17:55:42 +01:00
dea9da987c interfacialCompositionModel: Reinstated Lewis number correction 2019-09-05 15:45:04 +01:00
a9e35875b1 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-09-05 15:43:52 +01:00
bf3e8f7e4b reactingEulerFoam: Added support for generalizedNewtonian laminar flow
in which the following non-Newtonian models are currently supported:

    BirdCarreau
    Casson
    CrossPowerLaw
    HerschelBulkley
    powerLaw
    strainRateFunction
2019-09-05 15:31:20 +01:00
0f5fbb7ab1 particle: Do not use moving mesh tracking algorithm when possible
The moving mesh tracking algorithm is deactivated on moving meshes when
the step fraction is 1 and (if the operation requires it) when the
requested tracking fraction is 0. This optimises usage for
post-processing, in which tracking is done at a single point in time at
which the mesh geometry is fixed, rather than over a time-step across
which the mesh moves. It also prevents the need for the storage of
old-time cell centres for such purposes.

Resolves bug report https://bugs.openfoam.org/view.php?id=3343
2019-09-05 09:21:16 +01:00