openfoam merge requestshttps://develop.openfoam.com/Development/openfoam/-/merge_requests2016-10-04T07:45:38Zhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/64STYLE: minor adjustments to doxygen comments2016-10-04T07:45:38ZMark OLESENSTYLE: minor adjustments to doxygen commentsVersion v1612AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/66BUG: paraview plugin not being built in merged version (closes #258)2016-10-04T14:28:18ZMark OLESENBUG: paraview plugin not being built in merged version (closes #258)change in configuration got missedchange in configuration got missedAdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/69Merge preconvert2016-10-07T10:02:10ZMark OLESENMerge preconvertVery basic cleanup of some of the mesh conversion infrastructure prior to binging in large pieces of code.
- Remove ancient samm, pro-am, prostar3 routines as being unused and unsupportable (since the original products ceased existence ...Very basic cleanup of some of the mesh conversion infrastructure prior to binging in large pieces of code.
- Remove ancient samm, pro-am, prostar3 routines as being unused and unsupportable (since the original products ceased existence over 10 years ago).
- Open protected access to some meshReader bits, to help when implementing polyhedral readers.
- Drop meshReaders/meshWriters namespace, use fileFormats instead.
- Reorganize file-structure within src/conversion.AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/71Common endian handling. Provide base64 output encoding.2016-10-18T16:05:19ZMark OLESENCommon endian handling. Provide base64 output encoding.AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/60Merge foundation2016-10-27T14:04:44ZAdminMerge foundation# Lots of style/API rename changes:
Indices in loops now using a lower case letter (?) - lots of code now in a 'mixed' state using I and i
## GeometricField types
- DimensionedInternalField -> Internal
- PatchFieldType -> Patch
...# Lots of style/API rename changes:
Indices in loops now using a lower case letter (?) - lots of code now in a 'mixed' state using I and i
## GeometricField types
- DimensionedInternalField -> Internal
- PatchFieldType -> Patch
- GeometricBoundaryField -> Boundary
## GeometricField access functions
- dimensionedInternalField() -> ref()
- internalField() -> primitiveField()
## fvPatchField access
- dimensionedInternalField -> internalField()
# Tutorials
- les renamed LES
- ras renamed RAS
# Deprecated:
- expandDictionary -> foamDictionary -expand
- foamDebugSwitches -> foamDictionary/foamList -debug
- foamInfoExec -> foamDictionary
- secondaryWrite -> equivalent behaviour using function object time controls
- execFlowFunctionObjects -> new postProcess utility
# Function objects
## New
- components
## Deprecated
- partialWrite -> set using adjustTime in writeRegistered FO
- stressComponents -> turbulenceFields -> components
- wallGradU -> grad
- patchAverage -> surfaceFieldValue + areaAverage
- patchIntegrate -> surfaceFieldValue + sum
## Renamed
- createTurbulenceFields -> turbulenceFields
- faceSource -> surfaceFieldValue
- cellSource -> volFieldValue
- pressureTools -> pressure
- Peclet -> PecletNo
## Syntax
- functionObjectLibs -> libs
- outputControl -> writeControl
- outputTime -> writeTime
# Solvers
For postProcess:
- createFields.H split into createFields.H and createFieldsRef.H (references)
- all modelling construction moved to createFields, e.g. MRFVersion v1612AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/99Integration foundation2017-05-22T13:06:38ZAdminIntegration foundationIntegrated Foundation developments to d2a62df:
- externalWallHeatFluxTemperature: Added optional support for radiative flux to the outside 2017-04-26.
Next Foundation commit introduced large changes to the particle tracking algorit...Integrated Foundation developments to d2a62df:
- externalWallHeatFluxTemperature: Added optional support for radiative flux to the outside 2017-04-26.
Next Foundation commit introduced large changes to the particle tracking algorithm - chosen not to include this change set until the code is more fully tested. Some additional cherry-picks have been integrated to resolve further bugs:
- a7711038d (fnd 1bb7db2b7) - CrankNicolsonDdtScheme: Corrected input of off-centering coefficient of 1 2017-05-11
- 1765b5a4a (fnd d26c6c342) - DPMDyMFoam, DPMDyMFoam: Corrected support for closed-domain simulations 2017-05-04
- 0da6a5f79 (fnd 1328b5be0) - surfaceTensionModels: Resolved warning from Clang concerning virtual function overload 2017-05-03
- 23210323e (fnd 7acfa95ea) - thermophysicalModels: Corrected alphah to be enthalpy based 2017-05-03
Main changes
- abc50e214 Updated thermo libraries to be mass based (was molar based)
- Moved edgeMesh library code inside meshTools library
- Many run-time selectable models can now use in-line dictionary input as opposed to specifying a sub <model>Coeffs dictionary
- Energy source refactored in thermo library (Sh, Qdot Qr->qr)
Other
- distributionModels - top level distributionModel class no longer in the distributionModels namespace
Deprecated
- 55f3e808e sixDoFRigidBodyDisplacementPointPatchVectorField and uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField
Status:
- Tutorial Alltest loop completes except for:
- multiphase/compressibleInterDyMFoam/laminar/sphereDrop/log.compressibleInterDyMFoam: change in set-up required due to deprecation of boundary conditions
- combustion/fireFoam/LES/simplePMMApanel/log.fireFoam: reaction system problem for solid->gas reactions
Version v1706https://develop.openfoam.com/Development/openfoam/-/merge_requests/144Integration openfoam.org2017-09-22T12:56:39ZAdminIntegration openfoam.orgIntegration of selected (cherry-picked and updated as necessary) code changes from openfoam.org, including:
- barycentric tracking
- OpenCFD update: re-instated `wallBoundedStreamLines`
- OpenCFD update: provide backwards-compat...Integration of selected (cherry-picked and updated as necessary) code changes from openfoam.org, including:
- barycentric tracking
- OpenCFD update: re-instated `wallBoundedStreamLines`
- OpenCFD update: provide backwards-compatibility for writing out of Lagrangian data using the earlier `positions` file content, and restarting from cases using the earlier file format
- collocated I/O for parallel running
- includes large changeset from [OpenCFD history repository](https://github.com/OpenCFD/OpenFOAM-history) (see commit [from May 2014](https://github.com/OpenCFD/OpenFOAM-history/commit/3c8cd2ac66f127a0c98299174558c96e8e9ddaf0))
New boundary conditions:
- `interfaceCompression`: sets the phase fraction to zero if it is less than 0.5. Useful for ship hulls to prevent bleeding of the phase fraction along the surface
- `flowRateOutletVelocity`: outlet equivalent of flowRateOutletVelocityFvPatchVectorField
- `swirlInletVelocity`: general swirl inlet condition
- `matchedFlowRateOutletVelocity`: flow rate outlet condition
Deprecated:
- `foamList`: `-listXXX` options now available within each application
- `foamDebugSwitches`: use `<application> -listSwitches`, e.g. `icoFoam -listSwitches`
@mattijsv1712AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/266Feature vof update solvers2019-06-07T08:38:37ZSergio FerrarisFeature vof update solversNew chtMultiRegionTwoPhaseEulerFoam solver, plus corresponding BC's. Integrated MULES and CMULES new interfaces and the corresponding multiphase solvers and tutorials. All multiphase Euler tutorials are updated.
Inter type of tutorials h...New chtMultiRegionTwoPhaseEulerFoam solver, plus corresponding BC's. Integrated MULES and CMULES new interfaces and the corresponding multiphase solvers and tutorials. All multiphase Euler tutorials are updated.
Inter type of tutorials have been tested (to confirm the correct modification of new MULESinterfaces)
New library src/phaseSystemModels for the phases systems, sub-models, BC's, turbulence of the solver twoPhaseReactingEulerFoam and multiphaseReactingEulerFoam. This lib was taken out of the Euler solvers and located on /srcv1906AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/312INT: openfoam.org code integration2019-12-24T07:36:41ZSergio FerrarisINT: openfoam.org code integration1) rPolynomial Eq of State
2) externalForce and softWall in rigidBodyDynamics
INT: Several minor bug fixes1) rPolynomial Eq of State
2) externalForce and softWall in rigidBodyDynamics
INT: Several minor bug fixesv1912Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/387Miscellaneous code changes - Nov 202020-11-13T09:22:38ZKutalmış BerçinMiscellaneous code changes - Nov 20PS: approval/feedback please @mark @Sergio @andy @Prashant
heatTransferCoeff -> @SergioPS: approval/feedback please @mark @Sergio @andy @Prashant
heatTransferCoeff -> @SergioAndrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/384Feature generalized newtonian2021-01-28T12:30:08ZSergio FerrarisFeature generalized newtonian1) Derivative of B in thermo.H (dKcdTbyKc) calculated from S and G instead of dGdT. (ported from org)
For the thermos, S and G are easier to obtain that dGdT.
In our branch the Jacobian dKcdTbyKc is not used in the reaction me...1) Derivative of B in thermo.H (dKcdTbyKc) calculated from S and G instead of dGdT. (ported from org)
For the thermos, S and G are easier to obtain that dGdT.
In our branch the Jacobian dKcdTbyKc is not used in the reaction mechanism, but it could be needed in the
future.
2) Removing hRefConst and eRefConst thermos and adding optional hRef, eRef
and Tref as optional in hCosnt and eConst. Tutorials were updated.
3): adding generalizedNewtonian to laminar turbulence model
The generalizedNewtonian viscosity models were ported from
the org version and added to the laminar turbulence framework.
This allows its use to compressible and incompressible solvers
through the turbulence dictionary under the laminar sub-dictionary.
The thermal laminar viscosity is taken from the thermo for solvers
that use thermo library or from the transportProperties dictionary
for incompressible solvers.
At the moment the option to include viscosity models through the
transportDict is still available.
The icoTabulated EoS, hTabulated thermo and tabulated transport were ported from the org version
All the single phase solvers are ready to use the generalizedNewtonian laminar models. Some multi-phase
solver needs the instantiation of the transport.
The VoF solver icoReactingMultiPhaseInterFoam is capable of using the new models.
Updating tutorial:
tutorials/multiphase/icoReactingMultiPhaseInterFoam/inertMultiphaseMultiComponentv2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/416INT: reactingParcelFoam: add dynamicMeshMotion capabilities2020-12-18T12:31:09ZKutalmış BerçinINT: reactingParcelFoam: add dynamicMeshMotion capabilities### Summary
With the commit, `reactingParcelFoam` and `dynamicMeshMotion` functionalities can operate in combination.
### Resolved bugs
N/A
### Details of new models
![Screenshot_from_2020-12-18_11-15-32](/uploads/8d3aa99fbbee61ea99...### Summary
With the commit, `reactingParcelFoam` and `dynamicMeshMotion` functionalities can operate in combination.
### Resolved bugs
N/A
### Details of new models
![Screenshot_from_2020-12-18_11-15-32](/uploads/8d3aa99fbbee61ea99b5e3e77cf0affe/Screenshot_from_2020-12-18_11-15-32.png)
![Screenshot_from_2020-12-18_11-15-26](/uploads/b47c7c2884ea1d7dec687cd1d2d9de06/Screenshot_from_2020-12-18_11-15-26.png)
![Screenshot_from_2020-12-18_11-15-21](/uploads/7a9f3e1f26ac93750fad4706c0dd7260/Screenshot_from_2020-12-18_11-15-21.png)
### Risks
The effect of the changes on some of the `reactingParcelFoam` tutorials:
[log.reactingParcelFoam.recycle.new.gz](/uploads/a10d56ee2250ca635e256bb71bebf14a/log.reactingParcelFoam.recycle.new.gz)
[log.reactingParcelFoam.recycle.old.gz](/uploads/e8116a3f47b039397674005cc9c08125/log.reactingParcelFoam.recycle.old.gz)
[log.reactingParcelFoam.filter.new.gz](/uploads/67036e0708a72eda8297ce321e5aa888/log.reactingParcelFoam.filter.new.gz)
[log.reactingParcelFoam.filter.old.gz](/uploads/b8b07b7d3dcedf644ab57c05216acc3e/log.reactingParcelFoam.filter.old.gz)
[log.reactingParcelFoam.verticalChannel.old.gz](/uploads/4eca9adb52b5ba89b72701be5ddba19a/log.reactingParcelFoam.verticalChannel.old.gz)
[log.reactingParcelFoam.verticalChannel.new.gz](/uploads/2c26d571b653dd67551292e5a607f252/log.reactingParcelFoam.verticalChannel.new.gz)Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/512INT: age/comfort: New field function objects2021-12-13T17:07:01ZKutalmış BerçinINT: age/comfort: New field function objects(Explanatory content by @THO - I just added/removed few things)
### Summary
#### Function object: age
This functionObject calculates the so called `age of air` inside any domain. This is useful in HVAC analysis to check the ventilation...(Explanatory content by @THO - I just added/removed few things)
### Summary
#### Function object: age
This functionObject calculates the so called `age of air` inside any domain. This is useful in HVAC analysis to check the ventilation of a room, office, theater, cinema, academic rooms etc.
The function object is similar to use the `scalarTransport` function object + adding a source term via `fvOptions`. However, the main advantage of the `age` functionObject is that the user does not have to provide the `volScalarField`. It is generated automatically based on the patches a user uses:
- All patches of type patch (mainly used for inlet/outlets in HVAC) does get an `inletOutlet` boundary type while the `inletValue` is set to 0 (fresh air)
- All other patches of any other type, e.g., walls, are set to `zeroGradient`
- The `volScalarField` is generated during the execute routine - could be improved by checking if it is in the registry already, if yes take it otherwise create it
- For each time-step the steady-state solution of the age is calculated, and therefore the user can control the convergence:
- by setting the `tolerance` for the initial residual
- `nCorrs` for how many corrector loops are executed
- If either the `nCorrs` or the `tolerance` is reached, the loop is left and the field is stored
#### Function object: comfort
This functionObject calculated values based on the `ISO EN 7730:2005` for human behavior inside rooms. This is mainly used in HVAC analysis. The functionObject calculated (until now) three quantities:
PPD - predicted percentag of dissatisfaction
PMV - predicted mean vote
DR - draught rate
The calculations of PPD, PMV, and DR are normally single values for a single room: so its just rough guess. With CFD we have the possibility to evaluate each numerical cell separately and hence, HVAC analysis can predict more accurate and more understandable results. HVAC analysis also used for swimming bath, sauna areas and much more.
These quantities are based on the following computed fields:
Temperature
Velocity
Turbulent kinetic energy (if available)
Optional input parameters:
Clothing factor (what people wear - data are given in ISO EN 7730)
Methabolic rate
externalWork (commonly 0)
radiation temperature, if not given calculated based on surface-temperatures
relative humidity
saturation pressure, if not given will be calculated in the function object otherwise
tolerance (for the loop in a sub-function to calculate the clothing temperature)
maxClothIter (number of iterations to calculate the clothing temperature)
meanVelocity; either use the local cell velocity field for each
### Resolved bugs
N/A
### Details of new models
#### Function object: age
* Based on laboratory experiments:
```
Bartak, M., Cermak, M., Clarke, J.A., Denev, J.,
Drkal, F., Lain, M., Macdonald, I.A., Majer, M., Stankov, P., 2001.
Experimental and numerical study of local mean age of air.
In: Proceedings of the 7th International Building Performance
Simulation Association (IBPSA) Conference, Rio de Janeiro, Brazil.
Bartak, M., Beausoleil-Morrison, I., Clarke, J.A., Denev, J., Drkal, F.,
Lain, M., Macdonald, I.A., Melikov, A., Popiolek, Z., Stankov, P., 2002.
Integrating CFD and building simulation. Building and Environment 37, 865–871.
```
* A laboratory experiment of a test room with mixing ventilation, where the measurements were taken by a tracer-gas concentration-decay method.
* "At first a uniform tracer-gas distribution in the test room was reached, then the tracer-gas marking was cut off and the decay of the tracer-gas concentration due to the fresh (non-marked) ventilating air was measured."
![image](/uploads/cf5f1628cedd6258f2f37c20ff8b6ca2/image.png)
![image](/uploads/0e09e4056eca0fbf58582e17ebc4725b/image.png)
#### Function object: comfort
Unluckily, there is no validation case available for this function object. The only possible "check" is to use a one-cell domain, set parameters (as given in the EN ISO 7730:2005) and check if the same results are outputted.
### Risks
- No changes in user input
- No changes in existing outputv2112Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/381ENH: yPlus: add option to disable wall function contributions (#1773)2020-09-24T16:31:09ZKutalmış BerçinENH: yPlus: add option to disable wall function contributions (#1773)### Summary
See the self-explanatory commit messages.
### Resolved bugs (If applicable)
#1773
### Details of new models (If applicable)
Small test cases: [GL1773-pre-fix.zip](/uploads/55a0e0a9f20b72222d7f1710a1f742d9/GL1773-pre-fix...### Summary
See the self-explanatory commit messages.
### Resolved bugs (If applicable)
#1773
### Details of new models (If applicable)
Small test cases: [GL1773-pre-fix.zip](/uploads/55a0e0a9f20b72222d7f1710a1f742d9/GL1773-pre-fix.zip) vs [GL1773-post-fix](/uploads/6e82b41f337cf0b251280bffb0eb9b9d/GL1773-post-fix.zip)
Test-case characteristics:
* One-dimensional smooth-wall plane channel flow, ReTau=5200
* Number of cells = 20
* nu = 0.000192827 \[m2/s\]
* The case was designed to produce => -1\*sqrt(mag(wallShearStress)) = 1
* The y1+ set (expected) = {0.05, 0.5, 1, 5, 10, 20, 30, 50, 100, ~~1000~~}
* kOmegaSST/SpalartAllmaras, simpleFoam
Main field of interest:
* mag(wallShearStress) function object returns \~ 1 for all test cases, therefore the expected y1+
* yPlus function object (min) results for `lowerWall` rounded up to 2 decimals:
### y1+ = 0.05:
| Wall function | Pre-fix yPlus | Post-fix yPlus (when `useWallFunction=false`) |
| --- | ------ |---------:|
| nutUWallFunction | **0.12** | 0.05 |
| nutkWallFunction | **0.00025** | 0.05 |
| nutUSpaldingWallFunction | 0.05 | 0.05 |
| nutUBlendedWallFunction | 0.05 | 0.05 |
| nutLowReWallFunction | 0.05 | 0.05 |
### y1+ = 0.5:
| Wall function | Pre-fix yPlus | Post-fix yPlus (when `useWallFunction=false`) |
| --- | ------ |---------:|
| nutUWallFunction | **0.18** | 0.50 |
| nutkWallFunction | **0.025** | 0.50 |
| nutUSpaldingWallFunction | 0.50 | 0.50 |
| nutUBlendedWallFunction | 0.50 | 0.50 |
### y1+ = 1:
| Wall function | Pre-fix yPlus | Post-fix yPlus (when `useWallFunction=false`) |
| --- | ------ |---------:|
| nutUWallFunction | **0.34** | 1.00 |
| nutkWallFunction | **0.1** | 1.00 |
| nutUSpaldingWallFunction | 1.00 | 1.00 |
| nutUBlendedWallFunction | 1.00 | 1.00 |
### y1+ = 5:
| Wall function | Pre-fix yPlus | Post-fix yPlus (when `useWallFunction=false`) |
| --- | ------ |---------:|
| nutUWallFunction | **3.02** | 5.00 |
| nutkWallFunction | **2.75** | 5.00 |
| nutUSpaldingWallFunction | 5.00 | 5.00 |
| nutUBlendedWallFunction | 5.00 | 5.00 |
### y1+ = 10:
| Wall function | Pre-fix yPlus | Post-fix yPlus (when `useWallFunction=false`) |
| --- | ------ |---------:|
| nutUWallFunction | **9.12** | 10.00 |
| nutkWallFunction | **8.31** | 10.00 |
| nutUSpaldingWallFunction | 10.00 | 10.00 |
| nutUBlendedWallFunction | 10.00 | 10.00 |
### y1+ = 20:
| Wall function | Pre-fix yPlus | Post-fix yPlus (when `useWallFunction=false`) |
| --- | ------ |---------:|
| nutUWallFunction | 20.00 | 20.02 |
| nutkWallFunction | **19.30** | 20.01 |
| nutUSpaldingWallFunction | 20.00 | 20.00 |
| nutUBlendedWallFunction | 20.00 | 20.01 |
### y1+ = 30:
| Wall function | Pre-fix yPlus | Post-fix yPlus (when `useWallFunction=false`) |
| --- | ------ |---------:|
| nutUWallFunction | 30.09 | 30.09 |
| nutkWallFunction | 29.91 | 30.12 |
| nutUSpaldingWallFunction | 30.08 | 30.08 |
| nutUBlendedWallFunction | 30.09 | 30.09 |
### y1+ = 50:
| Wall function | Pre-fix yPlus | Post-fix yPlus (when `useWallFunction=false`) |
| --- | ------ |---------:|
| nutUWallFunction | 50.16 | 50.16 |
| nutkWallFunction | 50.51 | 50.19 |
| nutUSpaldingWallFunction | 50.17 | 50.17 |
| nutUBlendedWallFunction | 50.16 | 50.16 |
### y1+ = 100:
| Wall function | Pre-fix yPlus | Post-fix yPlus (when `useWallFunction=false`) |
| --- | ------ |---------:|
| nutUWallFunction | 100.01 | 100.01 |
| nutkWallFunction | 100.96 | 100.01 |
| nutUSpaldingWallFunction | 100.01 | 100.01 |
| nutUBlendedWallFunction | 100.01 | 100.01 |
### Risks
- Compiled with Gcc-7.4.1/Clang-9.0, DPInt32Opt
- No regression issue: [1-pre-fix-yPlus.zip](/uploads/213187624c831a9322790f83da09bd95/1-pre-fix-yPlus.zip) vs [2-post-fix-yPlus.zip](/uploads/f8ee035a427a3c7ea2fefb5d38a40609/2-post-fix-yPlus.zip) (Test: `incompressible/pisoFoam/RAS/cavity`)
- No changes in the default behaviour.
- User can now select the new behaviour by `useWallFunction=false` which is by default `true`.v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/33Merge foundation2016-05-10T13:33:21ZAdminMerge foundationIntegrating latest code from the OF Foundation - main changes:
Lots of renaming/refactoring:
- to retrieve reference from tmp, now need to use tmp.ref() as opposed to tmp()
- fvc::flux function to replace fvc::interpolate(<field>) &...Integrating latest code from the OF Foundation - main changes:
Lots of renaming/refactoring:
- to retrieve reference from tmp, now need to use tmp.ref() as opposed to tmp()
- fvc::flux function to replace fvc::interpolate(<field>) & mesh.Sf()
- integration of new c++ features: no more spaces between closing template braces, e.g. class1<class2<Type> > becomes class1<class2<Type>>
- DataEntry renamed to Function1
New functionality:
- Updated 6DoF
- fvOptions support in turbulence models