|
14 | 14 | - [Unique Features](#unique-features) |
15 | 15 | - [Automatic Model Coupling](#automatic-model-coupling) |
16 | 16 | - [Flexibility with Precision Control](#flexibility-with-precision-control) |
| 17 | + - [Multi-rate Execution](#multi-rate-execution) |
17 | 18 | - [Batteries included](#batteries-included) |
18 | 19 | - [Ask Questions](#ask-questions) |
19 | 20 | - [Installation](#installation) |
20 | 21 | - [Example usage](#example-usage) |
21 | 22 | - [Simple example](#simple-example) |
22 | 23 | - [Model coupling](#model-coupling) |
23 | 24 | - [Multiscale modelling](#multiscale-modelling) |
| 25 | + - [Multi-rate modelling](#multi-rate-modelling) |
24 | 26 | - [Projects that use PlantSimEngine](#projects-that-use-plantsimengine) |
25 | 27 | - [Performance](#performance) |
26 | 28 | - [Make it yours](#make-it-yours) |
|
48 | 50 |
|
49 | 51 | **Effortless Model Switching:** Researchers can switch between different component models using a simple syntax without rewriting the underlying model code. This enables rapid comparison between different hypotheses and model versions, accelerating the scientific discovery process. |
50 | 52 |
|
| 53 | +### Multi-rate Execution |
| 54 | + |
| 55 | +**Mix model cadences in one simulation:** PlantSimEngine can run models at different timesteps within the same MTG simulation. This makes it possible to combine, for example, hourly leaf processes with daily plant balances and weekly reporting models without writing custom scheduling glue. |
| 56 | + |
| 57 | +**Explicit bindings between rates:** `TimeStepModel`, `InputBindings`, `MeteoBindings`, `ScopeModel`, and `OutputRequest` let you declare how model inputs, meteorology, and exported outputs should behave when rates differ. |
| 58 | + |
51 | 59 | ## Batteries included |
52 | 60 |
|
53 | 61 | - **Automated Management**: Seamlessly handle inputs, outputs, time-steps, objects, and dependency resolution. |
54 | 62 | - **Iterative Development**: Fast and interactive prototyping of models with built-in constraints to avoid errors and sensible defaults to streamline the model writing process. |
55 | 63 | - **Control Your Degrees of Freedom**: Fix variables to constant values or force to observations, use simpler models for specific processes to reduce complexity. |
| 64 | +- **Multi-Rate Scheduling**: Combine hourly, daily, and coarser models in the same simulation, with explicit policies for input aggregation and meteorological sampling. |
56 | 65 | - **High-Speed Computations**: Achieve impressive performance with benchmarks showing operations in the 100th of nanoseconds range for complex models (see this [benchmark script](https://github.com/VirtualPlantLab/PlantSimEngine.jl/blob/main/examples/benchmark.jl)). |
57 | 66 | - **Parallelize and Distribute Computing**: Out-of-the-box support for sequential, multi-threaded, or distributed computations over objects, time-steps, and independent processes, thanks to [Floops.jl](https://juliafolds.github.io/FLoops.jl/stable/). |
58 | 67 | - **Scale Effortlessly**: Methods for computing over objects, time-steps, and [Multi-Scale Tree Graphs](https://github.com/VEZY/MultiScaleTreeGraph.jl). |
@@ -337,6 +346,14 @@ An example output of a multiscale simulation is shown in the documentation of Pl |
337 | 346 |
|
338 | 347 |  |
339 | 348 |
|
| 349 | +### Multi-rate modelling |
| 350 | + |
| 351 | +PlantSimEngine also supports multi-rate MTG simulations, where different models run at different cadences inside the same execution. A typical use case is to run leaf-scale processes hourly, aggregate them into daily plant-scale balances, and then export weekly summary series from the same simulation. |
| 352 | + |
| 353 | +The dedicated tutorial covers the main pieces of the API, including `TimeStepModel`, `InputBindings`, `MeteoBindings`, `ScopeModel`, and `OutputRequest`: |
| 354 | + |
| 355 | +- [Multi-rate tutorial](https://VirtualPlantLab.github.io/PlantSimEngine.jl/stable/multirate/multirate_tutorial/) |
| 356 | + |
340 | 357 | ## Projects that use PlantSimEngine |
341 | 358 |
|
342 | 359 | Take a look at these projects that use PlantSimEngine: |
|
0 commit comments