agate-model / Agate.jl

A Julia library to build flexible and composable aquatic ecosystems.
MIT License
3 stars 0 forks source link

Add dynamic parsing checks #7

Open nanophyto opened 1 month ago

nanophyto commented 1 month ago

Add checks to make sure functions defined in YAML are found in the library, and all parameter values are provided.

radka-j commented 1 week ago

Both goals should be possible since we are defining tracers as expressions, e.g.:

tracer =  :(α*x - β*x*y)

This means we can use tracer.args which returns the function name and the asscociated parameters. The functions are either going to be in the base library (e.g., +) or in Agate (e.g., phytoplankton_metabolic_loss). Of course the expressions are nested (functions composed of functions) so there's some unpacking to do.