8. Recap

In this workshop we built a neutral ABL over terrain category II from scratch, ran it on the AeroSim solver and inspected the results. This chapter puts the whole path back together, so it can be used as a checklist for the next case.

What we did

Block

What was done

1

Generated the plane (\(8000 \times 2000\,\text{m}\), translated \(2000\,\text{m}\) in X) and the CAT 2 roughness elements.

2

Created the ABL Cat2 simulation and attached both geometries, the plane with the ABL wall model and the roughness elements with no-slip.

3

Set the domain limits and translation, added the ABL refinement box and generated the mesh from the baseline resolution.

4

Set the solver numerics: SEM inlet and the remaining BCs, the LES Smagorinsky model and the fluid and time parameters.

5

Added the data exports: debug volume and planes, domain statistics and the three vertical line profiles.

6

Created the run, submitted it to the queue, followed logs and monitors, and downloaded the results.

7

Opened the results in ParaView, plotted the profiles against the Eurocode and animated the XZ plane.

The settings we ended with

Item

Value

Terrain category

CAT 2, roughness length \(z_0 = 0.05\,\text{m}\)

Domain

\(7000 \times 1500 \times 850\,\text{m}\), Z translation \(-50.1\,\text{m}\)

Development length

\(1500\,\text{m}\)

Baseline resolution

\(10\,\text{m}\), ABL refinement target \(1.5\,\text{m}\) (maximum \(2\,\text{m}\))

Mesh

~38M nodes

Inlet

SEM, log law, \(U = 5\,\text{m/s}\) at \(z_{ref} = 3\,\text{m}\)

Models

LES Smagorinsky, \(C_s = 0.17\)

Fluid

\(\mu = 0.0002\,\text{Pa}\,\text{s}\), \(\rho = 1.225\,\text{kg/m}^3\)

Time window

\(-600\,\text{s}\) to \(600\,\text{s}\) (2 FTTs of development, 1000 CTS of acquisition)

Runtime

~1h20 at the default 500 MLUPS

Things worth carrying to the next case

  • The plane is not just geometry. Its boundary condition is what makes the case an ABL: the wall model plus the roughness elements are what keep the profile and the turbulence intensity alive along the fetch. A no-slip plane gives a different flow.

  • The refinement box must start at the inlet. If it starts downstream, numerical diffusivity eats the profile before it reaches the region of interest.

  • The reachable cell sizes are the baseline halved repeatedly. Setting a target and a maximum instead of a single value is what lets the baseline be iterated later without touching the refinement form.

  • There are two convective time scales in play. The development one, on the fetch length (1500 m / 5 m/s = 300 s), and the body one, on the reference height (3 m / 5 m/s = 0.6 s). The first sizes the negative time, the second sizes the acquisition.

  • Statistics exports need their outputs switched. Duplicating a debug volume and only changing the period leaves it exporting instantaneous fields, which is how a case ends up with tens of GB of data nobody asked for.

  • Debug exports are cheap insurance. A full domain snapshot at a long period and a couple of planes are what make a strange result diagnosable instead of a rerun.

  • Matching the Eurocode is iterative. In our run the mean velocity landed on the target and the turbulence intensity came in low. Element height, the SEM K multiplier, the roughness category and the resolution are the knobs, and finding the combination is trial and error.

Where to go from here

The case we just built is an empty domain whose only job is to deliver a developed profile at 0 m. That is the starting point, not the end: the next simulations reuse this same setup and add a body to it, keeping the inflow, the refinement and the timing we validated here.

See also