(vc_stratified_street_canyon)= # Stratified Street Canyon (Jiang & Yoshie 2018) ```{admonition} Status: SCAFFOLD - config diverges at full resolution, P5 tuning required --- class: warning --- The full stratified-ABL stack in this case COMPILES and BUILDS on GPU (SEM velocity inlet + buoyant `temperature` scalar + flux-driven Monin-Obukhov IBM ground wall model + z-varying scalar inlet + voxelized buildings + passive pollutant line source, level-2 refinement). At the committed full resolution it fits comfortably (~7.3 GB allocated on a 12 GB GPU), but the **provisional lattice parameters are not yet numerically stable**: a full-resolution run diverges early (`rho` non-finite at step ~549, caught by the default divergence guard). An earlier 50-step level-1 smoke stayed finite, but that is not representative of the committed level-2 case. No physics agreement is claimed; stabilising the provisional parameters (SEM injection transient, source strength `S0`, refinement placement), digitizing the reference data and a statistically-converged run all remain for phase 5 (epic #1034, issue #1039). ``` ## Why this case matters The street canyon is the defining urban-dispersion geometry, and daytime (unstable) stratification is the regime where buoyancy most strongly reshapes the in-canyon vortex and the pollutant it traps. This case is the first stratified-ABL dispersion validation in the suite: it couples the buoyant temperature field to the flow (Boussinesq), drives the ground wall model with a Monin-Obukhov stability correction, and releases a passive tracer from a ground line source, all at once. It is the integration test for the v2.0 stratified-ABL stack. The reference is the large-eddy simulation and wind-tunnel campaign of {footcite:t}`jiang2018large`, a 3-D urban street-canyon array under weakly unstable thermal stratification, backed by the Tokyo Polytechnic University (TPU) stratified wind tunnel and the earlier data of Uehara et al. ## Physical description A regular array of cubic building blocks (side $H$, gap $H$, canyon aspect ratio $W / H = 1$) sits under a weakly unstable atmospheric boundary layer approaching perpendicular to the canyon axis. The unstable stratification (gradient Richardson number $\mathrm{Ri} \approx -0.15$ at building height) is set by a hot floor (45 C) beneath cooler air (15 C at roof height), a surface excess of $\Delta\Theta = 30$ K. A continuous ground-level line source on the floor of the target canyon releases ethylene, a near-neutral-density tracer treated as a passive scalar. In nassu the buildings are voxelized (velocity no-slip plus scalar wall conditions), the buoyant temperature is an active Boussinesq scalar, and the ground uses the Monin-Obukhov stratified wall model coupled to that temperature scalar. The approach flow is fed by the Synthetic Eddy Method (SEM) with a z-varying mean temperature inlet; see the inflow note below. ## Stratification specification (Jiang's Richardson number) Jiang & Yoshie characterise the stability by the **gradient Richardson number** evaluated at building height, ```{math} \mathrm{Ri} = \frac{(g / \Theta)\, \partial\Theta / \partial z} {(\partial U / \partial z)^2} \approx -0.15, ``` with $\Delta\Theta = \Theta_\mathrm{floor} - \Theta_H = 30$ K. In nassu the buoyancy magnitude is set from a bulk surrogate, $\mathrm{Ri}_b = \beta\, g_\mathrm{lat}\, \Delta\phi\, H_\mathrm{lat} / U_{H,\mathrm{lat}}^2$, with the normalized canyon temperature difference $\Delta\phi = 1$; the converged gradient Richardson number is a P5 diagnostic that the buoyancy is retuned against (Jiang's own definition, not cross-applied from any other case). ## Pollutant source A continuous ground-level **line source** on the floor of the target canyon, spanwise-full, streamwise width 37 mm, releasing ethylene at $q = 8.33 \times 10^{-6}\ \mathrm{m^3/s}$ (500 cc/min). Results are reported as the dimensionless concentration $\langle c \rangle / C_0$ with the reference $C_0 = q / (U_H H^2)$. The tracer is near-neutral-density ethylene, so a passive scalar is defensible. ## Simulation setup Model scale follows the TPU stratified tunnel; lattice values are provisional scaffold choices that P5 will refine. | Parameter | Physical | Lattice (level 0) | | --------------------------------------- | ----------------------------- | -------------------------------------------- | | Building (cube) height $H$ | 60 mm | 24 cells | | Canyon aspect ratio $W / H$ | 1 | 1 | | Reference velocity $U_H$ (roof height) | 1.34 m/s | 0.05 ($\mathrm{Ma} = 0.087$) | | Reynolds number $\mathrm{Re}_H$ | 5400 | 5400 | | Relaxation time $\tau$ | - | 0.5006667 ($\nu = 2.222\times10^{-4}$) | | Gradient Richardson number | $-0.15$ | $\beta g_\mathrm{lat} = 1.5625\times10^{-5}$ | | Surface excess temperature | $\Delta\Theta = 30$ K | $\phi \in [0, 1]$ (normalized) | | Prandtl / Schmidt | $\mathrm{Pr}=\mathrm{Sc}=0.7$ | $D = \nu / 0.7 = 3.175\times10^{-4}$ | | Turbulent $\mathrm{Pr}_t/\mathrm{Sc}_t$ | 0.7 | 0.7 | | Tracer | ethylene (passive) | passive scalar (D3Q7 / RRBGK) | | Source rate $q$ | $8.33\times10^{-6}$ m$^3$/s | line source term (S0 provisional) | | Fluid velocity set / operator | - | D3Q27 / RRBGK | | LES model | Smagorinsky $C_S = 0.12$ | Smagorinsky $C_S = 0.12$ | | Ground wall model | - | IBM EqLog + Monin-Obukhov stability | | Inflow | Kataoka recycling driver | SEM + z-varying mean-T inlet (provisional) | | Refinement | - | static level-2 slab over the canyons | ```{note} **Inflow.** Jiang & Yoshie use a Kataoka recycling driver carrying velocity AND temperature fluctuations. The provisional nassu inflow is the SEM velocity inlet plus a z-varying MEAN temperature inlet (no temperature fluctuation). P5 assesses whether this reproduces the driver profiles (their Fig. 4); a precursor/recycling inflow may be required. ``` ## Validation targets All quantities are plot-only in the paper and must be digitized (see `reference/README.md`). The primary targets for this case: - **Fig. 4** - approach-flow (driver) vertical profiles (`driver_inlet_profile`). - **Fig. 6** - canyon-centre vertical profiles of $U$, $\Theta$ and $\langle c \rangle / C_0$, with the Uehara et al. ($\mathrm{Rb} = -0.19$) comparison (`canyon_centre_profile`). - **Fig. 7** - horizontal concentration field at $z = H/6$ (`planes/horizontal_zH6`). - **Figs. 9-12** - vertical-plane contours of $u$, $T$, $c$ and $u'w'$ through the canyon (`planes/canyon_vertical` + `full_stats`). - **Fig. 13** - resolved fluctuation profiles (`full_stats` 2nd order). - **Figs. 15-16** - pollutant / airflow flux decomposition across the canyon top face (turbulence carries ~75% of the outflow) (`full_stats`). ## Validation ladder and composition matrix This case sits at the **top (application-representative) rung** of the stratified-ABL validation ladder: it exercises the whole stack at once (buoyant Boussinesq scalar + Monin-Obukhov ground wall model + z-varying scalar inlet + voxelized buildings + passive tracer + SEM + LES + 2:1 refinement). The lower rungs it depends on live elsewhere in the suite and must pass first: - **Neutral-limit regression** - `07_stratified_neutral_limit` (feature OFF / inert must recover the neutral path, single-block and multiblock). - **Wall-model differential sign check** - `examples/mo_stability_validation` (neutral / unstable / stable ordering, GPU-validated in #1046). - **Analytical rungs** (buoyant laminar channel with a closed-form profile; MO log-law against the analytical $\psi_m/\psi_h$) - NOT yet in the suite; tracked for P5 (see the matrix gaps below). Composition coverage of *this* case (`X` = exercised here, `reg` = covered by the regression case, `-` = not covered by this case): ``` | single-block | multiblock | +LES | +scalar | +IBM | 2D neutral-limit regression | reg | reg | reg | reg | - | - this case (05, app-rep) | - | X | X | X | X | - ``` Known gaps this case does **not** close, to be filled at P5 (epic #1034, #1039): a single-block feature-alone case (the feature's own correctness is never isolated here - every composition axis is stacked simultaneously, so a failure cannot be attributed to buoyancy vs MO wall model vs refinement vs scalar coupling), an analytical rung with an exact answer, and a 2D (D2Q9) variant. Because the committed config is full-resolution (level-2 slab) and the level-1 smoke did not exercise the level-2 interface, the multiblock cell above is only claimed at the committed resolution once the full-resolution GPU run lands. ## Reference and acceptance The reference is the LES + TPU stratified-wind-tunnel study of {footcite:t}`jiang2018large` (with the Uehara et al. tunnel data as a secondary comparison). There is no field data. Acceptance criteria, stated up front (finalised with `nassu-theory` at P5 only where a paper-specific band is needed): - **Dispersion fields** (Figs. 6, 7, 15-16): CWE quality bands per COST Action 732 / VDI 3783 Part 9 on $\langle c\rangle / C_0$ - $\mathrm{FAC2} \geq 0.5$, $\mathrm{NMSE} < 4$, hit rate $q \geq 0.66$. - **Flow and stratification profiles** (Figs. 4, 6): canyon-centre $U(z)$ and $\Theta(z)$ within $\pm 20\%$ of the digitized Jiang & Yoshie / Uehara curves over the canyon depth, curve by curve. - **Roof-level flux decomposition** (Figs. 15-16): the turbulent fraction $Q_t / (Q_a + Q_t)$ of the canyon-top pollutant outflow reproduced to within $\pm 0.1$ (the paper reports turbulence carrying ~75%). - **Interface continuity (multiblock)**: the mean temperature and buoyancy field must be continuous across the level-2 refinement interface (no per-block sawtooth) to the solver-noise floor - the standing guard against a buoyancy force omitted from border reconstruction or level-transfer rescale. - Because the GPU solver is not bit-reproducible run to run (atomicAdd ordering, ~1e-6 float32), all criteria are evaluated on **time-averaged statistics**, not instantaneous fields. ## Results ```{note} The integrated stack has been proven to run to completion on GPU and stay finite (a short smoke), but no quantitative results are claimed yet. The comparison notebook (canyon profiles, concentration fields and the flux decomposition against the digitized Jiang & Yoshie / Uehara data) is populated once the digitized reference data and a statistically-converged full-resolution run exist (epic #1034 P5, #1039). ``` ```{toctree} --- hidden: --- 05_stratified_street_canyon.ipynb ``` ```{footbibliography} ```