roadrunner  2.6.0
Fast simulator for SBML models
Public Member Functions | Static Public Member Functions | List of all members
rr::RK45Integrator Class Reference

A Runge-Kutta Fehlberg method for roadrunner. More...

#include <RK45Integrator.h>

Inheritance diagram for rr::RK45Integrator:
rr::Integrator rr::Solver rr::Registrable

Public Member Functions

 RK45Integrator (ExecutableModel *m)
 Constructor: takes an executable model, does not own the pointer. More...
 
virtual ~RK45Integrator ()
 Destructor. More...
 
virtual void syncWithModel (ExecutableModel *m)
 Called whenever a new model is loaded to allow integrator to reset internal state. More...
 
virtual double integrate (double t, double h)
 implement Integrator interface More...
 
virtual void restart (double t0)
 Restarts the integrator.
 
std::string getName () const
 Get the name for this integrator. More...
 
std::string getDescription () const
 Get the description for this integrator. More...
 
std::string getHint () const
 Get the hint for this integrator. More...
 
Solverconstruct (ExecutableModel *executableModel) const
 Constructs a new Solver of a given type. More...
 
virtual Setting getValue (std::string key)
 
IntegrationMethod getIntegrationMethod () const
 Always deterministic for RK45. More...
 
void resetSettings ()
 Reset all integrator settings to their respective default values. More...
 
virtual void setListener (IntegratorListenerPtr)
 the integrator can hold a single listener. More...
 
virtual IntegratorListenerPtr getListener ()
 get the integrator listener
 
 Integrator (ExecutableModel *model)
 
 Integrator ()
 
- Public Member Functions inherited from rr::Integrator
 Integrator (ExecutableModel *model)
 
virtual void loadConfigSettings ()
 
virtual void loadSBMLSettings (const std::string &filename)
 
virtual void tweakTolerances ()
 Fix tolerances for SBML tests. More...
 
virtual void setIndividualTolerance (std::string sid, double value)
 Set tolerance for floating species or variables that have a rate rule, will only be used in CVODEIntegrator. More...
 
virtual std::vector< double > getAbsoluteToleranceVector ()
 Get the absolute tolerance vector for the solver. More...
 
std::string toString () const
 Return a std::string representation of the solver. More...
 
virtual std::string toRepr () const
 Return std::string representation a la Python repr method. More...
 
void setIntegrationStartTime (double time)
 
 Solver ()=default
 
 Solver (ExecutableModel *model)
 
virtual void setValue (const std::string &key, Setting value)
 Pull down the setValue from superclass. More...
 
- Public Member Functions inherited from rr::Solver
 Solver (ExecutableModel *model)
 
void updateSettings (Dictionary *inputSettings)
 Update settings values. More...
 
std::vector< std::string > getSettings () const
 Get a list of all settings for this solver. More...
 
std::unordered_map< std::string, Setting > & getSettingsMap ()
 get settings for this solver More...
 
virtual Setting getValue (const std::string &key) const
 Get the value of an integrator setting. More...
 
virtual Setting hasValue (const std::string &key) const
 Return true if this setting is supported by the integrator. More...
 
virtual size_t getNumParams () const
 Get the number of parameters. More...
 
virtual std::string getParamName (size_t n) const
 Get the name of the parameter at index n. More...
 
virtual std::string getParamDisplayName (int n) const
 Get the display name of the parameter at index n. More...
 
virtual std::string getParamHint (int n) const
 Get the hint of the parameter at index n. More...
 
virtual std::string getParamDesc (int n) const
 Get the description of the parameter at index n. More...
 
virtual std::string getValueAsString (const std::string &key)
 Wrapper for getValue which converts output to a specific type. More...
 
virtual void setValue (const std::string &key, Setting value)
 
virtual std::string getSettingsRepr () const
 Get the solver settings as a std::string. More...
 
virtual std::string settingsPyDictRepr () const
 Python dictionary-style std::string representation of settings. More...
 
const std::string & getDisplayName (const std::string &key) const
 Gets the hint associated with a given key. More...
 
const std::string & getHint (const std::string &key) const
 Gets the hint associated with a given key. More...
 
const std::string & getDescription (const std::string &key) const
 Gets the description associated with a given key. More...
 
Setting::TypeId getType (const std::string &key) const
 Gets the type associated with a given key. More...
 
virtual ExecutableModelgetModel () const
 returns the pointer to the ExecutableModel
 
virtual std::string getName () const=0
 Gets the name associated with this Solver type. More...
 
virtual std::string getHint () const=0
 Gets the hint associated with this Solver type. More...
 
