14 # ifndef rrExecutableModelH
15 # define rrExecutableModelH
19 # include "rrOSSpecifics.h"
20 # include "rrException.h"
21 # include "sbml/SBMLDocument.h"
30 # include "tr1proxy/rr_memory.h"
36 class ExecutableModel;
57 HALT_SIMULATION = (0x1 << 0),
59 virtual uint onTrigger(
ExecutableModel *model,
size_t eventIndex,
const std::string &eventId) = 0;
61 virtual uint onAssignment(
ExecutableModel *model,
size_t eventIndex,
const std::string &eventId) = 0;
76 resultCode(resultCode) {
77 msg =
"EventHandlerException, resultCode: ";
80 case EventListener::HALT_SIMULATION:
81 msg +=
"HALT_SIMULATION";
89 virtual const char *what()
const throw() {
93 uint getResultCode()
const {
133 virtual void setTime(
double _time) = 0;
135 virtual double getTime() = 0;
162 virtual int getFloatingSpeciesIndex(
const std::string &eid) = 0;
164 virtual std::string getFloatingSpeciesId(
size_t index) = 0;
183 virtual int setFloatingSpeciesAmounts(
size_t len,
int const *indx,
184 const double *values) = 0;
186 virtual int getFloatingSpeciesAmountRates(
size_t len,
int const *indx,
190 virtual int getFloatingSpeciesConcentrationRates(
size_t len,
int const *indx,
213 double const *values) = 0;
226 double const *values) = 0;
246 double const *values) = 0;
271 virtual int getBoundarySpeciesIndex(
const std::string &eid) = 0;
273 virtual std::string getBoundarySpeciesId(
size_t index) = 0;
307 double const *values) = 0;
345 virtual int setGlobalParameterValues(
size_t len,
int const *indx,
346 const double *values) = 0;
354 double const *values) = 0;
374 virtual int getNumCompartments() = 0;
376 virtual int getCompartmentIndexForFloatingSpecies(
size_t index) = 0;
378 virtual int getCompartmentIndex(
const std::string &eid) = 0;
380 virtual std::string getCompartmentId(
size_t index) = 0;
393 virtual int setCompartmentVolumes(
size_t len,
int const *indx,
394 const double *values) = 0;
407 double const *values) = 0;
434 virtual void getIds(
int types, std::list<std::string> &ids) = 0;
445 virtual double getValue(
const std::string &
id) = 0;
450 virtual void setValue(
const std::string &
id,
double value) = 0;
477 virtual int getNumConservedMoieties() = 0;
479 virtual int getConservedMoietyIndex(
const std::string &eid) = 0;
481 virtual std::string getConservedMoietyId(
size_t index) = 0;
483 virtual int getConservedMoietyValues(
size_t len,
int const *indx,
double *values) = 0;
485 virtual int setConservedMoietyValues(
size_t len,
int const *indx,
486 const double *values) = 0;
488 virtual int getNumRateRules() = 0;
587 virtual void testConstraints() = 0;
589 virtual std::string
getInfo() = 0;
591 virtual void print(std::ostream &stream) = 0;
598 virtual int getNumEvents() = 0;
626 virtual int applyEvents(
double timeEnd,
const unsigned char *previousEventStatus,
627 const double *initialState,
double *finalState) = 0;
643 virtual double getNextPendingEventTime(
bool pop) = 0;
645 virtual int getPendingEventSize() = 0;
647 virtual void resetEvents() = 0;
668 virtual std::string getEventId(
size_t index) = 0;
670 virtual void getEventIds(std::list<std::string>&) = 0;
672 virtual void setEventListener(
size_t index,
EventListenerPtr eventHandler) = 0;
690 const double *reactionRates) = 0;
696 virtual void reset(
int options) = 0;
734 INTEGRATION = (0x1 << 0),
739 OPTIMIZE_REACTION_RATE_SELECTION = (0x1 << 1),
751 virtual void saveState(std::ostream &out) {
752 out <<
"Saving state not implemented for this model type";
755 friend class RoadRunner;
763 uint32_t flags = getFlags();
765 flags |= INTEGRATION;
767 flags &= ~INTEGRATION;
Definition: rrExecutableModel.h:73
Notifies the user of SBML events.
Definition: rrExecutableModel.h:54
Base class for all code generation systems; allows compiling and evaluating the model.
Definition: rrExecutableModel.h:118
virtual void getStateVectorRate(double time, const double *y, double *dydt=0)=0
ExecutableModelFlags
Definition: rrExecutableModel.h:728
virtual std::string getExecutableModelDesc() const =0
Returns a human-readable description of the code generation backend, e.g. LLVM, legacy C,...
virtual void getIds(int types, std::list< std::string > &ids)=0
virtual int getBoundarySpeciesConcentrations(size_t len, int const *indx, double *values)=0
virtual int setBoundarySpeciesConcentrations(size_t len, int const *indx, double const *values)=0
virtual double getRandom()=0
virtual int getSupportedIdTypes()=0
virtual int getFloatingSpeciesInitAmounts(size_t len, int const *indx, double *values)=0
virtual int setFloatingSpeciesInitConcentrations(size_t len, int const *indx, double const *values)=0
virtual int getStoichiometryMatrix(int *rows, int *cols, double **data)=0
virtual int getNumDepFloatingSpecies()=0
virtual void getEventRoots(double time, const double *y, double *gdot)=0
virtual void setFlags(uint32_t)=0
virtual int getReactionRates(size_t len, int const *indx, double *values)=0
virtual double getFloatingSpeciesAmountRate(size_t index, const double *reactionRates)=0
virtual int setStateVector(const double *stateVector)=0
virtual int getEventTriggers(size_t len, const int *indx, unsigned char *values)=0
virtual int getFloatingSpeciesInitConcentrations(size_t len, int const *indx, double *values)=0
virtual std::string getModelName()=0
virtual int getNumBoundarySpecies()=0
virtual int setGlobalParameterInitValues(size_t len, int const *indx, double const *values)=0
virtual std::string getGlobalParameterId(size_t index)=0
virtual int getStateVector(double *stateVector)=0
virtual int64_t getRandomSeed()=0
virtual ~ExecutableModel()
Definition: rrExecutableModel.h:655
virtual void getRateRuleValues(double *rateRuleValues)=0
virtual int setCompartmentInitVolumes(size_t len, int const *indx, double const *values)=0
virtual uint32_t getFlags() const =0
virtual int getReactionIndex(const std::string &eid)=0
virtual int getBoundarySpeciesAmounts(size_t len, int const *indx, double *values)=0
virtual int getGlobalParameterInitValues(size_t len, int const *indx, double *values)=0
virtual int getCompartmentVolumes(size_t len, int const *indx, double *values)=0
virtual std::vector< std::string > getRateRuleSymbols() const =0
Gets the symbols defined by rate rules, i.e. returns all x such that x' = f(x) is a rule which define...
virtual int getNumFloatingSpecies()=0
virtual void setRandomSeed(int64_t)=0
virtual int getNumGlobalParameters()=0
virtual int setFloatingSpeciesInitAmounts(size_t len, int const *indx, double const *values)=0
virtual int getGlobalParameterIndex(const std::string &eid)=0
virtual std::string getStateVectorId(size_t index)=0
virtual int getFloatingSpeciesAmounts(size_t len, int const *indx, double *values)=0
virtual void reset(int options)=0
virtual void setValue(const std::string &id, double value)=0
virtual int getNumReactions()=0
virtual int getNumIndFloatingSpecies()=0
void computeAllRatesOfChange()
Definition: rrExecutableModel.h:745
virtual int applyEvents(double timeEnd, const unsigned char *previousEventStatus, const double *initialState, double *finalState)=0
virtual int getEventIndex(const std::string &eid)=0
virtual std::string getReactionId(size_t index)=0
virtual double getValue(const std::string &id)=0
void setIntegration(bool value)
Definition: rrExecutableModel.h:762
virtual int setFloatingSpeciesConcentrations(size_t len, int const *indx, double const *values)=0
virtual int getGlobalParameterValues(size_t len, int const *indx, double *values)=0
virtual double getStoichiometry(int speciesIndex, int reactionIndex)=0
virtual int getCompartmentInitVolumes(size_t len, int const *indx, double *values)=0
virtual int getFloatingSpeciesConcentrations(size_t len, int const *indx, double *values)=0
C_DECL_SPEC bool rrcCallConv saveState(RRHandle handle, const char *filename)
Save a road runner instance's state to a platform-specific binary file.
C_DECL_SPEC char *rrcCallConv getInfo(RRHandle handle)
Retrieve info about current state of roadrunner, e.g. loaded model, conservationAnalysis etc.
cxx11_ns::shared_ptr< EventListener > EventListenerPtr
Definition: rrExecutableModel.h:71