14 # ifndef RR_INTEGRATOR_H_
15 # define RR_INTEGRATOR_H_
18 #include "rrOSSpecifics.h"
19 #include "Dictionary.h"
20 #include "rrException.h"
23 #include "tr1proxy/rr_memory.h"
24 #include "tr1proxy/rr_unordered_map.h"
25 #include "Registrable.h"
26 #include "RegistrationFactory.h"
33 class ExecutableModel;
54 typedef cxx11_ns::shared_ptr<IntegratorListener> IntegratorListenerPtr;
70 using Solver::setValue;
72 enum IntegrationMethod {
85 virtual IntegrationMethod getIntegrationMethod()
const = 0;
94 virtual void loadConfigSettings();
96 virtual void loadSBMLSettings(
const std::string &filename);
98 virtual double integrate(
double t0,
double hstep) = 0;
100 virtual void restart(
double t0) = 0;
110 virtual void tweakTolerances();
116 virtual void setIndividualTolerance(std::string sid,
double value);
124 virtual std::vector<double> getAbsoluteToleranceVector();
128 virtual void setListener(IntegratorListenerPtr) = 0;
130 virtual IntegratorListenerPtr getListener() = 0;
132 std::string toString()
const;
138 virtual std::string toRepr()
const;
141 void setIntegrationStartTime(
double time);
144 double mIntegrationStartTime;
154 std::runtime_error(what) {
158 std::runtime_error(what +
"; In " + where) {
Contains the base class for RoadRunner solvers.
Base class for all code generation systems; allows compiling and evaluating the model.
Definition: rrExecutableModel.h:118
The exception class thrown by the Integrator.
Definition: Integrator.h:151
IntegratorListener listens for integrator events.
Definition: Integrator.h:38
virtual uint onEvent(Integrator *integrator, ExecutableModel *model, double time)=0
whenever model event occurs and after it is procesed.
virtual uint onTimeStep(Integrator *integrator, ExecutableModel *model, double time)=0
is called after the internal integrator completes each internal time step.
Integrator is an abstract base class that provides an interface to specific integrator class implemen...
Definition: Integrator.h:60
Base class for all integrators and steady state solvers.
Definition: Solver.h:39