Version 2026.4.3 (released on 3 April 2026)

Tip

  1. Need help? Please let us know in the SUEWS Community.

  2. Please report issues with the manual on GitHub Issues (or use Report Issue for This Page for page-specific feedback).

  3. Please cite SUEWS with proper information from our Zenodo page.

11.1. Version 2026.4.3 (released on 3 April 2026)#

This release delivers a major backend migration to Rust FFI, RSL physics refinements, a new temperature attribution module, DTS enhancements, seasonal albedo adjustments, comprehensive validation improvements, and extensive bug fixes.

Major Features:

  • Rust FFI Bridge: Replaced f90wrap with a Rust FFI bridge as the sole simulation backend, improving build reliability and cross-platform support. (#1209)

  • Rust CLI Installation: Unified CLI interface with automatic PATH installation for the Rust-based suews-run command. (#1215)

  • T2 Attribution Module: Added module for diagnosing near-surface temperature, humidity, and wind speed changes by decomposing model output into physical process contributions, with diurnal cycle and heatmap visualisation helpers. (#918)

  • Dynamic RSL Coefficients: Compute momentum and heat transfer coefficients (c2m/c2h) dynamically from Harman and Finnigan (2007, 2008) RSL theory, replacing previous static lookup. (#1116)

  • Refined RSL Parameterisation: Explicit R = beta * hd / elm parameterisation for c2m/c2h with improved numerical stability. (#1232)

  • Seasonal Albedo Adjustment: Added seasonal adjustment of surface albedo (alb_id) for vegetated surfaces based on phenology state. (#1211)

  • Auto-initialise Vegetation Albedo: Vegetation albedo now auto-initialises from phenology state. (#1133)

  • STEBBS Profiles: Added support for Heating setpoints, Cooling setpoints, Appliance, Occupants, and Hot Water 10-minute profiles in STEBBS. (#1038)

  • Albedo Validation: Added same_albedo_wall and same_albedo_roof model options for roof and wall albedo consistency validation. (#1123)

DTS Enhancements:

  • Added chunk_day parameter for long DTS simulations. (#1172)

  • Added run_dts_multi for multi-grid DTS simulation support. (#1173)

Validation Improvements:

  • Added draft rules registry for structured validator rule management. (#1246)

  • Added conditional validation via _is_physics_explicitly_configured using Pydantic v2 model_fields_set. (#1247)

  • Added upper limit to nlayer to prevent run crashes. (#1206)

  • Added SUEWSOutput index property. (#1178)

  • Improved error message for timezone and startdls/enddls. (#1174)

  • Fixed optional qn_surfs and dqndt_surf but required in DyOHM settings. (#1189)

  • Fixed biogenic parameters not required when carbon is switched off. (#1188)

  • Improved error message in validate_albedo_ranges. (#1193)

Bug Fixes:

  • Fixed interpolation bounds error in RSL profiles. (#1228)

  • Fixed division-by-zero pitfalls in RSL/resistance chain. (#1229)

  • Guarded SPARTACUS LW solver against NaN from matrix singularity. (#1212)

  • Fixed SUEWS output packing overflow with fail-fast behaviour. (#1198)

  • Fixed Pydantic dict format handling in YAML numeric parser. (#1236)

  • Validated Rust output layout against Fortran metadata. (#1226)

  • Pinned pydantic>=2.12 to prevent OSGeo4W version conflict. (#1213)

  • Fixed STEBBS WWR extreme cases (WWR = 0 or WWR = 1). (#1261)

  • Fixed biogenic CO2 to use local climate instead of global average temperature. (#1117)

  • Fixed missing STEBBS parameters in sample_config.yml. (#1111)

  • Retained DatetimeIndex.freq after concat in forcing data loading. (#1105)

  • Extended nullification logic in validator for stebbsmethod==0. (#1115)

  • Serialised Pydantic models across multiprocessing spawn boundaries for DTS. (#1197)

  • Hardened parallel multi-grid DTS execution and unified return shape. (#1176)

  • Corrected DTS availability check and removed unsupported parameter. (#1187)

  • Auto-repair stale refs in fetch_origin conductor. (#1239)

  • Deduplicated Discourse-to-GitHub issue pipeline. (#1153)

  • Fixed Sphinx and docs dependencies for Sphinx 8 compatibility. (#1159)

  • Fixed missing import in orchestrator.py validator. (#1094)

  • Fixed error message in pressure range check. (#1090)

  • Fixed macOS UMEP wheel build by replacing sed with Python. (#1128)

Build System and CI:

  • Hardened CI and dependency supply chain after LiteLLM incident with startup hook auditing. (#1264)

  • Added Rust change detection and Cargo build caching across all platforms. (#1217, #1219)

  • Gated tag-triggered deployments on master ancestry. (#1162)

  • Pre-built documentation on CI, served from rtd branch. (#1167)

  • Deprecated env.yml and conda/mamba build pathway. (#1163)

  • UMEP build filter for compiled extension ABI changes. (#1164)

  • Granular path filters and pyproject classification. (#1161)

  • Added GitHub workflow skills and pre-commit quality gate. (#1160)

  • Cleaned up Sphinx deps for Sphinx 8 compatibility. (#1157)

Other Improvements:

  • Bridge Discourse forum topics to GitHub issues with webhook sync. (#1138)

  • Added status tags for changelog entries (governance). (#1181)

  • Removed internal-only parameters from sample_config.yml. (#1216)

  • Cleaned up STEBBS outputs. (#1175)

  • Refactored land cover fraction check to use Phase B as single authority. (#1099)

Documentation:

  • Revised README as science-first landing page. (#1265)

  • Improved project branding with logo and favicon. (#1260)

  • Added anthropogenic emission defaults and parameter guidance. (#1231)

  • Linked community forum URLs to invite page. (#1201)

  • Added user workflow guide for getting started with SUEWS. (#1014)

  • Added executable documentation examples using sphinx-gallery. (#1057)

  • Specified precision requirements for pressure input. (#1107)

Breaking Changes:

  • f90wrap is no longer supported; the Rust FFI bridge is the sole simulation backend. (#1209)

  • Deprecated env.yml and conda/mamba build pathway. (#1163)

For complete details, see the CHANGELOG.