PlantSimEngine v0.12.0
Release notes:
Breaking changes
Most of the main features are breaking changes. You can update by simply updating function names and kwargs as mentioned in these release notes, or read the new documentation.
Expect an upcoming release of downstream packages PlantBiophysics and XPalm to update to the API changes.
Main features
- Added a means of filtering outputs in ModelList mode, to align with multi-scale simulations, via a tracked_outputs keyword argument, changing the simulation output structure
- Major documentation overhaul, with several more pages, extended examples/tutorials, a multi-scale toy plant example with PlantGeom 3D visualization, additional explanations on subtler aspects of simulations, specific pages explaining how to work with data or troubleshoot issues...
API changes
- Removed Multi-object parallelisation, to be potentially reintroduced later
- Renamed the outputs kwarg to
tracked_outputsin multi-scale mode - Handle corner cases where user-requested outputs were empty in multi-scale mode, or missing weather data
- Renamed some of the
outputsfunctions toconvert_outputs, for clarity - Changed
mappingkwarg tomapped_variablesfor MultiScaleModel objects - The
run!function returns the output data instead of the wholeGraphSimulationin multi-scale mode - Some
run!function default behaviours are changed to be made consistent between single- and multi-scale. - A couple of warnings may have changed.
CI-related changes
- Added benchmarks and performance-related tests, as well as a Github Action tracking changes over time. More work needed.
- Added a test to validate output filtering changes, that combines a meteo, a modellist and a list of outputs and runs it in ModelList mode, then converts to multiscale and compares results
- Added a naive test that tries different meteo/modellist-mapping/outputs combos and expects either a successful run! or a dimensional mismatch
Fixed issues
Generated release notes:
What's Changed
- Adding benchmarks and extra sanity checks (memory allocations, type stability, ...) by @Samuel-amap in #115
- Remove multi-object parallelisation by @Samuel-amap in #127
- Benchmark tracking via Github action by @Samuel-amap in #129
- Outputs filtering by @Samuel-amap in #128
Full Changelog: v0.11.3...v0.12.0