mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: add generalised log-law type ground-normal inflow boundary conditions for wind velocity and turbulence quantities for homogeneous, two-dimensional, dry-air, equilibrium and neutral atmospheric boundary layer (ABL) modelling ENH: remove `zGround` entry, which is now automatically computed ENH: add `displacement height` entry, `d` ENH: add generalised atmBoundaryLayerInletOmega boundary condition ENH: add a verification case for atmBoundaryLayerInlet BCs DOC: improve atmBoundaryLayerInlet header documentation BUG: fix value-entry behaviour in atmBoundaryLayerInlet (fixes #1578) Without this change: - for serial-parallel computations, if `value` entry is available in an `atmBoundaryLayerInlet` BC, the theoretical ABL profile expressions are not computed, and the `value` entry content is used as a profile data - for parallel computations, if `value` entry is not available, `decomposePar` could not be executed. With this change: - assuming `value` entry is always be present, the use of `value` entry for the ABL profile specification is determined by a flag `initABL` - the default value of the optional flag `initABL` is `true`, but whenever `initABL=true` is executed, `initABL` is overwritten as `false` for the subsequent runs, so that `value` entry can be safely used. Thanks Per Jørgensen for the bug report. BUG: ensure atmBoundaryInlet conditions are Galilean-invariant (fixes #1692) Related references: The ground-normal profile expressions (tag:RH): Richards, P. J., & Hoxey, R. P. (1993). Appropriate boundary conditions for computational wind engineering models using the k-ε turbulence model. In Computational Wind Engineering 1 (pp. 145-153). DOI:10.1016/B978-0-444-81688-7.50018-8 Modifications to preserve the profiles downstream (tag:HW): Hargreaves, D. M., & Wright, N. G. (2007). On the use of the k–ε model in commercial CFD software to model the neutral atmospheric boundary layer. Journal of wind engineering and industrial aerodynamics, 95(5), 355-369. DOI:10.1016/j.jweia.2006.08.002 Expression generalisations to allow height variation for turbulence quantities (tag:YGCJ): Yang, Y., Gu, M., Chen, S., & Jin, X. (2009). New inflow boundary conditions for modelling the neutral equilibrium atmospheric boundary layer in computational wind engineering. J. of Wind Engineering and Industrial Aerodynamics, 97(2), 88-95. DOI:10.1016/j.jweia.2008.12.001 The generalised ground-normal profile expression for omega (tag:YGJ): Yang, Y., Gu, M., & Jin, X., (2009). New inflow boundary conditions for modelling the neutral equilibrium atmospheric boundary layer in SST k-ω model. In: The Seventh Asia-Pacific Conference on Wind Engineering, November 8-12, Taipei, Taiwan. Reproduced benchmark: Rectangular prism shown in FIG 1 of Hargreaves, D. M., & Wright, N. G. (2007). On the use of the k–ε model in commercial CFD software to model the neutral atmospheric boundary layer. Journal of wind engineering and industrial aerodynamics, 95(5), 355-369. DOI:10.1016/j.jweia.2006.08.002 Benchmark data: HW, 2007 FIG 6 TUT: update simpleFoam/turbineSiting tutorial accordingly
112 lines
2.3 KiB
C++
112 lines
2.3 KiB
C++
/*--------------------------------*- C++ -*----------------------------------*\
|
|
| ========= | |
|
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
| \\ / O peration | Version: v1912 |
|
|
| \\ / A nd | Website: www.openfoam.com |
|
|
| \\/ M anipulation | |
|
|
\*---------------------------------------------------------------------------*/
|
|
FoamFile
|
|
{
|
|
version 2.0;
|
|
format ascii;
|
|
class dictionary;
|
|
object blockMeshDict;
|
|
}
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
scale 1;
|
|
|
|
// x = streamwise
|
|
// y = spanwise
|
|
// z = wall-normal
|
|
|
|
nx 500;
|
|
ny 5;
|
|
nz 50;
|
|
xMin 0;
|
|
xMax 5000.0;
|
|
yMin 0;
|
|
yMax 100.0;
|
|
zMin 0.0;
|
|
zMax 500.0;
|
|
// blockMesh calculator input:
|
|
// width of start cell = 1.0 (HW:p. 359)
|
|
// number of cells = 50
|
|
// total length = 500
|
|
// blockMesh calculator output:
|
|
// cell-to-cell expansion ratio = 1.076030437 (consistent with 1.076 (HW:Fig.1))
|
|
zTotalExpansion 36.25795062;
|
|
|
|
vertices
|
|
(
|
|
($xMin $yMin $zMin)
|
|
($xMax $yMin $zMin)
|
|
($xMax $yMax $zMin)
|
|
($xMin $yMax $zMin)
|
|
($xMin $yMin $zMax)
|
|
($xMax $yMin $zMax)
|
|
($xMax $yMax $zMax)
|
|
($xMin $yMax $zMax)
|
|
);
|
|
|
|
blocks
|
|
(
|
|
hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 1 $zTotalExpansion)
|
|
);
|
|
|
|
edges
|
|
(
|
|
);
|
|
|
|
boundary
|
|
(
|
|
inlet
|
|
{
|
|
type patch;
|
|
faces
|
|
(
|
|
(0 4 7 3)
|
|
);
|
|
}
|
|
ground
|
|
{
|
|
type wall;
|
|
faces
|
|
(
|
|
(0 3 2 1)
|
|
);
|
|
}
|
|
top
|
|
{
|
|
type patch;
|
|
faces
|
|
(
|
|
(4 5 6 7)
|
|
);
|
|
}
|
|
sides
|
|
{
|
|
type symmetry;
|
|
faces
|
|
(
|
|
(1 5 4 0)
|
|
(3 7 6 2)
|
|
);
|
|
}
|
|
outlet
|
|
{
|
|
type patch;
|
|
faces
|
|
(
|
|
(2 6 5 1)
|
|
);
|
|
}
|
|
);
|
|
|
|
mergePatchPairs
|
|
(
|
|
);
|
|
|
|
|
|
// ************************************************************************* //
|