Skip to content

ENH: New atmospheric boundary layer (ABL) model suite (Part 1)

Summary

This commit is the first main commit of a collaborative work between OpenCFD Ltd.-ENERCON Gmbh-CENER, for which there will be another comprehensive commit in the next release (may include SOWFA-6 - see for exchange of ideas).

With this commit, OpenFOAM learns:

  • How to comprehensively model (RANS) surface and Ekman atmosphere layers under (slightly/very) stable/unstable/neutral atmospheric stability conditions over spatiotemporal-variant terrain (e.g. partially forestry plain).

Details

Please refer to the header file documentation for complete set of details.

  • 8 new fvOptions that are usable with epsilon/omega-based RANS closure models:

    • atmAmbientTurbSource
    • atmBuoyancyTurbSource
    • atmCoriolisUSource
    • atmLengthScaleTurbSource
    • atmPlantCanopyTurbSource
    • atmPlantCanopyUSource
    • atmPlantCanopyTSource
    • atmNutSource
  • 7 new wall functions shipped with PatchFunction1 and TimeFunction1 support for the input entries:

    • atmAlphatkWallFunction
    • atmEpsilonWallFunction
    • atmNutkWallFunction
    • atmNutUWallFunction
    • atmNutWallFunction
    • atmOmegaWallFunction
    • atmTurbulentHeatFluxTemperature
  • A new function object to quantify the Obukhov length:

    • ObukhovLength
  • 3 new tutorials involving buoyantBoussinesqSimpleFoam verifications in comparison to field measurements:

    • verificationAndValidation/atmosphericFlows/atmFlatTerrain
      • verification with the Leipzig field experiment
      • illustration of precursor/successor field mapping
    • verificationAndValidation/atmosphericFlows/atmForestStability
      • verification with the Sweden field experiment
  • 2 new actuator disk modelling approaches in the existing actuationDiskSource wherein the incoming velocity measurements can now be held by using topoSets.

Resolved bugs (If applicable)

None.

Verifications

The model suite was verified for neutral stability by the Leipzig experiment for which all the details can be found in, and can be reproduced by verificationAndValidation/atmosphericFlows/atmFlatTerrain

buoyantBoussinesqSimpleFoam-kEpsilon:

buoyantBoussinesqSimpleFoam-kOmegaSST:

In addition, the model suite was verified for all spectrum of stability conditions with forestry ground by the Sweden(?) experiment for which all the details can be found in, and can be reproduced by verificationAndValidation/atmosphericFlows/atmForestStability

buoyantBoussinesqSimpleFoam-kEpsilon (wind speed, turbulent kinetic energy, and wind veer profiles, respectively):

with the Obukhov lengths:

veryStable = 44.7979
stable = 300.723
slightlyStable = 859.962
neutral = undefined
slightlyUnstable = -547.088
unstable = -265.992

buoyantBoussinesqSimpleFoam-kOmegaSST (wind speed, turbulent kinetic energy, and wind veer profiles, respectively):

with the Obukhov lengths:

veryStable = 67.5555
stable = 396.562
slightlyStable = 1147.69
neutral = undefined
slightlyUnstable = -707.885
unstable = -319.368

Furthermore, the persistence of atmospheric boundary layer inlet profiles downstream were quantified in comparison to the profiles near the outlet, and it was found out that the overall discrepancy is within 2%:

(wind speed, turbulent kinetic energy, turbulence intensity, and temperature horizontal profiles, respectively)

Risks

  • User input change: nutkAtmRoughWallFunction is renamed without extra support to atmNutkWallFunction (ensured the bitwise regression)
  • Since the majority of the utilities above are new, the potential effects on the existing utilities would only be unexpected.
Edited by Kutalmış Berçin

Merge request reports