yMMSL Example Model Documentation
Example yMMSL file containing a model
Note that many of these are optional, but they’re all used here to show what the format is capable of.
Model file: example_model.ymmsl
yMMSL version: v0.2
Models
Macro Micro Model
A basic macro-micro (time-scale separation) reaction-diffusion model
This model has two submodels, named macro and micro, that simulate the slow and fast dynamics respectively.
Conduits
macro.state_out: micro.init_in
micro.final_out: macro.update_in
Macro
The macro (slow) model calls the micro model at each timestep
Ports
state_out: 1D array of float Outputs the state at every time step
update_in: 1D array of float Receives a state update at every time step
Operator |
Port Name |
|---|---|
O_I |
state_out |
S |
update_in |
Implementation: macro_model_program
Micro
The micro (fast) (sub)model runs repeatedly
Ports
init_in: 1D array of float Receives the system state on every run
final_out: 1D array of float Outputs a state update on every run
Operator |
Port Name |
|---|---|
F_INIT |
init_in |
O_F |
final_out |
Implementation: micro_model_program
Multiplicity: [5]
Supported Settings
Parameter |
Type |
Description |
|---|---|---|
domain_grain |
float |
Spatial distance between grid cells (m) |
domain_extent |
float |
Size of the domain (m) |
timestep |
float |
Step to take while integrating time (s) |
total_time |
float |
Total time to simulate for (s) |
k |
float |
Reaction coefficient |
d |
float |
Diffusion coefficient |
For more information about the types: yMMSL documentation.