x3042 / ExactODEReduction.jl

Exact reduction of ODE models via linear transformations
MIT License
13 stars 3 forks source link

The way we handle parameters #22

Closed sumiya11 closed 1 year ago

sumiya11 commented 1 year ago

I propose we discuss the way we treat parameters in ODEs here, so that it doesn't get lost 🐡

The algorithm does not distinguish parameters from state variables. Though a polynomial ring variable can be marked as a parameter in the ODE, we implicitly assign a zero derivative to it.

The result of the algorithm is again an ODE system, which, at the moment, has no parameters. The proposition is do declare some of the state variables of the new ODE as parameters according to some strategy. Two already discussed strategies are: everything constant is a parameter; a combination of parameters is a parameter.

From the users perspective , the difference is that zero equations for parameters are not printed, as in:

@ODEsystem(
     x'(t) = a*x + 1
 )
[ Info: Summary of the model:
[ Info: State variables: x
[ Info: Parameters: a
x'(t) = x(t)*a(t) + 1

Additionaly, there is a consensus that we want a seamless transition between our ODE and MTK ODESystem, if possible. Currently, conversion works via ODEtoMTK and MTKtoODE, it transforms state variables into state variables and parameters into parameters.

cc @pogudingleb

pogudingleb commented 1 year ago

I will try to work out a case with MTK to have a more informed opinion.

Two thought so far:

sumiya11 commented 1 year ago

a parameter should not be printed with (t)

Good point

sumiya11 commented 1 year ago

@pogudingleb any objections to closing this ?

pogudingleb commented 1 year ago

Nope