Hi Lucian (and Matthias), thanks for organising a SED-ML session.
Indeed, in OpenCOR, we can set the equivalent of a uniform time course simulation using something like:
-
Starting point = 0 (i.e.
initialTime and
outputStartTime are set to
0);
-
Ending point = 1000 (i.e.
outputEndTime is set to
1000); and
-
Point interval = 1 (i.e.
numberOfSteps is set to
1000).
(In CellML, the variable of integration doesn't have to be time,
hence starting point rather than outputStartTime for
instance. Also, OpenCOR doesn't currently have the notion of
initialTime,
hence the same value is used for both initialTime and
outputStartTime.)
By setting that point interval to 1, the user can change the value of the ending point without having to worry about what the value of
numberOfSteps should be. It is similar to an experimental setup where you specify that you want data to be generated at 1 kHz (rather than having your setup somehow generating 1,000 data points no matter how long you are going to run your experiment
for).
So, what about keeping
numberOfSteps (for those who like/prefer to use it) and also having something like
timeInterval?
Right now,
numberOfSteps must be a positive integer, but we could allow it to be equal to zero. Thus, we could have a rule that says that either
numberOfSteps or
timeInterval must be different from zero and that the one which is different from zero is the one that should be used?
One reason I would welcome such a change is that if, in OpenCOR, someone was to set the point interval to 3 then
numberOfSteps would have to be set to
333 (since it currently has to be a positive integer). This means that the next time the SED-ML file is open, OpenCOR would have to use a point interval of 3.003003003. This is the reason OpenCOR currently adds a one-step simulation to account for such
a case. In other words, with a point interval of 3, your SED-ML file would end up having a uniform time course simulation from 0 to 999 with 333 steps followed by a one-step stimulation with a step of 1. Yuck!
Man, so much for a minor thing that I would like to discuss! 🙂
Alan