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
