openfoam merge requestshttps://develop.openfoam.com/Development/openfoam/-/merge_requests2022-06-08T10:41:01Zhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/544ENH: EBRSM: new elliptic-blending Reynolds-stress turbulence model2022-06-08T10:41:01ZKutalmış BerçinENH: EBRSM: new elliptic-blending Reynolds-stress turbulence model#### Acknowledgement
OpenCFD would like to acknowledge and thank **Prof. Rémi Manceau**, **Dr. Michael Karl Stoellinger**, and **Dr. Ardalan Javadi** for their contributions, elaborate suggestions and help, and critical recommendations....#### Acknowledgement
OpenCFD would like to acknowledge and thank **Prof. Rémi Manceau**, **Dr. Michael Karl Stoellinger**, and **Dr. Ardalan Javadi** for their contributions, elaborate suggestions and help, and critical recommendations. Highly appreciated.
#### Aim
Implement and evaluate the elliptic-blending Reynolds-stress turbulence models proposed by [Manceau (2015) - Appendix C](https://doi.org/10.1016/j.ijheatfluidflow.2014.09.002).
#### Methodology
- Plane channel flow at ReTau=180, 395, 590 (Moser et al., 1991) and =4179 (Lozano-Duran & Jimenez, 2014)
- NASA Turbulence Modelling Resource on various physics:
- 2DCC: 2D Convex curvature boundary layer
- 2DML: 2D Mixing layer
- 2DB: 2D Bump-in-channel
- 2DZP: 2D Zero pressure gradient flat plate
- 2DANW: 2D Airfoil near-wake
#### Results
**Plane channel flow, ReTau=180**
<img src="/uploads/6c9899cad5929f65d869d3d63a90c55f/all_setups_yPlus_vs_uPlus.png" width="25%" height="25%">
<img src="/uploads/6520c01105e1aaa63434d67badf9b83e/all_setups_yPlus_vs_Ruu.png" width="25%" height="25%">
<img src="/uploads/1f99612fea236e501b1c117c43b3a694/all_setups_yPlus_vs_Rvv.png" width="25%" height="25%">
<img src="/uploads/439522e1fa9c3735e0cd244b1369e297/all_setups_yPlus_vs_Rww.png" width="25%" height="25%">
<img src="/uploads/52a8f9c9f28106cea6abe6ce7c33bad4/all_setups_yPlus_vs_Ruv.png" width="25%" height="25%">
<img src="/uploads/9b2f1e92fabff3104609ae03bbdd51fd/all_setups_yPlus_vs_epsilonPlus.png" width="25%" height="25%">
<img src="/uploads/c1d4cddd0b62a53bd317c655d3da9e48/all_setups_yPlus_vs_kPlus0.png" width="25%" height="25%">
<img src="/uploads/5056b4ce464c70c2c9d4b7c3037f1382/yPlus_vs_f.png" width="25%" height="25%">
**Plane channel flow, ReTau=4179**
<img src="/uploads/ad6eec1e96e581e4f617487a3fb092c3/all_setups_yPlus_vs_uPlus.png" width="25%" height="25%">
<img src="/uploads/3f5b20a7fe449a1964e8a937ddaafe50/all_setups_yPlus_vs_Ruu.png" width="25%" height="25%">
<img src="/uploads/2ffc52fe7918911d3cfcc8873bdf737b/all_setups_yPlus_vs_Rvv.png" width="25%" height="25%">
<img src="/uploads/8f9a7156be4fdf8e185535fff44ff845/all_setups_yPlus_vs_Rww.png" width="25%" height="25%">
<img src="/uploads/1cd605e4beb3c201fdce620b94e45559/all_setups_yPlus_vs_Ruv.png" width="25%" height="25%">
<img src="/uploads/8016b8dcc9a4ac15878e4351afb5107c/yPlus_vs_f.png" width="25%" height="25%">
**2DCC: 2D Convex curvature boundary layer**
<img src="/uploads/98cf3ae928d18f353728139aff7e90ac/all_setups_u_vs_y.png" width="25%" height="25%">
<img src="/uploads/362d12cc1f2386a13b493310bd4fe5b5/all_setups_Ruu_vs_y.png" width="25%" height="25%">
<img src="/uploads/1ed623a0b9a551169db65812d170f927/all_setups_Rvv_vs_y.png" width="25%" height="25%">
<img src="/uploads/c62dbb4686d4e4f4f190f8be87c4d7cf/all_setups_Ruv_vs_y.png" width="25%" height="25%">
<img src="/uploads/c1af0cb694fc137cd04273b464721fe4/x_vs_Cf_bottom.png" width="25%" height="25%">
<img src="/uploads/f2f1b39122d2c97dbf7d146cd30274b5/x_vs_Cp_bottom.png" width="25%" height="25%">
**2DML: 2D Mixing Layer**
<img src="/uploads/725943103926d796e672bbe984661fc6/all_setups_u_vs_y.png" width="25%" height="25%">
<img src="/uploads/25fb821f6490576c16e60d9e2c7c76ed/all_setups_Ruu_vs_y.png" width="25%" height="25%">
<img src="/uploads/8733ada0f7d73afbc7c0765dcbec5b52/all_setups_Rvv_vs_y.png" width="25%" height="25%">
<img src="/uploads/1cb31d6fda8b755f3d85accdaee2f876/all_setups_Rww_vs_y.png" width="25%" height="25%">
<img src="/uploads/a4cc5479508bb025d19c8c5d7539ab65/all_setups_Ruv_vs_y.png" width="25%" height="25%">
### Meta-data
EP#1805
* [x] `linux64ClangDPInt32Opt` (clang11)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new error
### Discussion
- In general, `EBRSM` yields better predictions for `R` and turbulence quantities in comparison to `kOmegaSST` model.
- But _not always_: For example, for `2DML: 2D Mixing Layer`, the `R` predictions of `EBRSM` is worse than those of `kOmegaSST`. The reason seems to be that the `EBRSM` could not reach the target convergence levels for this specific case.
- Predictions for `U` are similar.
- In general, less stable than `kOmegaSST`.
- For example, `2DZP: 2D Zero pressure gradient flat plate` and `2DANW: 2D Airfoil near-wake` cases are unstable.
- Initial values/initialisations seem to be important to
`EBRSM` in terms of numerical stability
and fidelity.
- The two-step automatic initialisation method proposed by (Manceau (n.d.)) should be preferred
over precursor simulations.
- Low-quality mesh cases are challenging,
especially meshes with high-aspect ratios
are prone to instabilities.
- Max relaxation factor for `R=0.4`. Avoid `R~O(0.05)` at all costs.
- Realizability conditions are not
automatically satisfied.
- Multiphase and compressible cases are
not explored by the academia.
### Future work
- Test scope should be extended further for:
- Multiphase-flow cases
- Compressible flow cases
- Dynamic-mesh cases
- Overset meshes
- Mesh (un)refinements
- Collated-data format
- Hybrid and single precisions
- New methods should be developed to stabilise `EBRSM` for low-quality meshes.v2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/543Adding external heat to greyDiffusive BC and new Doses FO2022-05-27T09:15:36ZSergio FerrarisAdding external heat to greyDiffusive BC and new Doses FO### Summary
Adding Lagrangian dose function object. Additional external radiative heat flux to ray greyDiffusive BC for fvDOM
### Details of new models (If applicable)
qRadExt and qRadExtDir new optional entries to specified heat flu...### Summary
Adding Lagrangian dose function object. Additional external radiative heat flux to ray greyDiffusive BC for fvDOM
### Details of new models (If applicable)
qRadExt and qRadExtDir new optional entries to specified heat flux. This is added to the closest ray direction.
If qRadExtDir is not specified the heat flux is add normal to the face.
### Risks
Minimalv2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/542General enhancement to icoReactingMultiphaseInterFoam solver, sub-models and ...2022-06-22T09:18:53ZSergio FerrarisGeneral enhancement to icoReactingMultiphaseInterFoam solver, sub-models and FO's1) Name changing and namespace used for some multi phase class used in icoReactingMultiphaseInterFoam.
2) Creating a new derivedFvPatch for thermal BC's (detached from TurbulenceCompressible) which allows to
use phase system models i...1) Name changing and namespace used for some multi phase class used in icoReactingMultiphaseInterFoam.
2) Creating a new derivedFvPatch for thermal BC's (detached from TurbulenceCompressible) which allows to
use phase system models in FO's. This new lib was added to all the thermal solvers
3) Adding new diffusion-based mass transfer model to icoReactingMultiphaseInterFoam
4) Improving consistency of Hf between phases (updated tutorials entries)
5) HeatFlux and htc FO's are available to use with icoReactingMultiphaseInterFoam
NOTE: There is memory leak problem at the end of the run when using icoReactingMultiphaseInterFoam and 'fieldFunctionObjects' is loaded usng lddOpen. NEED TO BE REVIEWEDv2206Sergio FerrarisSergio Ferrarishttps://develop.openfoam.com/Development/openfoam/-/merge_requests/541New function objects2022-05-25T23:18:21ZAndrew HeatherNew function objects## New function objects
### multiFieldValue
- Previously, the `multiFieldValue` function object was limited to operate on lists of `fieldValue` function objects.
- Any function objects that generate results can now be used, e.g.
```
p...## New function objects
### multiFieldValue
- Previously, the `multiFieldValue` function object was limited to operate on lists of `fieldValue` function objects.
- Any function objects that generate results can now be used, e.g.
```
pressureAverage
{
type multiFieldValue;
libs (fieldFunctionObjects);
operation average;
functions
{
inlet
{
type surfaceFieldValue;
operation areaAverage;
regionType patch;
name inlet;
fields (p);
writeFields no;
writeToFile no;
log no;
resultFields (areaAverage(inlet,p));
}
outlet
{
type surfaceFieldValue;
operation areaAverage;
regionType patch;
name outlet;
fields (p);
writeFields no;
writeToFile no;
log no;
}
average
{
type valueAverage;
functionObject testSample1;
fields (average(p));
writeToFile no;
log no;
}
}
}
```
Test case : [filter-multiFieldValue.tgz](/uploads/8a6ad51f582260e625ebbebe5313580f/filter-multiFieldValue.tgz) - see `system/pressureDifference` function object
### particleZoneInfo
Reports cloud information for particles passing through a specified cell zone.
Example usage:
```
cloudFunctions
{
particleZoneInfo1
{
type particleZoneInfo;
cellZone leftFluid;
// Optional entries
//writer vtk;
}
}
```
Results are written to file:
- `\<case\>/postProcessing/lagrangian/\<cloudName\>/\<functionName\>/\<time\>`
```
# cellZone : leftFluid
# time : 1.0000000000e+00
#
# origID origProc (x y z) time0 age d0 d mass0 mass
```
Where
- `origID` : particle ID
- `origProc` : processor ID
- `(x y z)` : Cartesian co-ordinates
- `time0` : time particle enters the `cellZone`
- `age` : time spent in the `cellZone`
- `d0` : diameter on entry to the `cellZone`
- `d` : current diameter
- `mass0` : mass on entry to the `cellZone`
- `mass` : current mass
If the optional `writer` entry is supplied, cloud data is written in the specified format.
During the run, output statistics are reported after the cloud solution, e.g.:
```
particleZoneInfo:
Cell zone = leftFluid
Contributions = 257
```
Here, `Contributions` refers to the number of incremental particle-move contributions recorded during this time step. At write times, the output is extended, e.g.:
```
particleZoneInfo:
Cell zone = leftFluid
Contributions = 822
Number of particles = 199
Written data to "postProcessing/lagrangian/reactingCloud1/
```
Test case: [filter-particleZoneInfo.tgz](/uploads/4872ea54688374b5a7e475015f3efe93/filter-particleZoneInfo.tgz) - see `constant/reactingCloud1Properties`v2206Sergio FerrarisSergio Ferrarishttps://develop.openfoam.com/Development/openfoam/-/merge_requests/540ENH: QRMatrix: refactor the QR decomposition algorithms2022-05-31T17:01:01ZKutalmış BerçinENH: QRMatrix: refactor the QR decomposition algorithms##### Summary
EP1874
##### Resolved bugs
#2212
##### Risks
API of QRMatrix has been changed.
##### Tests
- [x] `linux64ClangDPInt32Opt`
- [x] `linux64GccDPInt32Opt`
- [x] `linux64GccSPDPInt64Debug`
- [x] Alltest##### Summary
EP1874
##### Resolved bugs
#2212
##### Risks
API of QRMatrix has been changed.
##### Tests
- [x] `linux64ClangDPInt32Opt`
- [x] `linux64GccDPInt32Opt`
- [x] `linux64GccSPDPInt64Debug`
- [x] Alltestv2206Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/539ENH: norm: add new field function object2022-05-27T11:58:44ZKutalmış BerçinENH: norm: add new field function objectEP1871
<img src="/uploads/3a948c9898bfea03397a550370578d30/image.png" width="50%" height="50%">
<img src="/uploads/656a0375d29062e3bed28a0b6d6bb78b/image.png" width="50%" height="50%">
<img src="/uploads/99411e71d94ea8e2f98e28e8412ca7...EP1871
<img src="/uploads/3a948c9898bfea03397a550370578d30/image.png" width="50%" height="50%">
<img src="/uploads/656a0375d29062e3bed28a0b6d6bb78b/image.png" width="50%" height="50%">
<img src="/uploads/99411e71d94ea8e2f98e28e8412ca720/image.png" width="50%" height="50%">
<img src="/uploads/27a831d096d9368dffdfd06da7bf301e/image.png" width="50%" height="50%">
<img src="/uploads/49e80a7e4480b71fafdf6b115e7ef837/image.png" width="50%" height="50%">
<img src="/uploads/a215b20f7b5af40c947277050e183c5c/image.png" width="50%" height="50%">
##### Tests
- [x] `linux64ClangDPInt32Opt`
- [x] `linux64GccDPInt32Opt`
- [x] `linux64GccSPDPInt64Debug`
- [x] Alltestv2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/538redistributePar support for point fields and area fields2022-05-25T13:13:04ZMark OLESENredistributePar support for point fields and area fieldsv2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/537New solid body motion mesh update optimisations2022-05-19T16:19:48ZAndrew HeatherNew solid body motion mesh update optimisations### Summary
New/refactored code to enable partial geometry updates for solid-body motion cases.
### Details of new models (If applicable)
Adds a new `solidBody` geometry scheme, applicable for e.g. rotating AMI/ACMI cases:
```
geomet...### Summary
New/refactored code to enable partial geometry updates for solid-body motion cases.
### Details of new models (If applicable)
Adds a new `solidBody` geometry scheme, applicable for e.g. rotating AMI/ACMI cases:
```
geometry
{
type solidBody;
// Optional
partialUpdate yes; // default = yes
cacheMotion yes; // default = yes
}
```
Instead of performing a complete mesh clear-out we selectively update only the geometry attached to moving points, under the assumption that there are no topological updates/the motion can be described as solid-body motion.
Performance improvements (time) are case specific, e.g. the smaller the fraction of moving cells compared to the total cell count, the larger the benefit for the mesh update phase.
The additional entries control:
- `partialUpdate` : if set to `false`, perform a complete mesh clear-out on mesh changes
- `cacheMotion` : if set to `true`, cache the addressing for the moving points, faces and cells across all time steps
**Backwards compatibility**
The `basic` option is the default and is applied if the `geometry` sub-dictionary is not supplied:
```
geometry
{
type basic;
}
```
Selecting this option should recover v2112 (and earlier versions) behaviour.
### Risks
- Refactored mesh updates
- mesh flux is now calculated by the `fvGeometryScheme`
- Added partial geometry updates
- see `primitiveMeshTools.H` functions `updateFaceCentresAndAreas` and `updateCellCentresAndVols`
- Need to test `snappyHexMesh` cases - the updates did not initially play nicely with the layer addition phase
### Testing
- Tests performed on:
- `pimpleFoam/RAS/propeller tutorial`
- `singleWheel` (internal)v2206Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/536ENH: sixDoFRigidBodyMotion: add new softWall restraint2022-05-19T10:58:41ZKutalmış BerçinENH: sixDoFRigidBodyMotion: add new softWall restraintEP1745
##### Tests
- [x] `linux64ClangDPInt32Opt`
- [x] `linux64GccDPInt32Opt`
- [x] `linux64GccSPDPInt64Debug`
- [x] AlltestEP1745
##### Tests
- [x] `linux64ClangDPInt32Opt`
- [x] `linux64GccDPInt32Opt`
- [x] `linux64GccSPDPInt64Debug`
- [x] Alltestv2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/535code style, bug fixes2022-05-10T11:07:47ZMark OLESENcode style, bug fixesAndrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/534ENH: effectivenessHeatExchangerSource: add writeFile functionality2022-05-18T16:08:05ZKutalmış BerçinENH: effectivenessHeatExchangerSource: add writeFile functionalityEP1775
### Tests
- [x] Compilation (incl. submodules):
- [x] `linux64ClangDPInt32Opt` (clang11)
- [x] `linux64GccDPInt32Opt`
- [x] `linux64GccSPDPInt64Debug`
- [x] Alltest: No change in output with respect to the develop HEAD + n...EP1775
### Tests
- [x] Compilation (incl. submodules):
- [x] `linux64ClangDPInt32Opt` (clang11)
- [x] `linux64GccDPInt32Opt`
- [x] `linux64GccSPDPInt64Debug`
- [x] Alltest: No change in output with respect to the develop HEAD + no errorAndrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/533Code changes and reorganisation preliminary to redistributePar updates (#2436)2022-04-29T19:46:09ZMark OLESENCode changes and reorganisation preliminary to redistributePar updates (#2436)v2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/532ENH: turbulentDigitalFilter: Synthetic fluctuations of scalars2022-06-07T20:12:35ZKutalmış BerçinENH: turbulentDigitalFilter: Synthetic fluctuations of scalars**Aim**
To enable synthetic fluctuations of scalars (e.g. temperature or contaminant concentrations) for the `turbulentDigitalFilterInlet` boundary condition.
**Previous status**
- Produces only vector-based fluctuations
- Input en...**Aim**
To enable synthetic fluctuations of scalars (e.g. temperature or contaminant concentrations) for the `turbulentDigitalFilterInlet` boundary condition.
**Previous status**
- Produces only vector-based fluctuations
- Input entries of mean and Reynolds stresses are limited to be either constant or simple wall-normal profiles
- Contains unresolved bugs:
- #1725
- #2262
- #2267 (Parallelisation)
- #2329 (FSM is inoperative)
- Domain rotations/translations are not possible
- Parallelisation and scaling are problematic
- Restart is problematic
- Mapping fluctuations onto an inlet patch is problematic and limited to only the nearest-cell option
- Adjustable time-step simulations are not possible
**Improvements**
- Produces vector- or scalar-based fluctuations
- New input-entry types:
- Mean and Reynolds stresses have become `PatchFunction1` type
- Time-variant input for mean and Reynolds stresses is possible
- Number of input entries have been simplified by reducing the number from 16 to 8, most of which are default valued.
- Resolves the reported bugs
- Domain rotations/translations are improved
- Users can set a local coordinate system
- Parallelisation and scaling are improved
- Restart is improved
- Mapping fluctuations onto an inlet patch is improved and generalised
- Users can select an AMI mapping method for the mapping operation
- Adjustable time-step simulations are possible for the FSM option
- Removes Taylor's frozen turbulence assumption for the streamwise integral scale calculations
**Resolved bugs**
#1725 #2262 #2267 #2329
**Methodology**
<img src="/uploads/ed664afc764a1894db265b8210796b0d/image.png" width="50%" height="50%">
<img src="/uploads/4fc57b37db8180bb261c3d808bd14ff8/image.png" width="50%" height="50%">
#### Results
**DFM - only vector**
<img src="/uploads/b8b00f5758bc3998f81fb80908c121b6/image.png" width="85%" height="85%">
**DFM - only scalar**
<img src="/uploads/10ab195728e01971af04b14e01a109fc/image.png" width="85%" height="85%">
**DFM - vector+scalar**
<img src="/uploads/b1a26f36c48a1d63c1c09d17b2d6f7a3/image.png" width="85%" height="85%">
**FSM - only vector**
<img src="/uploads/58877dd2e728e8e91fe8f188356c09ef/image.png" width="85%" height="85%">
**FSM - only scalar**
<img src="/uploads/422232e58ae5ddcf60ce7d47877e3262/image.png" width="85%" height="85%">
**FSM - vector+scalar**
<img src="/uploads/f159b9a384b792912bf2d5c89b76c4f0/image.png" width="85%" height="85%">
### Meta-data
EP#1730
* [x] Clean compilation (incl. submodules):
* [x] `linux64ClangDPInt32Opt` (clang11)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new error
### Future work - Constraints
- Test scope should be extended further for:
- Integral length scales
- Domain rotations and/or translations
- Multiphase-flow cases
- Dynamic-mesh cases
- Overset meshes
- Mesh (un)refinements
- Collated-data format
- Hybrid and single precisions
- `transformPoints` utility has no effect on `boundaryData` input, which can slow down case preparations for input sets which need to be rotated/translated
- Scalar-based condition
- No constraints on nonpositive output
- Scarce and ambiguous academic resources
- No cross-correlations
- Not easy to produce/find benchmark data from theory or measurements
- Usefulness is not clarified by academia
- DFM
- Incomplete parallelisation of the three-dimensional separable convolution due to the lack of no open-source algorithms
- ~~The use of `redistributePar -decompose` utility is not supported.~~v2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/531ENH: outletMappedUniformInlet: add multiple fraction, offset and time delays2022-04-29T20:00:23ZKutalmış BerçinENH: outletMappedUniformInlet: add multiple fraction, offset and time delays### Summary
**Aim**
To implement a recirculation boundary
condition for an arbitrary operand scalar with:
- Multiple connected outlets and inlets
- Optional filtration fraction for each recirculation
loop
- Optional time delay for eac...### Summary
**Aim**
To implement a recirculation boundary
condition for an arbitrary operand scalar with:
- Multiple connected outlets and inlets
- Optional filtration fraction for each recirculation
loop
- Optional time delay for each recirculation loop
Additionally, write-control of `scalarTransport` was transferred from `controlDict` to the function object, and enabled `UList` parameters in `interpolateXY` for wider applications.
**Previous status**
Existing boundary condition: `outletMappedUniformInlet`
- Connected between a single outlet and a single inlet
- Instantaneous recirculation: no outlet-to-inlet time delay
- Optional filtration fraction is available as a constant value
- Optional offset is available as a constant value
**Improvements**
- Arbitrary number of outlets can be connected to a single inlet
- Each inlet can be connected to different and arbitrary
combination of outlets
- Each outlet-inlet connection has:
- Optional filtration fraction as a Function1 type
- Optional offset as a Function1 type (i.e. adding/substracting a substance)
- Optional time delay (from outlet to inlet) as a Function1 type
- Each inlet has an optional base inlet-field as a PatchFunction1 type
**Theory**
<img src="/uploads/5cd45d1e0a12a12011aa090361fa16ba/image.png" width="50%" height="50%" />
**Usage**
<img src="/uploads/d6b9aa06465e479f2fcbae6ea92f84e2/image.png" width="75%" height="75%" />
### Resolved bugs
N/A
### Methodology
**Remarks**
- Difficult to design a simple verification test case due to the amount of data
- Verifications were carried out heuristically and manually
- No validation/benchmark available
**Tests**
- Cases
- Single-outlet single-inlet, pisoFoam-LES, constant time-step: [1-single-outlet-inlet.zip](/uploads/bfe8ee7572c24cde5ccd4cb555d9b9d3/1-single-outlet-inlet.zip)
- Multiple-outlet multiple-inlet, pisoFoam-LES, constant time-step: [2-multiple-outlet-inlet.zip](/uploads/dd2b892e86e2b39f829f6189a060b23b/2-multiple-outlet-inlet.zip)
- Multiple-outlet multiple-inlet, reactingParcelFoam-RANS, adjustable time-step
- Scenarios
- Single/multiple-processor run
- Single/multiple-processor run with restart
- decomposePar
- reconstructPar
- redistributePar –decompose
-redistributePar -reconstruct
- No collated-format tests
- Only scalar fields
### Discussion
- No inlet-inlet connection
- Could not infer any necessity for an inlet-inlet
connection. Happy to be proven incorrect, however.
- No constraints were put onto the input entries;
therefore, users need to use their attention
and engineering judgements to avoid
potential unphysical results
- Except negative input of time delays are
suppresed to be zero without emitting any
warning messages.
- For example, filtration fraction can be set to
any number (e.g. more than 100%)
- Needs extensive tests to assume the
functionalities safe for any single-phase,
multiphase and overset finite-volume
applications.
### Meta-data
EP#1730
* [x] Clean compilation (incl. submodules):
* [x] `linux64ClangDPInt32Opt` (clang11)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new errorv2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/530BUG: 2022-1: Various bug fixes2022-05-06T10:03:56ZKutalmış BerçinBUG: 2022-1: Various bug fixes### Resolved bugs
#2299
#2312
#2337
#2429
#2343
#2360
#2426
#2422
#2428
#2425
#2419
#1967
#2391
### Risks
* Expected changes in output
* No changes in mandatory user input.
### Tests
* [x] Clean compilation (incl. submodules):
*...### Resolved bugs
#2299
#2312
#2337
#2429
#2343
#2360
#2426
#2422
#2428
#2425
#2419
#1967
#2391
### Risks
* Expected changes in output
* No changes in mandatory user input.
### Tests
* [x] Clean compilation (incl. submodules):
* [x] `linux64ClangDPInt32Opt` (clang11)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new errorAndrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/529dynamic mesh (un)refinement: compatible with mesh motion2022-03-07T16:07:20ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comdynamic mesh (un)refinement: compatible with mesh motion### Summary
See #2395### Summary
See #2395Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/528Pstream performance and handling improvements2022-07-08T10:40:49ZMark OLESENPstream performance and handling improvements- MPI intrinsics for common primitive types (#2351)
- new broadcast Pstream for one-to-all communications (RIST #2371)
- wrap MPI broadcast for OpenFOAM _scatter_ operations
- improved globalIndex handling
- isoAdvection communication im...- MPI intrinsics for common primitive types (#2351)
- new broadcast Pstream for one-to-all communications (RIST #2371)
- wrap MPI broadcast for OpenFOAM _scatter_ operations
- improved globalIndex handling
- isoAdvection communication improvementsv2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/527ENH: cyclicAMI: extend faceAreaWeight to filter. See #23782022-02-24T11:56:54ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comENH: cyclicAMI: extend faceAreaWeight to filter. See #2378### Summary
See #2378.
Attached is a hack of tutorials/basic/laplacianFoam/implicitAMI with the two blocks separated slightly and the AMI changed into an ACMI. In the blockMeshDict the search-distance is tuned to find only overlaps whe...### Summary
See #2378.
Attached is a hack of tutorials/basic/laplacianFoam/implicitAMI with the two blocks separated slightly and the AMI changed into an ACMI. In the blockMeshDict the search-distance is tuned to find only overlaps where the faces are close together (closer than 5e-3):
```
AMI1
{
type cyclicACMI;
maxDistance2 25e-6;
neighbourPatch AMI2;
transform noOrdering;
nonOverlapPatch AMI1_blockage;
..
}
```
Running `checkMesh -allGeometry` will write postProcessing `mask` file showing that the overlap is 100% where the faces are close and 0 where they are further away.
![mask_with_5e-3](/uploads/310fe2f0f6c05540232e63e352951abd/mask_with_5e-3.png)]Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/524refactor coordSet writers (#2347)2022-04-12T14:54:13ZMark OLESENrefactor coordSet writers (#2347)### Summary
Replace old, stateless, templated _writer_ class with a _coordSetWriter_ class that more closely resembles _surfaceWriter_. It is time-aware and can be used as a streamer with sample/write of each field instead of accumulati...### Summary
Replace old, stateless, templated _writer_ class with a _coordSetWriter_ class that more closely resembles _surfaceWriter_. It is time-aware and can be used as a streamer with sample/write of each field instead of accumulating all of the sampled fields ahead of time.v2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/523ENH: runTimeControl - enable resetting the trigger to an earlier instant2022-02-28T07:07:47ZAndrew HeatherENH: runTimeControl - enable resetting the trigger to an earlier instantThe runTimeControl function object can activate further function objects using
triggers. Previously the trigger index could only advance; this change set
allows users to set smaller values to enable function object recycling, e.g.
Repea...The runTimeControl function object can activate further function objects using
triggers. Previously the trigger index could only advance; this change set
allows users to set smaller values to enable function object recycling, e.g.
Repeat for N cycles:
1. average the pressure at a point in space
2. when the average stabilises, run for a further 100 iterations
3. set a new patch inlet velocity
- back to (1)
Added a 'none' condition that acts as a pass-through/no-op with the option to
set a new trigger value.
Refactored the averageCondition run-time condition and valueAverage FO to use
a common basev2206Mark OLESENMark OLESEN