PlantSimEngine: A Simulation Engine For The Soil-Plant-Atmosphere System
Résumé
PlantSimEngine provides a high-level interface for model generation for the simulation and modelling of plants, soil and atmosphere, with a focus on ease of use and computational efficiency. It is designed to help researchers and practitioners prototype, implement and evaluate plant or crop models at any scale, without the hassle of technical computer science details. The package defines a framework for declaring processes and implementing associated models for their simulation, with key features including but not limited to:
Easy definition of new processes, such as light interception, photosynthesis, growth, soil
water transfer, etc…
• Fast, interactive prototyping of models, with constraints to help users avoid errors, but
sensible defaults to avoid over-complicating the model writing process
• Automatically manage input and output variables, time-steps, objects, coupling of models
with a dependency graph
• Switch between models without changing any code, with a simple syntax to define the
model to use for a given process
• Reduce the degrees of freedom by fixing variables, passing measurements, or using a
simpler model for a given process
• Fast computation, with 100th of nanoseconds for one model, two coupled models (see
this benchmark script), or the full energy balance of a leaf using PlantBiophysics.jl (Vezy
& Treillou, 2023), a package that uses PlantSimEngine
• Out of the box sequential, parallel (multi-threaded) or distributed (multi-process) computations
over objects, time-steps and independent processes (thanks to Floops.jl)
• Easily scalable, with methods for computing over objects, time-steps and even Multi-Scale
Tree Graphs (Vezy, 2023)
• Composable, allowing the use of any types as inputs such as Unitful to propagate units,
or MonteCarloMeasurements.jl (Carlson, 2020) to propagate measurement error
Origine | Fichiers produits par l'(les) auteur(s) |
---|---|
Licence |