Commit Graph

86 Commits

Author SHA1 Message Date
bc8420e14f STYLE: trailing whitespace, doxygen, error messages from fileOperation 2017-12-13 17:56:34 +01:00
56bfc75949 Rationalize the "pos" function
"pos" now returns 1 if the argument is greater than 0, otherwise it returns 0.
This is consistent with the common mathematical definition of the "pos" function:

https://en.wikipedia.org/wiki/Sign_(mathematics)

However the previous implementation in which 1 was also returned for a 0
argument is useful in many situations so the "pos0" has been added which returns
1 if the argument is greater or equal to 0.  Additionally the "neg0" has been
added which returns 1 if if the argument is less than or equal to 0.
2017-06-22 14:32:18 +01:00
d27dbbf096 Euler-Euler: turbulentDispersionModels: Burns: Minor re-formulation to
improve stability.

Resolves bug report <https://bugs.openfoam.org/view.php?id=2544>
2017-05-09 08:48:38 +01:00
e0ebc8e973 Merge branch 'master' into develop 2017-08-07 11:54:44 +01:00
20267c68b4 BUG: Corrected false integer divisions. Fixes #557 2017-08-07 11:53:54 +01:00
bc1f2fa97e STYLE: use auto and cfind to simplify selector usage (issue #512) 2017-07-03 10:36:03 +02:00
0be69605fd STYLE: incorrect namespace for doxygen 2017-05-31 10:02:55 +02:00
bb67ccd37d ENH: Cleaned up hash table item found checks 2017-05-19 11:15:35 +01:00
3c053c2fe6 GeometricField: Renamed internalField() -> primitiveField() and dimensionedInternalField() -> internalField()
These new names are more consistent and logical because:

primitiveField():
primitiveFieldRef():
    Provides low-level access to the Field<Type> (primitive field)
    without dimension or mesh-consistency checking.  This should only be
    used in the low-level functions where dimensional consistency is
    ensured by careful programming and computational efficiency is
    paramount.

internalField():
internalFieldRef():
    Provides access to the DimensionedField<Type, GeoMesh> of values on
    the internal mesh-type for which the GeometricField is defined and
    supports dimension and checking and mesh-consistency checking.
2016-04-30 21:40:09 +01:00
5df2b96489 GeometricField::internalField() -> GeometricField::internalFieldRef()
Non-const access to the internal field now obtained from a specifically
named access function consistent with the new names for non-canst access
to the boundary field boundaryFieldRef() and dimensioned internal field
dimensionedInternalFieldRef().

See also commit 22f4ad32b1
2016-04-30 14:25:21 +01:00
8c6fa81eba vector::zero -> Zero 2016-04-16 18:34:41 +01:00
77b03e2e0c Specialized dotInterpolate for the efficient calculation of flux fields
e.g. (fvc::interpolate(HbyA) & mesh.Sf()) -> fvc::flux(HbyA)

This removes the need to create an intermediate face-vector field when
computing fluxes which is more efficient, reduces the peak storage and
improved cache coherency in addition to providing a simpler and cleaner
API.
2016-04-06 20:20:53 +01:00
99a10ecea6 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
e2ef006b91 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
584fed888d twoPhaseEulerFoam/interfacialModels/dragModels/WenYu: Corrected Re -> Re*alpha_g
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1794
2015-08-04 13:29:11 +01:00
365f9b0006 dimensioned<Type>: Added constructor from name, dimensions and dictionary
to simplify construction of dimensionedScalar properties and avoid the
duplication of the name string in the constructor call.
2015-07-21 12:57:07 +01:00
8eda4b8632 twoPhaseEulerFoam/interfacialModels/heatTransferModels/sphericalHeatTransfer: new heat-transfer model
Model which applies an analytical solution for heat transfer from the
surface of a sphere to the fluid within the sphere.

Provided by William Bainbridge
2015-06-07 18:57:13 +01:00
61e52b2cb4 twoPhaseEulerFoam: Move the residualAlpha used for drag into the phaseModel
This is necessary to guarantee consistency between the residualAlpha
used for drag and buoyancy in a multi-phase system
2015-06-07 18:55:24 +01:00
fc6b44ee3c twoPhaseEulerFoam: Added experimental face-based momentum equation formulation
This formulation provides C-grid like pressure-flux staggering on an
unstructured mesh which is hugely beneficial for Euler-Euler multiphase
equations as it allows for all forces to be treated in a consistent
manner on the cell-faces which provides better balance, stability and
accuracy.  However, to achieve face-force consistency the momentum
transport terms must be interpolated to the faces reducing accuracy of
this part of the system but this is offset by the increase in accuracy
of the force-balance.

Currently it is not clear if this face-based momentum equation
formulation is preferable for all Euler-Euler simulations so I have
included it on a switch to allow evaluation and comparison with the
previous cell-based formulation.  To try the new algorithm simply switch
it on, e.g.:

PIMPLE
{
    nOuterCorrectors 3;
    nCorrectors      1;
    nNonOrthogonalCorrectors 0;
    faceMomentum     yes;
}

It is proving particularly good for bubbly flows, eliminating the
staggering patterns often seen in the air velocity field with the
previous algorithm, removing other spurious numerical artifacts in the
velocity fields and improving stability and allowing larger time-steps
For particle-gas flows the advantage is noticeable but not nearly as
pronounced as in the bubbly flow cases.

Please test the new algorithm on your cases and provide feedback.

Henry G. Weller
CFD Direct
2015-04-27 21:33:58 +01:00
6c097fc2b6 twoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/noTurbulentDispersion: Corrected dimension of D 2015-04-10 15:40:26 +01:00
4c443233be twoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns: Corrected sign of the diffusivity 2015-04-10 11:51:00 +01:00
0be1e89204 twoPhaseEulerFoam: Interpolate lift, wall-lubrication and turbulent dispersion forces
Reduces or eliminates staggering patterns due to cell-force imbalances
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1363
2015-04-08 12:19:23 +01:00
a8d5917389 TomiyamaLift: Updated coefficient to make the model continuous at EoH = 10.7
Correction provided by Juho Peltola
2015-03-11 18:06:04 +00:00
a80d9c7407 TomiyamaLift: Corrected coefficients to correspond exactly to the original paper cited
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=1564
2015-03-10 19:57:42 +00:00
945c4c3d18 fluidThermo: Add compressibleTransportModel as base-class
Needed to create generic compressible turbulence model library
2015-02-17 17:25:26 +00:00
f524fa1e9f Updated header 2015-01-08 16:25:48 +00:00
0f0672563b twoPhaseEulerFoam: removed unnecessary fvc.H 2015-01-08 16:25:17 +00:00
c4804e5a0b wallDist: Add support for cached wall-reflection vectors
Currently these vectors are generated at the same time as the wall-distance field
by the same run-time selected algorithm.  This will be changed so that the wall-reflection
vectors are only generated and stored if required.
2015-01-08 16:08:53 +00:00
69ff8aa4d2 wallDist: now a MeshObject cached and updated automatically with a run-time selected algorithm
When using models which require the wallDist e.g. kOmegaSST it will
request the method to be used from the wallDist sub-dictionary in
fvSchemes e.g.

wallDist
{
    method meshWave;
}

specifies the mesh-wave method as hard-coded in previous OpenFOAM versions.
2015-01-08 10:40:23 +00:00
7c83877181 Updated headers 2015-01-06 17:32:02 +00:00
4fbf622008 wallDist: separate the meshWaveWallDist from the wallDist interface
In preparation for run-time selectable methods
2015-01-06 17:31:02 +00:00
e369cd1f24 twoPhaseEulerFoam/interfacialModels/turbulentDispersionModels: Added Fprime function
to support improved discretisation in pEqn and implicit treatment in the phase-fraction equation
2014-12-22 20:11:04 +00:00
aceb69149e Reformat references 2014-12-19 21:33:16 +00:00
fa562216ab Corrected for SP compilation 2014-12-19 17:03:30 +00:00
090768c0b3 Reformatted references 2014-12-19 11:55:16 +00:00
b45c39b976 Included new files 2014-12-19 11:54:57 +00:00
fde846b82e Removed spurious additional phase-fraction factor 2014-12-19 11:54:23 +00:00
a6780117e4 Added LopezDeBertodano turbulentDispersionModel 2014-12-19 11:53:36 +00:00
c84400b358 Added IshiiZuber drag model 2014-12-19 11:53:17 +00:00
703a7a1fac Updated copyright following transfer from OpenCFD 2014-12-10 12:41:41 +00:00
4b30be42ff BUG: mantis #1365: switched to using wall reflection to calculate wall normals, and added caching of the wall values 2014-08-14 12:45:57 +01:00
1417d523da BUG: mantis #1362: wrong sign in turbulent dispersion models 2014-07-30 12:59:35 +01:00
5d11952429 BUG: twoPhaseEulerFoam: bug fixes and bounding improvements to interfacal models 2014-06-05 16:08:39 +01:00
85da9e6a54 twoPhaseEulerFoam: Now in fully-conservative form 2014-04-29 15:47:39 +01:00
17a85930eb ENH: twoPhaseEulerFoam: added new interfacial models 2014-04-07 10:23:02 +01:00
caaa5c2e49 BUG: twoPhaseEulerFoam: fixed definition of Nu in RanzMarshall heat transfer model 2014-04-04 11:57:39 +01:00
c07e1e0486 ENH: twoPhaseEulerFoam: added new interfacial models 2014-03-31 16:59:07 +01:00
acb63f5141 BUG: twoPhaseEulerFoam: corrected the definintion of K in turbulence models and in the segregated drag model 2014-03-18 15:03:41 +00:00
e71b49311c STYLE: twoPhaseEulerFoam: updated interfacial model headers to reflect changes in the definition of K 2014-03-18 09:07:35 +00:00
37c75a8b18 BUG: twoPhaseEulerFoam: removed multiple of the continuous phase fraction from force and heat transfer models 2014-03-17 16:34:32 +00:00