virtual std::string getDescription () const=0
 Gets the description associated with this Solver type. More...
 

Static Public Member Functions

static std::string getRK45Name ()
 Get the name for this integrator. More...
 
static std::string getRK45Description ()
 Get the description for this integrator. More...
 
static std::string getRK45Hint ()
 Get the hint for this integrator. More...
 

Additional Inherited Members

- Public Types inherited from rr::Integrator
enum  IntegrationMethod { Deterministic , Stochastic , Hybrid , Other }
 
- Public Types inherited from rr::Solver
using SettingsList = std::vector< std::string >
 
using SettingsMap = std::unordered_map< std::string, Setting >
 
using DisplayNameMap = std::unordered_map< std::string, std::string >
 
using HintMap = std::unordered_map< std::string, std::string >
 
using DescriptionMap = std::unordered_map< std::string, std::string >
 
- Public Attributes inherited from rr::Solver
SettingsList sorted_settings
 
SettingsMap settings
 
DisplayNameMap display_names_
 
HintMap hints
 
DescriptionMap descriptions
 
- Protected Member Functions inherited from rr::Solver
void addSetting (const std::string &name, const Setting &val, const std::string &display_name, const std::string &hint, const std::string &description)
 
- Protected Attributes inherited from rr::Integrator
double mIntegrationStartTime
 
- Protected Attributes inherited from rr::Solver
ExecutableModelmModel = nullptr
 non-owning pointer to model
 

Detailed Description

A Runge-Kutta Fehlberg method for roadrunner.

Author
KC

Uses the Fehlberg method, an adaptive step method, to integrate models.

Constructor & Destructor Documentation

◆ RK45Integrator()

rr::RK45Integrator::RK45Integrator ( ExecutableModel m)

Constructor: takes an executable model, does not own the pointer.

Author
KC

◆ ~RK45Integrator()

rr::RK45Integrator::~RK45Integrator ( )
virtual

Destructor.

Author
KC

Member Function Documentation

◆ construct()

Solver * rr::RK45Integrator::construct ( ExecutableModel model) const
virtual

Constructs a new Solver of a given type.

Author
JKM, WBC

the caller is responsible for deleting memory associated with the returned Solver*.

Implements rr::Registrable.

◆ getDescription()

std::string rr::RK45Integrator::getDescription ( ) const
virtual

Get the description for this integrator.

Author
JKM
Note
Delegates to getDescription

Implements rr::Registrable.

◆ getHint()

std::string rr::RK45Integrator::getHint ( ) const
virtual

Get the hint for this integrator.

Author
WBC
Note
Delegates to getHint

Implements rr::Registrable.

◆ getIntegrationMethod()

Integrator::IntegrationMethod rr::RK45Integrator::getIntegrationMethod ( ) const
virtual

Always deterministic for RK45.

Author
JKM

Implements rr::Integrator.

◆ getName()

std::string rr::RK45Integrator::getName ( ) const
virtual

Get the name for this integrator.

Author
JKM
Note
Delegates to getName

Implements rr::Registrable.

◆ getRK45Description()

std::string rr::RK45Integrator::getRK45Description ( )
static

Get the description for this integrator.

Author
JKM

◆ getRK45Hint()

std::string rr::RK45Integrator::getRK45Hint ( )
static

Get the hint for this integrator.

Author
JKM

◆ getRK45Name()

std::string rr::RK45Integrator::getRK45Name ( )
static

Get the name for this integrator.

Author
JKM

◆ integrate()

double rr::RK45Integrator::integrate ( double  t,
double  h 
)
virtual

implement Integrator interface

Author
CC

Integrates the model from t to t + h.

Attempts to find the state std::vector at t + h, and returns time t + h if successful. If the integrator does not find a convergent solution, the state std::vector is not updated and t is returned. Also calculates a new timestep and saves it to a member variable for future use.

Implements rr::Integrator.

◆ resetSettings()

void rr::RK45Integrator::resetSettings ( )
virtual

Reset all integrator settings to their respective default values.

Author
JKM

Reimplemented from rr::Solver.

◆ setListener()

void rr::RK45Integrator::setListener ( IntegratorListenerPtr  )
virtual

the integrator can hold a single listener.

If clients require multicast, they can create a multi-cast listener.

Implements rr::Integrator.

◆ syncWithModel()

void rr::RK45Integrator::syncWithModel ( ExecutableModel m)
virtual

Called whenever a new model is loaded to allow integrator to reset internal state.

Author
JKM

Reimplemented from rr::Integrator.


The documentation for this class was generated from the following files: