You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support declarative addition and removal of axes in the system specification, so users can straightforwardly extend a model with new trait, spatial, or structured dimensions.
Motivation
A TRIDENT-like model starts with trait axes (phytoplankton size θ, zooplankton size ϑ) and a spatial axis (depth z). A user should be able to:
Add a new trait axis (e.g. light-harvesting pigment ratio) with one YAML block
The compiler should automatically:
Extend the state tensor dimensions
Wire diffusion operators for the new axis
Adjust reaction terms that depend on the new trait
Validate that rate functions have the right arity
Tasks
Axis type hierarchy: TraitAxis, SpatialAxis, StructuredAxis (age, stage, etc.)
ACCIDDA/op_system: Python equivalent should get a parallel issue
Boundary
This is specification — how axes are declared and validated. The grid points (uniform or adaptive) are computed by OpEngine.jl. The evaluation of whether adding an axis improves predictions is ModelCriticism.jl.
Support declarative addition and removal of axes in the system specification, so users can straightforwardly extend a model with new trait, spatial, or structured dimensions.
Motivation
A TRIDENT-like model starts with trait axes (phytoplankton size θ, zooplankton size ϑ) and a spatial axis (depth z). A user should be able to:
Tasks
Axistype hierarchy:TraitAxis,SpatialAxis,StructuredAxis(age, stage, etc.)add_axis!(spec, axis)— extend a compiled SystemSpec with a new dimensionremove_axis!(spec, name)— project out a dimension (integrate or marginalise)Cross-references
Boundary
This is specification — how axes are declared and validated. The grid points (uniform or adaptive) are computed by OpEngine.jl. The evaluation of whether adding an axis improves predictions is ModelCriticism.jl.