Currently, performing sensitivity analysis on Decapodes simulations requires edits to generated simulation code.
We should use the SciMLStructure.jl interface.
We cannot use the MTKParameters struct which already supports the interface without adding generated code that does manual buffer management.
So, this PR adds support for passing parameters as the NamedTuples that we normally use, wrapping values to mark them as "tunable" or "constant".
If the overhead of making NamedTuples is found to be too high, then we can switch to manually managing our buffers.
Relatedly, it is probably more performant to define a struct that silos Tunables into their own field, Constants into their own field, and so on.
Currently, performing sensitivity analysis on Decapodes simulations requires edits to generated simulation code. We should use the SciMLStructure.jl interface.
We cannot use the
MTKParameters
struct which already supports the interface without adding generated code that does manual buffer management.So, this PR adds support for passing parameters as the
NamedTuple
s that we normally use, wrapping values to mark them as "tunable" or "constant".If the overhead of making
NamedTuple
s is found to be too high, then we can switch to manually managing our buffers.Relatedly, it is probably more performant to define a
struct
that silosTunables
into their own field,Constants
into their own field, and so on.