Commit graph

199 commits

Author SHA1 Message Date
Henry Weller
7859083246 OpenFOAM: Updated all libraries, solvers and utilities to use the new const-safe tmp
The deprecated non-const tmp functionality is now on the compiler switch
NON_CONST_TMP which can be enabled by adding -DNON_CONST_TMP to EXE_INC
in the Make/options file.  However, it is recommended to upgrade all
code to the new safer tmp by using the '.ref()' member function rather
than the non-const '()' dereference operator when non-const access to
the temporary object is required.

Please report any problems on Mantis.

Henry G. Weller
CFD Direct.
2016-02-26 17:31:28 +00:00
Henry Weller
feb3fc43d0 reactingTwoPhaseEulerFoam/Make/options: Removed temporary debug option 2016-02-24 14:05:20 +00:00
Henry Weller
3a56ebf33d tmp: Improved reference count checks to provide better error diagnostics
in case of tmp misuse.

Simplified tmp reuse pattern in field algebra to use tmp copy and
assignment rather than the complex delayed call to 'ptr()'.

Removed support for unused non-const 'REF' storage of non-tmp objects due to C++
limitation in constructor overloading: if both tmp(T&) and tmp(const T&)
constructors are provided resolution is ambiguous.

The turbulence libraries have been upgraded and '-DCONST_TMP' option
specified in the 'options' file to switch to the new 'tmp' behavior.
2016-02-24 12:47:36 +00:00
Henry Weller
4758c2ac86 tmp: Updated to store and preserve the const-ness of the reference to a constant object
This change requires that the de-reference operator '()' returns a
const-reference to the object stored irrespective of the const-ness of
object stored and the new member function 'ref()' is provided to return
an non-const reference to stored object which throws a fatal error if the
stored object is const.

In order to smooth the transition to this new safer 'tmp' the now
deprecated and unsafe non-const de-reference operator '()' is still
provided by default but may be switched-off with the compilation switch
'CONST_TMP'.

The main OpenFOAM library has already been upgraded and '-DCONST_TMP'
option specified in the 'options' file to switch to the new 'tmp'
behavior.  The rest of OpenFOAM-dev will be upgraded over the following
few weeks.

Henry G. Weller
CFD Direct
2016-02-22 16:23:21 +00:00
Henry Weller
7d192447f0 Boundary conditions: Added extrapolatedCalculatedFvPatchField
To be used instead of zeroGradientFvPatchField for temporary fields for
which zero-gradient extrapolation is use to evaluate the boundary field
but avoiding fields derived from temporary field using field algebra
inheriting the zeroGradient boundary condition by the reuse of the
temporary field storage.

zeroGradientFvPatchField should not be used as the default patch field
for any temporary fields and should be avoided for non-temporary fields
except where it is clearly appropriate;
extrapolatedCalculatedFvPatchField and calculatedFvPatchField are
generally more suitable defaults depending on the manner in which the
boundary values are specified or evaluated.

The entire OpenFOAM-dev code-base has been updated following the above
recommendations.

Henry G. Weller
CFD Direct
2016-02-20 22:44:37 +00:00
Henry Weller
5e4822b974 kineticTheoryModel: Corrected handling of the SuSp term in the Theta equation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2002
2016-02-19 13:26:41 +00:00
Henry Weller
19497ce518 interFoam, interMixingFoam, interPhaseChangeFoam: construct rho with calculated BCs
Avoids problems with inherited complex BCs for which the controlling
fields and parameters are not initialized.
2016-02-18 21:26:25 +00:00
Henry Weller
fa0656c358 scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
Henry Weller
acaf72b4b4 Solvers: Added support for extrapolated pressure boundary conditions
The boundary conditions of HbyA are now constrained by the new "constrainHbyA"
function which applies the velocity boundary values for patches for which the
velocity cannot be modified by assignment and pressure extrapolation is
not specified via the new
"fixedFluxExtrapolatedPressureFvPatchScalarField".

The new function "constrainPressure" sets the pressure gradient
appropriately for "fixedFluxPressureFvPatchScalarField" and
"fixedFluxExtrapolatedPressureFvPatchScalarField" boundary conditions to
ensure the evaluated flux corresponds to the known velocity values at
the boundary.

The "fixedFluxPressureFvPatchScalarField" boundary condition operates
exactly as before, ensuring the correct flux at fixed-flux boundaries by
compensating for the body forces (gravity in particular) with the
pressure gradient.

The new "fixedFluxExtrapolatedPressureFvPatchScalarField" boundary
condition may be used for cases with or without body-forces to set the
pressure gradient to compensate not only for the body-force but also the
extrapolated "HbyA" which provides a second-order boundary condition for
pressure.  This is useful for a range a problems including impinging
flow, extrapolated inlet conditions with body-forces or for highly
viscous flows, pressure-induced separation etc.  To test this boundary
condition at walls in the motorBike tutorial case set

    lowerWall
    {
        type            fixedFluxExtrapolatedPressure;
    }

    motorBikeGroup
    {
        type            fixedFluxExtrapolatedPressure;
    }

