openfoam merge requestshttps://develop.openfoam.com/Development/openfoam/-/merge_requests2023-12-05T09:48:44Zhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/648ENH: KinematicWeberNumber: New cloud function object2023-12-05T09:48:44ZKutalmış BerçinENH: KinematicWeberNumber: New cloud function object### Summary
Calculates and writes particle Weber number field on the cloud.
See the header file documentations for the details.
### Risks
No change in existing input/output.
#### Metadata
- [x] linux64ClangDPInt32Opt (clang15)
- [x]...### Summary
Calculates and writes particle Weber number field on the cloud.
See the header file documentations for the details.
### Risks
No change in existing input/output.
#### Metadata
- [x] linux64ClangDPInt32Opt (clang15)
- [x] linux64GccDPInt32Opt
- [x] linux64GccSPDPInt64Debug
- [x] Alltest: No new error/No change in existing output
- [x] Test cases: `$FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/spinningDisk`v2312Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/646Extract case and solver information2023-12-04T09:51:36ZAndrew HeatherExtract case and solver informationSeries of changes to support extraction of case/solver information in OpenFOAM dictionary/JSON formats.
- ENH: checkMesh - added -writeChecks option
- TUT: Added caseInfo function object example
- ENH: Added new caseInfo function object...Series of changes to support extraction of case/solver information in OpenFOAM dictionary/JSON formats.
- ENH: checkMesh - added -writeChecks option
- TUT: Added caseInfo function object example
- ENH: Added new caseInfo function object
- ENH: Added new JSONformatter to write Ostream content in JSON format
- ENH: polyMeshCheck - added mesh quality metrics to meshState dictionary
- STYLE: Refactoring use of meshState in {fv|faMesh}
- STYLE: renamed/moved 'data' to 'meshState'v2312Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/644Added Abaqus sampling and writing2023-12-04T12:32:19ZAndrew HeatherAdded Abaqus sampling and writingAdds:
- Abaqus mesh `sampledSet` : `abaqusMesh`
- Abaqus co-ord set writer : `abaqus`
- Added field level/scale from surface writers to co-ord writersAdds:
- Abaqus mesh `sampledSet` : `abaqusMesh`
- Abaqus co-ord set writer : `abaqus`
- Added field level/scale from surface writers to co-ord writersv2312Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/639ENH: Reduced-order modelling field reconstruction with DMD2023-11-24T19:57:20ZKutalmış BerçinENH: Reduced-order modelling field reconstruction with DMD#### Acknowledgement
OpenCFD would like to acknowledge and thank **Marco Kiewat** for his contributions, elaborate suggestions and help, and critical recommendations. Highly appreciated.
#### Problem
- OpenFOAM currently lacks one of ...#### Acknowledgement
OpenCFD would like to acknowledge and thank **Marco Kiewat** for his contributions, elaborate suggestions and help, and critical recommendations. Highly appreciated.
#### Problem
- OpenFOAM currently lacks one of the key advantages of DMD:
- the capability to generate a field based on given modes and their associated dynamics, without the need for any CFD computations at arbitrary intermediate and/or future time points.
- This functionality would allow users to condense an entire simulation into a few modes and mode dynamics, and subsequently generate fields at any desired time or predict their future states of periodic or pseudo-periodic systems, all without the need for additional CFD analyses.
#### Solution
Implement and verify the method proposed by [Kiewat (2019)](https://mediatum.ub.tum.de/doc/1482652/815436.pdf) to generate time-variant field data from DMD data for a set of specified times.
#### Verification
##### Coarse mesh
![image](/uploads/a00f43670020abb4737a0e37306ea550/image.png)
![coarse](/uploads/000bb2117e883f9ca7cfebeb2c3b7f2c/coarse.mp4)
##### Fine mesh
![image](/uploads/d3e5ba304c0997de719d6eb07dee918b/image.png)
![fine](/uploads/6d1d980ba1a1eb42ba8a8cc79d8d0396/fine.mp4)
#### Discussion
- The quality of results depends on the capabilities of the underlying reduced-order model, and the quality of the input data.
- To improve the reconstruction results, one needs to make sure that modes are correctly extracted from the flow.
- The easiest method to check the quality:
- Inspect the real part of the first mode visually.
- Compare it with the time-mean of the operand decomposed field.
- The real part of the first mode should always look like the time-mean of the operand decomposed field.
- If both fields are dissimilar, expect low quality results from the `createROMfields`.
#### Risks
- No change in existing input/output.
- The tutorial `$FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/cylinder2D` is run for a longer period.
- Also, the parallel `renumberMesh` operation is removed from its existing `Allrun` script.
#### Metadata
- [x] linux64ClangDPInt32Opt (clang15)
- [x] linux64GccDPInt32Opt
- [x] linux64GccSPDPInt64Debug
- [x] Alltest: No new error/No change in existing output
- [x] Test cases: `$FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/cylinder2D`v2312Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/630ENH: Moving electric sources mapped from external meshes2023-11-03T14:33:12ZKutalmış BerçinENH: Moving electric sources mapped from external meshes#### Problem
As of the current state of OpenFOAM, the following capabilities are not available:
- The ability to dynamically update cell selections in `fvOptions` through input dictionary updates.
- The absence of support in `fvOptions...#### Problem
As of the current state of OpenFOAM, the following capabilities are not available:
- The ability to dynamically update cell selections in `fvOptions` through input dictionary updates.
- The absence of support in `fvOptions` for handling moving selections, such as moving points.
- The inability to map static fields from external sources for further processing, for instance, when dealing with moving static electric-source fields within an electric field being simulated.
#### Solution
- The `cellSetOption` (hence, all `fvOptions` derived from the `cellSetOption`) received three new optional input:
- `movingPoints`: Use cells containing a given set of moving points.
- ~~`mesh`: Select cells based on a given secondary mesh.~~
- `updateSelection`: Flag to enable selection updates.
- New templated `fvOption` to constrain values of given fields with a source field from an external mesh: `<Type>MapFieldConstraint`.
- A new hook to `electricPotential` function object to accomodate internal `fvOption` constraints.
#### Verification
- (Heuristic) Test cases:[moving-electric-potential.zip](/uploads/c242520ec4e70ab52bb520446f386b24/moving-electric-potential.zip) (Prior to the review changes)
#### Risks
- No change in existing input/output.
#### Metadata
- [x] linux64ClangDPInt32Opt (clang13)
- [x] linux64GccDPInt32Opt
- [x] linux64GccSPDPInt64Debug
- [x] Alltest: No new error/No change in existing outputv2312Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/613ENH: sixDoF: add max/min angle constraints to the axis constraint2023-06-14T14:30:57ZKutalmış BerçinENH: sixDoF: add max/min angle constraints to the axis constraint#### Summary
The `axis` constraint imposes an orientation limitation where bodies
are restricted to rotate only around a fixed axis.
The set of commits optionally introduces the inclusion of maximum and
minimum rotation angle constrain...#### Summary
The `axis` constraint imposes an orientation limitation where bodies
are restricted to rotate only around a fixed axis.
The set of commits optionally introduces the inclusion of maximum and
minimum rotation angle constraints to the `axis` constraint.
##### Details
The following plot shows the rotation angle of the body modelled in "test-case.zip" with respect to the reference orientation. The inflow changes at t=2[s] and =4.5[s] to move the body in the opposite directions:
- Between t=0-2[s], the flow rotates the body in the clockwise direction. However, the body is limited by 0.15[rad] clockwise rotation wrt the ref orientation.
- Note that the ref orientation is at +0.25[rad] at t=0[s].
- Between t=2-4.5[s], the flow rotates the body in the counterclockwise direction. The body is limited to 0.05[rad] counterclockwise rotation wrt the ref orientation.
- Note that the body wants to rotate in the clockwise direction for sometime due to (I assume) some wake physics (or I need to reping the body to another point) between 3.5-4.5[s].
- Between t=4.5-8.5[s], the flow rotates the body in the clockwise direction, but this time, the rotation is limited to -0.1[rad] clockwise rotation.
<img src="/uploads/5a350ae505a61a12432a2011a3df377a/plot_theta_0.png" width="40%" height="40%">
#### Risks
- No change in existing input/output.
#### Metadata
- [x] linux64ClangDPInt32Opt (clang13)
- [ ] linux64GccDPInt32Opt
- [ ] linux64GccSPDPInt64Debug
- [ ] Alltest: No new error/No change in existing output
- [x] Test case: [test-case.zip](/uploads/42697e3e56b4f2faa249f7e5ebd5c976/test-case.zip)v2306Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/602ENH: Coulomb: new particle electric force model calculating Coulomb forces2023-05-15T15:35:14ZKutalmış BerçinENH: Coulomb: new particle electric force model calculating Coulomb forces#### Problem
OpenFOAM lacked a Lagrangian model for electrostatic forces acting on particles based on their diameters.
#### Solution
The present commits furnish a model of this kind, along with essential underlying changes in the 'ele...#### Problem
OpenFOAM lacked a Lagrangian model for electrostatic forces acting on particles based on their diameters.
#### Solution
The present commits furnish a model of this kind, along with essential underlying changes in the 'electricPotential' function object for evaluating the electric field. The coupling is one way (for now).
#### Meta-data
* EP1880
* [x] `linux64ClangDPInt32Opt` (clang13)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new error/No change in existing output
* [x] No output change in all operating conditions except the following:
- The electric field is computed according to the new Boolean input `electricField` instead of `writeDerivedFields` toogle.Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/583ENH: added option to control log frequency of lagrangian calculations2022-12-09T10:05:42ZAndrew HeatherENH: added option to control log frequency of lagrangian calculations### Summary
Cross ref: EP#1945
Lagrangian cloud calculations can generate significant amounts of reporting, e.g.
Solving2-D cloud reactingCloud1
Cloud: reactingCloud1
Current number of parcels = 994
Curre...### Summary
Cross ref: EP#1945
Lagrangian cloud calculations can generate significant amounts of reporting, e.g.
Solving2-D cloud reactingCloud1
Cloud: reactingCloud1
Current number of parcels = 994
Current mass in system = 0.009735873844
Linear momentum = (0.0001652067978 0.0001039875528 0)
|Linear momentum| = 0.0001952093676
Linear kinetic energy = 0.0001660812145
Average particle per parcel = 19.21387643
Injector model1:
- parcels added = 994
- mass introduced = 0.01
Parcel fate: system (number, mass)
- escape = 0, 0
Parcel fate: patch (walls|cyc.*) (number, mass)
- escape = 0, 0
- stick = 0, 0
Parcel fate: patch (inlet|outlet) (number, mass)
- escape = 0, 0
- stick = 0, 0
Temperature min/max = 275.039299, 275.4193813
Mass transfer phase change = 0.000264126156
Mass transfer devolatilisation = 0
Mass transfer surface reaction = 0
If multiple injectors and/or more interaction patches are present, the quantity of output information can increase dramatically.
For some workflows it can be beneficial to reduce the amount of output by reporting this data every `n` time steps instead of every step.
### Details of new models (If applicable)
Added an optional `logFrequency` keyword to the cloud solution input dictionary, e.g. in the `<case>/constant/*CloudProperties`
solution
{
active true;
coupled false;
transient yes;
cellValueSourceCorrection off;
maxCo 0.3;
logFrequency 3; // <--- NEW ENTRY
...
}
The value is set to 1 by default to maintain backwards compatibility.
### Risks
- Multiple small changes across the code - should be low risk.
- use of `Log_` vs `Log` annoying but needed for use in templated code - suggestions welcomev2212Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/580ENH: Brun dripping film injection2022-12-01T13:58:35ZKutalmış BerçinENH: Brun dripping film injectionEP2009
Test case: [dripping-test.zip](/uploads/972e684819c0a3b9b833e0d68e1d7560/dripping-test.zip)
* [x] `linux64ClangDPInt32Opt` (clang13)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new errorEP2009
Test case: [dripping-test.zip](/uploads/972e684819c0a3b9b833e0d68e1d7560/dripping-test.zip)
* [x] `linux64ClangDPInt32Opt` (clang13)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new errorv2212Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/579ENH: solidIsothermalReactionRate: new solid reaction rate model2022-11-29T14:31:17ZKutalmış BerçinENH: solidIsothermalReactionRate: new solid reaction rate modelEP2005, EP1629
##### Usage example
In `combustion/fireFoam/LES/simplePMMApanel/constant/panelRegion/reactions`:
```
reactions
{
_tmp_
{
#include "<constant>/panelRegion/thermo.solid"
}
charReaction
{
...EP2005, EP1629
##### Usage example
In `combustion/fireFoam/LES/simplePMMApanel/constant/panelRegion/reactions`:
```
reactions
{
_tmp_
{
#include "<constant>/panelRegion/thermo.solid"
}
charReaction
{
type irreversibleIsothermalSolidReaction;
reaction "PMMA = gas";
C <scalar>;
Tpc <scalar>;
Elat <scalar>;
Cp ${../_tmp_/PMMA/thermodynamics/Cp};
}
#remove _tmp_
}
```
* [x] `linux64ClangDPInt32Opt` (clang13)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new errorMark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/577ENH: fvOptions: add writeFile functionality2022-12-08T11:37:58ZKutalmış BerçinENH: fvOptions: add writeFile functionalityEP2028
EP1947
* [x] `linux64ClangDPInt32Opt` (clang13)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new errorEP2028
EP1947
* [x] `linux64ClangDPInt32Opt` (clang13)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new errorv2212Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/575ENH: leastSquaresEdgeInterpolation: new edge interpolation method2022-12-01T12:24:45ZKutalmış BerçinENH: leastSquaresEdgeInterpolation: new edge interpolation methodDocumentation: [MR575-edgeInterpolation-scheme-23-Nov-22.pdf](/uploads/70de4f1a6735f8bf16fb630a5c158e18/MR-edgeInterpolation-scheme-23-Nov-22.pdf)
Test case: [MR575-edgeInterpolation-scheme-23-Nov-22.zip](/uploads/324646ab02997f421292bc...Documentation: [MR575-edgeInterpolation-scheme-23-Nov-22.pdf](/uploads/70de4f1a6735f8bf16fb630a5c158e18/MR-edgeInterpolation-scheme-23-Nov-22.pdf)
Test case: [MR575-edgeInterpolation-scheme-23-Nov-22.zip](/uploads/324646ab02997f421292bceda13cd9e8/finiteArea.zip)
##### Metadata
EP#1996
* [x] `linux64ClangDPInt32Opt` (clang13)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new errorv2212Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/571ENH: Evapotranspiration utilities2022-12-08T11:36:30ZKutalmış BerçinENH: Evapotranspiration utilitiesEP1950EP1950v2212Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/569ENH: resolutionIndex: new function object to evaluate LES/DES resolution2022-11-24T10:16:58ZKutalmış BerçinENH: resolutionIndex: new function object to evaluate LES/DES resolution#### Acknowledgement
OpenCFD would like to acknowledge and thank **[Prof. Ismail Celik](https://directory.statler.wvu.edu/faculty-staff-directory/ismail-celik)** for his contributions, elaborate suggestions and help, and critical recomm...#### Acknowledgement
OpenCFD would like to acknowledge and thank **[Prof. Ismail Celik](https://directory.statler.wvu.edu/faculty-staff-directory/ismail-celik)** for his contributions, elaborate suggestions and help, and critical recommendations. Highly appreciated.
#### Problem statement
Grid independency studies and grid
adaptation for implicit LES/DES are nontrivial
and intractable due to the inherent coupling
between spatial resolution and subgrid-scale
modelling.
#### Problem solution
- In the literature, various metrics which do not
use any experimental or DNS data and which
is based on a single mesh were introduced.
- To enable assessments for LES/DES
resolution, a single-mesh resolution index
with three submodels is introduced:
- Pope (2000)'s index using turbulent kinetic
energy variables,
- Celik et al. (2005) and Celik et al. (2009)'s
index using
- Effective Kolmogorov length scale, and
- Effective viscosity.
#### Theory
<img src="/uploads/ad75d2ce147e118b0d200a05b7ad4744/Screenshot_from_2022-11-15_15-16-45.png" width="50%" height="50%">
<img src="/uploads/9669fbd2183fd483fc759fec5abfa443/Screenshot_from_2022-11-15_15-17-35.png" width="50%" height="50%">
<img src="/uploads/d98e042f34c73f8908cbf4a477174f46/Screenshot_from_2022-11-15_15-17-42.png" width="50%" height="50%">
#### Usage
<img src="/uploads/78433a8ae1a87f96c21ecfb341fb22ea/Screenshot_from_2022-11-15_15-17-50.png" width="50%" height="50%">
<img src="/uploads/0ca3187362cd7ab19aa28cfa9537d47c/Screenshot_from_2022-11-15_15-17-58.png" width="50%" height="50%">
<img src="/uploads/bc3db2cd28f3421b59d0cccc09328870/Screenshot_from_2022-11-15_15-18-06.png" width="50%" height="50%">
<img src="/uploads/9531120c8da53982b8be355003dfb596/Screenshot_from_2022-11-15_15-18-14.png" width="50%" height="50%">
#### Tests
[resolutionIndex-tests.zip](/uploads/889447b92fa794ac6482894b63e40b6d/resolutionIndex-tests.zip)
#### Results
![Screenshot_from_2022-11-15_15-22-13](/uploads/397de8e179ac7d423aec04436fea533f/Screenshot_from_2022-11-15_15-22-13.png)
![Screenshot_from_2022-11-15_15-22-22](/uploads/2cbd8f4146a4af6a822612af3aa23353/Screenshot_from_2022-11-15_15-22-22.png)
![Screenshot_from_2022-11-15_15-22-29](/uploads/ba00ded6583dd4bb9cdb6340a50f7d75/Screenshot_from_2022-11-15_15-22-29.png)
![Screenshot_from_2022-11-15_15-22-39](/uploads/b2b5bfd848dcd71a221540aa32e5cc65/Screenshot_from_2022-11-15_15-22-39.png)
#### Discussion
- Resolution-index models need good
estimators for the subgrid-scale turbulent
kinetic energy (ksgs) field.
- The DES models of `SpalartAllmaras` seem to
produce zero-valued ksgs fields – Bug ticket
is issued: [GL2620](https://develop.openfoam.com/Development/openfoam/-/issues/2620)
- DES models may need a chain of
operations – see 'system/{controlDict,FOresolutionIndex}' in
DES cases in order to mask out the RANS regions.
#### References
- Pope, S. B. (2000). Turbulent flows. Cambridge, UK: Cambridge Univ. Press
- Celik, I. B., Cehreli Z. N., Yavuz I. (2005). Index of resolution quality for large
eddy simulations. Journal of Fluids Engineering. 127:949–958.
- Celik, I., Klein, M., & Janicka, J. (2009). Assessment measures for engineering LES applications.
Journal of fluids engineering, 131(3)
#### Metadata
EP#1997
* [x] `linux64ClangDPInt32Opt` (clang13)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new errorv2212Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/563ENH: functionObjects: refactor and extend histogram2022-11-14T17:34:56ZKutalmış BerçinENH: functionObjects: refactor and extend histogram- new submodels:
- 'equalBinWidth': groups data into bins of equal widths (previous behaviour)
- 'unequalBinWidth': groups data into bins of unequal widths
- output files per time-step are replaced with a single output file
- silen...- new submodels:
- 'equalBinWidth': groups data into bins of equal widths (previous behaviour)
- 'unequalBinWidth': groups data into bins of unequal widths
- output files per time-step are replaced with a single output file
- silently deprecates the input entries: 'setFormat' and 'formatOptions'
#### Meta-data
* EP1969
* [x] `linux64ClangDPInt32Opt` (clang11)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new error/No change in existing outputv2212Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/561ENH: faceZoneReferenceTemperature: new heatTransferCoeff model2022-11-21T15:59:47ZKutalmış BerçinENH: faceZoneReferenceTemperature: new heatTransferCoeff modelEP1947 - see `faceZoneReferenceTemperature.H` for model usage.EP1947 - see `faceZoneReferenceTemperature.H` for model usage.v2212Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/557ENH: fvOptions: refactor and extend effectivenessHeatExchangerSource2022-09-07T13:55:04ZKutalmış BerçinENH: fvOptions: refactor and extend effectivenessHeatExchangerSource#### Summary
- rename effectivenessHeatExchangerSource -> heatExchangerSource
- introduce submodels:
- effectivenessTable (previous behaviour)
- referenceTemperature
- the referenceTemperature submodel uses a reference temperature
...#### Summary
- rename effectivenessHeatExchangerSource -> heatExchangerSource
- introduce submodels:
- effectivenessTable (previous behaviour)
- referenceTemperature
- the referenceTemperature submodel uses a reference temperature
which is either a scalar or calculated from a 2D interpolation
table in order to calculate the heat exchange.
- the following figure shows the verification level of
the comparisons between the original and refactored `referenceTemperature`
modules in terms of average temperature.
<img src="/uploads/40d9aad34807cfb724ecc81442327e5b/image.png" width="50%" height="50%">
#### Metadata
- EP1903
- diligently reviewed and tested by @Tobi (thanks Tobi)
- see `v2212/01-heatExchangerSource` for a test caseAndrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/547ENH: DMD: add multi-patch input functionality2022-06-08T13:23:09ZKutalmış BerçinENH: DMD: add multi-patch input functionalityEP#1796, EP#1873
### Summary
This feature allows users to specify multiple patches in DMD calculations:
```
DMD1
{
// Optional entries
// Option-1
patch <word>;
// Option-2
patches ...EP#1796, EP#1873
### Summary
This feature allows users to specify multiple patches in DMD calculations:
```
DMD1
{
// Optional entries
// Option-1
patch <word>;
// Option-2
patches (<wordRes>);
}
```
The DMD snapshots concatenate each patch field, e.g. for velocity field:
`(u1 v1 w1 u2 v2 w2 u1_o v1_o w1_o u2_o v2_o w2_o)`
where "1" and "2" indicate different patches, "u v w" different components of a vector, and "o" the previous DMD step.
Also, the most expensive parts of the `STDMD` implementation were identified and reworked resulting in various reductions in calculation runtime.
For example, the timing of the standard "cylinder2D" tutorial (i.e. with all `STDMD` function objects are active), the duration of the parallel 12-processor simulation has been reduced from ~200secs to ~80secs during local tests, approximately a ~60% reduction.
Another test of DrivAer was reported to provide approximately 10x speedup.
### Tests
* [x] `linux64ClangDPInt32Opt` (clang11)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new errorv2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/546ENH: new tabulated anisotropic solid transport model2022-06-08T12:59:50ZKutalmış BerçinENH: new tabulated anisotropic solid transport modelEP1878
#### Summary
This feature allows users to specify tabulated anisotropic thermal conductivity
properties for solid thermodynamics with an optional coordinate system specification.
The transport model is called `tabulatedAnIso`, ...EP1878
#### Summary
This feature allows users to specify tabulated anisotropic thermal conductivity
properties for solid thermodynamics with an optional coordinate system specification.
The transport model is called `tabulatedAnIso`, and as an example, the model
is specified in `thermophysicalProperties` file as follows:
```
thermoType
{
type heSolidThermo;
mixture pureMixture;
transport tabulatedAnIso;
thermo hTabulated;
equationOfState icoPolynomial;
specie specie;
energy sensibleEnthalpy;
}
mixture
{
specie
{
molWeight 50;
}
transport
{
kappa table
(
// T kappa
( 200 (80 80 80) )
( 400 (80 80 80) )
);
// kappa <Function1<scalar>>;
}
thermodynamics
{
Hf 0;
Cp
(
( 200 450)
( 400 450)
);
Sf 0;
}
equationOfState
{
rhoCoeffs<8> (8000 0 0 0 0 0 0 0);
}
}
coordinateSystem
{
type cylindrical;
origin (0 0 0);
rotation
{
type cylindrical;
axis (1 0 0);
}
}
```
#### Tests
- [x] `linux64ClangDPInt32Opt`
- [x] `linux64GccDPInt32Opt`
- [x] `linux64GccSPDPInt64Debug`
- [x] Alltestv2206Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/545ENH: setTurbulenceFields: new automatic initialisation method for turbulence ...2022-06-14T13:22:18ZKutalmış BerçinENH: setTurbulenceFields: new automatic initialisation method for turbulence fields#### Acknowledgement
OpenCFD would like to acknowledge and thank **Prof. Rémi Manceau** for providing the governing equations for `setTurbulenceFields`, elaborate suggestions and critical recommendations. Highly appreciated.
#### Aim...#### Acknowledgement
OpenCFD would like to acknowledge and thank **Prof. Rémi Manceau** for providing the governing equations for `setTurbulenceFields`, elaborate suggestions and critical recommendations. Highly appreciated.
#### Aim
Implement and evaluate the two-step automatic initialization procedure for RANS computations introduced by Manceau (n.d.).
#### 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
**2DML: 2D Mixing layer**
<img src="/uploads/e00398017af9f013108c7ecb5dd288cb/Screenshot_from_2022-05-31_11-25-20.png" width="75%" height="75%">
<img src="/uploads/f1866890400631b1306f31713c981074/Screenshot_from_2022-05-31_11-25-30.png" width="75%" height="75%">
**Plane channel flow, ReTau=4179**
<img src="/uploads/f085f52634d45a085bd90d05da3be854/Screenshot_from_2022-05-31_11-31-54.png" width="75%" height="75%">
### Meta-data
EP#1805
* [x] `linux64ClangDPInt32Opt` (clang11)
* [x] `linux64GccDPInt32Opt`
* [x] `linux64GccSPDPInt64Debug`
* [x] Alltest: No new error
### Discussion
- The initialisation method may help to improve convergence in the first `O(10)` time steps, and fidelity of results.
- The initialisation method does not take input turbulence intensity and/or input viscosity ratios (mut/mu) into account.v2206Mark OLESENMark OLESEN