Changelog¶
Notable changes to uDALES, newest first. This project uses semantic versioning; released versions are also tagged on GitHub.
Entries under Unreleased are on master but not yet in a tagged release.
Changes that alter the meaning, sign, units or location of an output variable,
or that remove or disable a feature, are listed under Breaking changes so
that they are easy to find when upgrading.
Unreleased¶
Breaking changes¶
- SGS flux sign convention. All subgrid-scale fluxes in the statistics
output (
usgs*,vsgs*,wsgs*,thlsgs*,qtsgs*,sv1sgs–sv4sgs,sca1sgs*–sca3sgs*) were previously stored as+K dphi/dn, i.e. minus the physical flux, and were therefore opposite in sign to the resolved fluxes written into the same files with the same units. They are now stored as the flux itself,-K dphi/dn. Any post-processing that compensated for the old convention — by negating the SGS term, or by subtracting rather than adding it when forming a total flux — must be updated. See Output files for the explicit definitions. wsgsis now a stress, not a tendency.wsgs(andwsgsytinytdump) previously held the vertical part of thew-diffusion tendency, inm/s^2, stored at the w-level. It now holds the normal stresstau_33 = -2 K_m dw/dzinm^2/s^2, stored at the cell centre. The NetCDF grid code changed fromt0mttot0ttaccordingly, so the variable's vertical coordinate changed fromzmtozt.ltkedumpis disabled. The TKE-budget path never accumulated its budget terms, sotkedump.<expnr>.ncwas written full of zeros. Settingltkedump = .true.now aborts the run with an explanatory error rather than producing a plausible-looking but meaningless file. Repairing the path is tracked in issue #352.- Masked bottom level in SGS profiles. The w-located xy-averaged profiles
(
wxy*,usgsxy*,vsgsxy*,thlsgsxy*) now report-999.at the bottom levelkbin IBM runs, consistent with every other fully masked level. Previously that level held an unmasked sum over solid points divided by the fluid-point count at the top of the domain. - Units and metadata corrections in the statistics NetCDF headers:
vsgsxytandvpwpxyare nowm^2/s^2(wereK m/s/Km/s);sv1sgs–sv4sgsare nowg/m^2 s(weregm/s);wqtytis nowkg/kg m/sandwsca1yt–wsca3ytare nowkg/m^2 s(all wereK m/s). Placeholderlong_namestrings in the TKE-budget header were replaced with the actual term names.
Fixed¶
- The SGS statistics no longer read uninitialised data at the top level
ke+kh, and all SGS output arrays are zeroed before use. - The 3-D
sv1sgs–sv4sgsoutput intdumpis now masked withIIw, so solid and wall-adjacent faces report-999.instead of an interior-formula value the solver never applied. upwpxy,vpwpxyandwpthlpxyreport-999.at masked levels instead of the product of two sentinels (-999000).- Several latent bugs inside the (disabled) TKE-budget path were repaired so
that it is correct if revived: the mean rate-of-strain was a scalar reused
across the whole domain, the vertical SGS transport term paired the
w-based fluxes with the meanv, a shear-production term was double-counted, and a four-point average varied the wrong index.
Added¶
docs/udales-output-files.mdnow documents the SGS flux definitions, their sign convention, and the fact that the SGS statistics carry no surface or wall-model contribution, so the total-stress profile does not close at the wall (issue #353).- New experimental test suite
tests/integration/sgs_statistics(runmode1006) validating the SGS fluxes against a manufactured solution on a stretched vertical grid, against the solver's own diffusion tendencies, and against the sign convention, on a new fixturetests/cases/300.