Currently the new extrapolated pressure boundary condition is supported
for all incompressible and sub-sonic compressible solvers except those
providing implicit and tensorial porosity support.  The approach will be
extended to cover these solvers and options in the future.

Note: the extrapolated pressure boundary condition is experimental and
requires further testing to assess the range of applicability,
stability, accuracy etc.

Henry G. Weller
CFD Direct Ltd.
2016-02-13 17:48:26 +00:00
Henry Weller
626580f524 driftFluxFoam: Set Udm BCs to type calculated 2016-02-11 08:48:15 +00:00
Henry Weller
3e48c61eb3 reactingEulerFoam/interfacialModels/wallLubricationModels: Apply zero-gradient condition at walls 2016-01-19 15:26:42 +00:00
Henry Weller
7f67b3e46e reactingEulerFoam,twoPhaseEulerFoam: Corrected pressure equations for transonic operation
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1971
2016-01-17 11:02:21 +00:00
Henry Weller
a56ab5f863 Consistently indent continuation backslashes in macro definitions 2016-01-11 13:00:56 +00:00
Henry Weller
94c05a1e6c Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
Henry Weller
6b3af46cdf reactingEulerFoam/interfacialModels/dragModels/TomiyamaKataokaZunSakaguchi: New drag model
Drag model for gas-liquid system of Tomiyama et al.

Reference:
    "Drag coefficients of single bubbles under normal and microgravity
     conditions"
    Tomiyama, A., Kataoka, I., Zun, I., Sakaguchi, T.
    JSME International Series B, Fluids and Thermal Engineering,
    Vol. 41, 1998, pp. 472-479

Provided by Alberto Passalacq
2015-12-09 16:51:46 +00:00
Henry Weller
649c58423a reactingMultiphaseEulerFoam: Correct and test LTS support 2015-12-09 15:39:45 +00:00
Henry Weller
b6bc068c42 reactingEulerFoam: Move LTS controls maxCo, maxDeltaT and rDeltaTSmoothingCoeff into the PIMPLE sub-dictionary
For consistency with all other solvers supporting the LTS option
2015-12-09 15:38:09 +00:00
Henry Weller
a13b036db3 saturationModels/Antoine: Corrected dimensions in Tsat
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1940
2015-12-05 16:12:57 +00:00
Henry Weller
2a592ec363 reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels: Added support for fvOptions 2015-12-03 16:39:13 +00:00
Henry Weller
0df151a378 reactingEulerFoam: Lookup fvOptions from the mesh rather than construct a local copy 2015-12-02 15:39:45 +00:00
Henry Weller
9a536b02a7 fvOptions: Reorganized and updated to simplify use in sub-models and maintenance
fvOptions are transferred to the database on construction using
fv::options::New which returns a reference.  The same function can be
use for construction and lookup so that fvOptions are now entirely
demand-driven.

The abstract base-classes for fvOptions now reside in the finiteVolume
library simplifying compilation and linkage.  The concrete
implementations of fvOptions are still in the single monolithic
fvOptions library but in the future this will be separated into smaller
libraries based on application area which may be linked at run-time in
the same manner as functionObjects.
2015-12-02 11:49:52 +00:00
Henry Weller
3fd7bd7018 applications: Added fvOptions library to link 2015-12-01 16:09:19 +00:00
Henry Weller
207ebe90ae applications/solvers: Added call to validate the turbulence model after construction
See also commit 82ccde3269
2015-12-01 10:25:38 +00:00
Henry Weller
a09fc00ae4 alphatWallBoilingWallFunctionFvPatchScalarField: Updated to compile SP 2015-11-29 21:40:16 +00:00
Henry Weller
e496de6fb2 reactingTwoPhaseEulerFoam: Added thermal wall-functions with support for wall-boiling
Code and tutorial case provided by Juho Peltola
2015-11-27 18:51:23 +00:00
Henry Weller
5ff0345662 fixedMultiPhaseHeatFlux: Corrected patch kappaEff evaluation 2015-11-24 11:09:50 +00:00
Henry Weller
6d542c87b2 fixedMultiPhaseHeatFlux: Added optional relaxation 2015-11-23 16:52:18 +00:00
Henry Weller
74d00e99e4 alphatFixedDmdtWallBoilingWallFunction: Obtain the turbulence model directly from the phase 2015-11-23 14:59:46 +00:00
Henry Weller
dea0c7be57 fixedMultiPhaseHeatFlux: Calculates a wall temperature that produces the specified overall wall heat flux
across all the phases in an Eulerian multi-phase simulation.

