sys-bio / tellurium

Python Environment for Modeling and Simulating Biological Systems
http://tellurium.analogmachine.org/
Apache License 2.0
109 stars 36 forks source link

Map additional parameters of NLEQ2 to KiSAO terms #538

Closed jonrkarr closed 3 years ago

jonrkarr commented 3 years ago

KiSAO terms likely need to be created for most, if not all, of these parameters.

luciansmith commented 3 years ago

Done! I will note that the first seven options Roadrunner considers to be generic steady state solver options, and the last two as NLEQ options, but either NLEQ1 or NLEQ2.

Would it be helpful to add the other roadrunner options to KiSAO as well? For NLEQ, we have:

    addSetting("relative_tolerance", Setting(1e-12), "Relative Tolerance", "Specifies the relative tolerance (double).",
               "(double) Relative tolerance used by the solver");

    addSetting("maximum_iterations", Setting(100), "Maximum Iterations",
               "The maximum number of iterations the solver is allowed to use (int)",
               "(int) Iteration caps off at the maximum, regardless of whether a solution has been reached");

    addSetting("minimum_damping", Setting(1e-20), "Minimum Damping", "The minimum damping factor (double).",
               "(double) Minumum damping factor used by the algorithm");

And for steady state in general, we also have:

    addSetting("presimulation_times", Setting(std::vector<double>({0.1, 1, 10, 100, 1e3, 1e4})),
               "Presimulation Times",
               "Vector of successive time points to try presimulation prior to solving for steady state (std::vector<double>).",
               "(double) Similar to presimulation_time, but tries multiple time points before failing");
jonrkarr commented 3 years ago

For some studies, those values could be important. For those options to be exposed through SED-ML, they would need to be mapped to KiSAO terms.