Shane Blackett wrote:
> Hi,
>
>   
...

> Hopefully your maximum step size and your tabulation step size are much 
> larger than the step size sometimes used by the adaptive integrator. 
> Here forcing results to come back at a fixed spacing forces you not to 
> capture this signal properly in your graphs.  This seems really 
> unfortunate, you may have correctly integrated a complicated action 
> potential and then you draw a graph which completely misses it!  This 
> seems really bad.  Isn't it much better is to concentrate your line 
> segments in your graph in exactly the same places where the adaptive 
> step size system found your solution to be complicated?
>   
I have been looking into alternative approaches for choosing which 
points to send, taking the general idea behind Shane's suggestion (since 
providing the integrator is the point behind the first release, this is 
essential). When we find a good method, it would be useful to put that 
into some other type of metadata specification (probably not the 
simulation metadata) so that similar results can be reproduced.

Shane suggested earlier that we could take every nth point (for some 
user specified n) from the points chosen by the adaptive step size 
algorithm. While this would presumably work to some extent, it is not 
clear (to the user) a priori how many points they will get, or what 
value of n they should choose to get a reasonable looking graph.

Instead, I have instead tried to use a "maximum density" control on the 
number of points. The maximum density is defined as the highest 
acceptable point density along any stretch of the bound variable 
containing two or more points. The density is defined as a number of 
points / run. This means that the density specified provides an upper 
bound on the number of points which will ever be reported to the user, 
making this control intuitive to work with. This also means that we can 
provide a default value which will be sensible for getting a quick view 
of the shape of the graphs for most models.

In order to use the maximum density with a single bound variable, I take 
minDistance = (max - min) / density, and then doesn't report any point 
at bound value < minDistance from the previously reported bound variable 
value.

This seems to produce a reasonable graphical results on both line and 
dot graphs (even on a model with both sharp curves and relatively linear 
regions), for both variable vs bound variable and variable vs variable 
type graphs.

I also noticed that we do not have any way to specify error control 
parameters. I guess that this is genuinely simulation metadata, although 
unfortunately it is somewhat dependent on the error control method 
chosen. Are there any objections to leaving this out of the metadata 
used for the first release of PCEnv? (it currently only extracts the 
bound variable starting and ending time points). The CIS supports a 
maximum step size, although it isn't on the UI now (the flow is 
currently metadata => UI => CIS, although I could add hidden state to 
pass through the UI if it was useful).

Best regards,
Andrew

_______________________________________________
cellml-discussion mailing list
[email protected]
http://www.cellml.org/mailman/listinfo/cellml-discussion

Reply via email to