Skip to content

Commit a7331ea

Browse files
committed
Add multirate to the docs
1 parent e4ffd0d commit a7331ea

2 files changed

Lines changed: 32 additions & 0 deletions

File tree

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@
1414
- [Unique Features](#unique-features)
1515
- [Automatic Model Coupling](#automatic-model-coupling)
1616
- [Flexibility with Precision Control](#flexibility-with-precision-control)
17+
- [Multi-rate Execution](#multi-rate-execution)
1718
- [Batteries included](#batteries-included)
1819
- [Ask Questions](#ask-questions)
1920
- [Installation](#installation)
2021
- [Example usage](#example-usage)
2122
- [Simple example](#simple-example)
2223
- [Model coupling](#model-coupling)
2324
- [Multiscale modelling](#multiscale-modelling)
25+
- [Multi-rate modelling](#multi-rate-modelling)
2426
- [Projects that use PlantSimEngine](#projects-that-use-plantsimengine)
2527
- [Performance](#performance)
2628
- [Make it yours](#make-it-yours)
@@ -48,11 +50,18 @@
4850

4951
**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.
5052

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+
5159
## Batteries included
5260

5361
- **Automated Management**: Seamlessly handle inputs, outputs, time-steps, objects, and dependency resolution.
5462
- **Iterative Development**: Fast and interactive prototyping of models with built-in constraints to avoid errors and sensible defaults to streamline the model writing process.
5563
- **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.
5665
- **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)).
5766
- **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/).
5867
- **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
337346

338347
![Plant growth simulation](docs/src/www/image.png)
339348

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+
340357
## Projects that use PlantSimEngine
341358

342359
Take a look at these projects that use PlantSimEngine:

docs/src/index.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,18 @@ Depth = 5
6666

6767
**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.
6868

69+
### Multi-rate Execution
70+
71+
**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.
72+
73+
**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.
74+
6975
## Batteries included
7076

7177
- **Automated Management**: Seamlessly handle inputs, outputs, time-steps, objects, and dependency resolution.
7278
- **Iterative Development**: Fast and interactive prototyping of models with built-in constraints to avoid errors and sensible defaults to streamline the model writing process.
7379
- **Control Your Degrees of Freedom**: Fix variables to constant values or force to observations, use simpler models for specific processes to reduce complexity.
80+
- **Multi-Rate Scheduling**: Combine hourly, daily, and coarser models in the same simulation, with explicit policies for input aggregation and meteorological sampling.
7481
- **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)).
7582
- **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/).
7683
- **Scale Effortlessly**: Methods for computing over objects, time-steps, and [Multi-Scale Tree Graphs](https://github.com/VEZY/MultiScaleTreeGraph.jl).
@@ -307,6 +314,14 @@ An example output of a multiscale simulation is shown in the documentation of Pl
307314

308315
![Plant growth simulation](www/image.png)
309316

317+
### Multi-rate modeling
318+
319+
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.
320+
321+
The dedicated tutorial covers the main pieces of the API, including `TimeStepModel`, `InputBindings`, `MeteoBindings`, `ScopeModel`, and `OutputRequest`:
322+
323+
- [Hourly, daily, weekly simulation](./multirate/multirate_tutorial.md)
324+
310325
## State of the field
311326

312327
PlantSimEngine is a state-of-the-art plant simulation software that offers significant advantages over existing tools such as OpenAlea, STICS, APSIM, or DSSAT.

0 commit comments

Comments
 (0)