Intended to be used with copiedFixedValue to ensure that phase wall
temperature are consistent:
    - Set 'fixedMultiPhaseHeatFlux' boundary for one of the phases
    - Use 'copiedFixedValue' for all the other phases.

Based on code provided by Juho Peltola
2015-11-23 14:50:05 +00:00
Henry Weller
b9678a8336 alphatFixedDmdtWallBoilingWallFunction: Added relaxation
Patch provided by Juho Peltola
2015-11-23 14:22:36 +00:00
Henry Weller
98fb882f1c reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine: Corrected Tsat expression
Patch provided by Daniel Jasinski
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1893
2015-11-21 10:41:46 +00:00
Henry Weller
22f53b55eb reactingEulerFoam: Updated phase-change support
Patches provided by Juho Peltola
2015-11-15 16:57:52 +00:00
Henry Weller
058220c2d9 reactingEulerFoam/interfacialModels/wallDampingModels: Added interpolatedWallDamping abstract base-class
To simplify linear, sine and cosine wall-damping implementation
2015-11-15 13:32:19 +00:00
Henry Weller
8bfc2f0f57 reactingEulerFoam/interfacialModels/wallDampingModels: Added cosine and sine damping functions 2015-11-14 21:25:09 +00:00
Henry Weller
6844e64010 reactingEulerFoam/interfacialModels/liftModels: wallDampedLift
New lift model supporting near-wall damping using the new
wallDampingModels.

e.g.

lift
(
    (air in water)
    {
        type            wallDamped;
        lift
        {
            type            constantCoefficient;
            Cl              0.5;
        }
        wallDamping
        {
            type            linear;
            Cd              0.5;
        }
    }
);

in which a linear near-wall damping function min(y/(Cd*d), 1) is applied to the constant
coefficient lift model.  Additional wall-damping functions will be added.
2015-11-14 19:31:41 +00:00
Henry Weller
a6d2cefacd reactingTwoPhaseEulerFoam, reactingMultiphaseEulerFoam: Added nEnergyCorrectors
to allow iteration over the energy equations to improve stability for phase-change.
Additionally if nEnergyCorrectors is set to 0 the energy equations are
not solved which may be beneficial during the startup of some cases.
2015-11-13 22:06:52 +00:00
Henry Weller
10aea96ae5 applications: Update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 17:53:31 +00:00
Henry Weller
fdc9432c4a reactingEulerFoam: Moved dilatation from AnisothermalPhaseModel to MovingPhaseModel
to support phase volume fraction changes due to pressure
2015-11-06 15:35:50 +00:00
Henry Weller
76a910ab9f reactingEulerFoam/phaseSystems/phasePair/orderedPhasePair: Correct lookup of the aspectRatio
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1899
2015-11-05 19:53:43 +00:00
Henry Weller
09af2cb0b6 compressibleInterFoam, multiphaseMixtureThermo: Corrected laminar mixture kinematic viscosity 2015-11-05 16:08:30 +00:00
Henry Weller
03494fef5d Updated notImplemented -> NotImplemented
The new NotImplemented macro uses __PRETTY_FUNCTION__ for GNU compatible
compilers otherwise __func__ to provide the function name string.
2015-11-01 10:26:37 +00:00
Henry Weller
3b46408d38 reactingEulerFoam: Add polynomial saturation model
Provided by Juho Peltola
2015-10-29 22:42:42 +00:00
Henry Weller
bc182a5c35 Removed spurious log file 2015-10-27 16:26:51 +00:00
Henry Weller
1fb1af5e87 reactingEulerFoam: Updated handling of thermal diffusivity to support Prandtl number and thermal wall-functions 2015-10-22 22:44:59 +01:00
Henry Weller
05ffbd9225 reactingTwoPhaseEulerFoam: Remove the build-in write of Ur
Ur can be generated using a functionObject or in the post-processor
2015-10-19 14:01:51 +01:00
Henry Weller
72c9451953 reactingMultiphaseEulerFoam: Completed LTS support in multuphaseSystem 2015-10-05 22:42:12 +01:00
Henry Weller
3d14a632a5 reactingMultiphaseEulerFoam, multiphaseEulerFoam: Correct flux averaging for sub-cycling 2015-10-05 17:43:33 +01:00
Henry Weller
462304b735 reactingTwoPhaseEulerFoam: Update cell-based UEqn
to use the transport matrix construction in MovingPhaseModel
2015-10-05 16:22:04 +01:00
Henry Weller
8259567cc3 reactingEulerFoam: Further improvements to the handling of mass-transfer
between incompressible and compressible phases
2015-09-25 19:00:07 +01:00
Henry Weller
2518e125c4 reactingEulerFoam: Support compressibility and mass-transfer independently
Now combinations of incompressible, compressible phases with or without
mass-transfer are supported efficiently.
2015-09-25 17:54:55 +01:00