COPASI API  4.40.278
CHybridNextReactionRKMethod Class Reference

#include <CHybridNextReactionRKMethod.h>

Inheritance diagram for CHybridNextReactionRKMethod:
[legend]

Public Member Functions

 CHybridNextReactionRKMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType=CTaskEnum::Method::hybrid, const CTaskEnum::Task &taskType=CTaskEnum::Task::timeCourse)
 
 CHybridNextReactionRKMethod (const CHybridMethod &src, const CDataContainer *pParent)
 
virtual void integrateDeterministicPart (C_FLOAT64 ds)
 
virtual void start ()
 
- Public Member Functions inherited from CHybridMethod
 CHybridMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType=CTaskEnum::Method::hybrid, const CTaskEnum::Task &taskType=CTaskEnum::Task::timeCourse)
 
 CHybridMethod (const CHybridMethod &src, const CDataContainer *pParent)
 
virtual bool elevateChildren ()
 
virtual bool isValidProblem (const CCopasiProblem *pProblem)
 
virtual Status step (const double &deltaT, const bool &final=false)
 
 ~CHybridMethod ()
 
- Public Member Functions inherited from CTrajectoryMethod
 CTrajectoryMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType, const CTaskEnum::Task &taskType=CTaskEnum::Task::timeCourse)
 
 CTrajectoryMethod (const CTrajectoryMethod &src, const CDataContainer *pParent)
 
const CVectorCore< C_INT > & getRoots () const
 
const bool & integrateReducedModel () const
 
void setProblem (CTrajectoryProblem *problem)
 
virtual void stateChange (const CMath::StateChange &change)
 
 ~CTrajectoryMethod ()
 
- Public Member Functions inherited from CCopasiMethod
 CCopasiMethod (const CCopasiMethod &src, const CDataContainer *pParent)
 
virtual void clearCallBack ()
 
const CProcessReportLevel & getCallBack () const
 
CMathContainer * getMathContainer () const
 
const CTaskEnum::Method & getSubType () const
 
const CTaskEnum::Task & getType () const
 
virtual void load (CReadConfig &configBuffer, CReadConfig::Mode mode=CReadConfig::SEARCH)
 
CCopasiMethod & operator= (const CCopasiMethod &rhs)
 
virtual void print (std::ostream *ostream) const
 
virtual void printResult (std::ostream *ostream) const
 
virtual bool setCallBack (CProcessReportLevel callBack)
 
void setMathContainer (CMathContainer *pContainer)
 
virtual ~CCopasiMethod ()
 
- Public Member Functions inherited from CCopasiParameterGroup
bool addGroup (const std::string &name)
 
void addParameter (CCopasiParameter *pParameter)
 
bool addParameter (const CCopasiParameter &parameter)
 
bool addParameter (const std::string &name, const CCopasiParameter::Type type, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
 
template<class CType >
bool addParameter (const std::string &name, const CCopasiParameter::Type type, const CType &value, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
 
virtual bool applyData (const CData &data, CUndoData::CChangeSet &changes)
 
CCopasiParameterGroup * assertGroup (const std::string &name, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
 
template<class CType >
CType * assertParameter (const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
 
index_iterator beginIndex () const
 
const_name_iterator beginName () const
 
 CCopasiParameterGroup (const CCopasiParameterGroup &src, const CDataContainer *pParent=NULL)
 
 CCopasiParameterGroup (const std::string &name, const CDataContainer *pParent=NO_PARENT, const std::string &objectType="ParameterGroup")
 
void clear ()
 
virtual void createUndoData (CUndoData &undoData, const CUndoData::Type &type, const CData &oldData=CData(), const CCore::Framework &framework=CCore::Framework::ParticleNumbers) const
 
index_iterator endIndex () const
 
const_name_iterator endName () const
 
CCopasiParameterGroup & getElementTemplates ()
 
const CCopasiParameterGroup & getElementTemplates () const
 
CCopasiParameterGroup * getGroup (const size_t &index)
 
const CCopasiParameterGroup * getGroup (const size_t &index) const
 
CCopasiParameterGroup * getGroup (const std::string &name)
 
const CCopasiParameterGroup * getGroup (const std::string &name) const
 
virtual size_t getIndex (const CDataObject *pObject) const
 
size_t getIndex (const std::string &name) const
 
std::string getKey (const size_t &index) const
 
std::string getKey (const std::string &name) const
 
virtual const std::string & getName (const size_t &index) const
 
virtual const CObjectInterface * getObject (const CCommonName &cn) const
 
CCopasiParameter * getParameter (const size_t &index)
 
const CCopasiParameter * getParameter (const size_t &index) const
 
CCopasiParameter * getParameter (std::string name)
 
const CCopasiParameter * getParameter (std::string name) const
 
CCopasiParameter::Type getType (const size_t &index) const
 
CCopasiParameter::Type getType (const std::string &name) const
 
std::string getUniqueParameterName (const CCopasiParameter *pParameter) const
 
template<class CType >
CType & getValue (const size_t &index)
 
template<class CType >
const CType & getValue (const size_t &index) const
 
template<class CType >
CType & getValue (const std::string &name)
 
template<class CType >
const CType & getValue (const std::string &name) const
 
bool haveTemplate () const
 
virtual CUndoObjectInterface * insert (const CData &data)
 
CCopasiParameterGroup & operator= (const CCopasiParameterGroup &rhs)
 
virtual bool remove (CDataObject *pObject)
 
bool removeParameter (CCopasiParameter *pParameter)
 
bool removeParameter (const size_t &index)
 
bool removeParameter (const std::string &name)
 
virtual void setUserInterfaceFlag (const UserInterfaceFlag &flag)
 
template<class CType >
bool setValue (const size_t &index, const CType &value)
 
template<class CType >
bool setValue (const std::string &name, const CType &value)
 
size_t size (const UserInterfaceFlag &require=UserInterfaceFlag::None, const UserInterfaceFlag &exclude=UserInterfaceFlag::None) const
 
bool swap (const size_t &iFrom, const size_t &iTo)
 
bool swap (index_iterator &from, index_iterator &to)
 
virtual CData toData () const
 
virtual void updateIndex (const size_t &index, const CUndoObjectInterface *pUndoObject)
 
virtual ~CCopasiParameterGroup ()
 
- Public Member Functions inherited from CCopasiParameter
 CCopasiParameter (const CCopasiParameter &src, const CDataContainer *pParent)
 
 CCopasiParameter (const std::string &name, const Type &type, const void *pValue=NULL, const CDataContainer *pParent=NO_PARENT, const std::string &objectType="Parameter")
 
virtual CCommonName getCN () const override
 
template<class CType >
const CType & getDefault () const
 
virtual const std::string & getKey () const override
 
virtual std::string getObjectDisplayName () const override
 
const CCopasiParameter::Type & getType () const
 
const UserInterfaceFlag & getUserInterfaceFlag () const
 
template<class CType >
std::vector< std::pair< CType, CType > > & getValidValues ()
 
template<class CType >
const std::vector< std::pair< CType, CType > > & getValidValues () const
 
void * getValidValuesPointer () const
 
template<class CType >
CType & getValue ()
 
template<class CType >
const CType & getValue () const
 
virtual void * getValuePointer () const override
 
CDataObject * getValueReference () const
 
bool hasValidValues () const
 
bool isBasic () const
 
bool isDefault () const
 
bool isEditable () const
 
bool isUnsupported () const
 
bool isValidValue (const bool &value) const
 
bool isValidValue (const C_FLOAT64 &value) const
 
bool isValidValue (const C_INT32 &value) const
 
bool isValidValue (const CCommonName &value) const
 
template<class CType >
bool isValidValue (const CType &) const
 
bool isValidValue (const std::string &value) const
 
bool isValidValue (const std::vector< CCopasiParameter * > &value) const
 
bool isValidValue (const unsigned C_INT32 &value) const
 
CCopasiParameter & operator= (const CCopasiParameter &rhs)
 
template<class CType >
bool setDefault (const CType &defaultValue)
 
bool setDefault (const std::vector< CCopasiParameter * > &defaultValue)
 
virtual bool setObjectParent (const CDataContainer *pParent) override
 
template<class CType , class Enum >
bool setValidValues (const CEnumAnnotation< CType, Enum > &validValues)
 
template<class CType >
bool setValidValues (const std::vector< std::pair< CType, CType > > &validValues)
 
template<class CType >
bool setValue (const CType &value)
 
bool setValue (const std::vector< CCopasiParameter * > &value)
 
virtual ~CCopasiParameter ()
 
- Public Member Functions inherited from CDataContainer
virtual bool add (CDataObject *pObject, const bool &adopt=true)
 
virtual bool appendDeletedDependentData (CUndoData &undoData) const
 
 CDataContainer (const CDataContainer &src, const CDataContainer *pParent)
 
 CDataContainer (const std::string &name, const CDataContainer *pParent=NO_PARENT, const std::string &type="CN", const CFlags< Flag > &flag=CFlags< Flag >::None)
 
virtual std::string getChildObjectUnits (const CDataObject *pObject) const
 
void getDescendants (CDataObject::DataObjectSet &descendants, const bool &recursive=false) const
 
virtual objectMap & getObjects ()
 
virtual const objectMap & getObjects () const
 
virtual const std::string getUnits () const override
 
virtual const CDataObject * getValueObject () const override
 
void objectRenamed (CDataObject *pObject, const std::string &oldName)
 
virtual ~CDataContainer ()
 
- Public Member Functions inherited from CDataObject
void addIssue (const CIssue &issue)
 
void addReference (const CDataContainer *pReference)
 
virtual void calculateValue () override
 
 CDataObject (const CDataObject &src, const CDataContainer *pParent=NULL)
 
virtual void destruct () override
 
virtual const CDataObject * getDataObject () const override
 
CDataContainer * getObjectAncestor (const std::string &type) const
 
CDataModel * getObjectDataModel () const
 
const CObjectInterface * getObjectFromCN (const CCommonName &cn) const
 
const std::string & getObjectName () const
 
CDataContainer * getObjectParent () const
 
const std::string & getObjectType () const
 
virtual const CObjectInterface::ObjectSet & getPrerequisites () const override
 
virtual const CValidity & getValidity () const override
 
bool hasFlag (const Flag &flag) const
 
virtual bool isPrerequisiteForContext (const CObjectInterface *pObject, const CCore::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const override
 
bool prerequisitsContains (const DataObjectSet &objects) const
 
void removeIssue (const CIssue &issue)
 
void removeReference (const CDataContainer *pReference)
 
bool setObjectName (const std::string &name)
 
void validityChanged (const CValidity &changedValidity) override
 
void validityRemoved (const CValidity &changedValidity)
 
virtual ~CDataObject ()
 
- Public Member Functions inherited from CObjectInterface
 CObjectInterface ()
 
 CObjectInterface (const CObjectInterface &src)
 
virtual ~CObjectInterface ()
 
- Public Member Functions inherited from CUndoObjectInterface
 CUndoObjectInterface ()
 
 CUndoObjectInterface (const CUndoObjectInterface &src)
 
bool generateUuid ()
 
const xg::Guid & getUuid () const
 
bool setUuid (const std::string &uuid)
 
bool setUuid (const xg::Guid &uuid)
 
virtual ~CUndoObjectInterface ()
 

Protected Member Functions

void rungeKutta (C_FLOAT64 dt)
 
- Protected Member Functions inherited from CHybridMethod
void calculateDerivative (CVectorCore< C_FLOAT64 > &deriv)
 
void cleanup ()
 
C_FLOAT64 doSingleStep (C_FLOAT64 currentTime, C_FLOAT64 endTime)
 
C_FLOAT64 generateReactionTime (size_t rIndex)
 
void getStochTimeAndIndex (C_FLOAT64 &ds, size_t &rIndex)
 
void insertDeterministicReaction (size_t rIndex)
 
void partitionSystem ()
 
void removeDeterministicReaction (size_t rIndex)
 
void setupDependencyGraph ()
 
void setupMetab2React ()
 
void setupPartition ()
 
void setupPriorityQueue ()
 
void updatePriorityQueue (size_t rIndex, C_FLOAT64 time)
 
void updateTauMu (size_t rIndex, C_FLOAT64 time)
 
- Protected Member Functions inherited from CTrajectoryMethod
void output (const bool &useMoieties)
 
virtual void signalMathContainerChanged ()
 
- Protected Member Functions inherited from CCopasiMethod
 CCopasiMethod (const CCopasiMethod &src)
 
 CCopasiMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType, const CTaskEnum::Task &taskType)
 
- Protected Member Functions inherited from CCopasiParameterGroup
 CCopasiParameterGroup ()
 
- Protected Member Functions inherited from CCopasiParameter
 CCopasiParameter (const CCopasiParameter &src)
 
- Protected Member Functions inherited from CDataContainer
template<class CType >
CDataMatrixReference< CType > * addMatrixReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
 
template<class CType >
CDataObjectReference< CType > * addObjectReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
 
template<class CType >
CDataVectorReference< CType > * addVectorReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
 
 CDataContainer (const CDataContainer &src)
 
void initObjects ()
 
- Protected Member Functions inherited from CDataObject
 CDataObject ()
 
 CDataObject (const std::string &name, const CDataContainer *pParent=static_cast< CDataContainer * >((void *) 0), const std::string &type="CN", const CFlags< Flag > &flag=CFlags< Flag >::None)
 

Private Member Functions

 CHybridNextReactionRKMethod ()
 
void initializeParameter ()
 

Private Attributes

CVector< C_FLOAT64 > k1
 
CVector< C_FLOAT64 > k2
 
CVector< C_FLOAT64 > k3
 
CVector< C_FLOAT64 > k4
 
C_FLOAT64 mStepsize
 
CVector< C_FLOAT64 > temp
 

Additional Inherited Members

- Public Types inherited from CTrajectoryMethod
enum  Status { FAILURE = -1 , NORMAL = 0 , ROOT = 1 }
 
- Public Types inherited from CCopasiParameterGroup
typedef CDataObjectMap::const_type_iterator< CCopasiParameter > const_name_iterator
 
typedef std::vector< CCopasiParameter * > elements
 
typedef elements::iterator index_iterator
 
typedef CDataObjectMap::type_iterator< CCopasiParameter > name_iterator
 
- Public Types inherited from CCopasiParameter
enum class  eUserInterfaceFlag { editable , basic , unsupported , __SIZE }
 
enum class  Type {
  DOUBLE = 0 , UDOUBLE , INT , UINT ,
  BOOL , GROUP , STRING , CN ,
  KEY , FILE , EXPRESSION , INVALID ,
  __SIZE
}
 
typedef CFlags< eUserInterfaceFlag > UserInterfaceFlag
 
- Public Types inherited from CDataContainer
typedef CDataObjectMap objectMap
 
- Public Types inherited from CDataObject
typedef std::set< const CDataObject * > DataObjectSet
 
enum  Flag {
  Container , Vector , Matrix , NameVector ,
  Reference , ValueBool , ValueInt , ValueInt64 ,
  ValueDbl , NonUniqueName , StaticString , ValueString ,
  Separator , DisplayName , ModelEntity , Array ,
  DataModel , Root , Gui , __SIZE
}
 
- Public Types inherited from CObjectInterface
typedef std::vector< const CDataContainer * > ContainerList
 
typedef std::set< const CObjectInterface * > ObjectSet
 
- Static Public Member Functions inherited from CCopasiParameter
static void allocateValidValues (const Type &type, void *&pValidValues)
 
static void allocateValue (const Type &type, void *&pValue)
 
static void assignValue (const Type &type, void *&pValue, const void *pNewValue)
 
static void deleteValidValues (const Type &type, void *&pValidValues)
 
static void deleteValue (const Type &type, void *&pValue)
 
static CCopasiParameter * fromData (const CData &data, CUndoObjectInterface *pParent)
 
- Static Public Member Functions inherited from CDataContainer
static CDataContainer * fromData (const CData &data, CUndoObjectInterface *pParent)
 
- Static Public Member Functions inherited from CDataObject
static CDataObject * fromData (const CData &data, CUndoObjectInterface *pParent)
 
static void sanitizeObjectName (std::string &name)
 
- Static Public Member Functions inherited from CObjectInterface
static const CDataObject * DataObject (const CObjectInterface *pInterface)
 
static CObjectInterface * GetObjectFromCN (const ContainerList &listOfContainer, const CCommonName &objName)
 
- Static Public Member Functions inherited from CUndoObjectInterface
template<class CType >
static CType * fromData (const CData &, CUndoObjectInterface *)
 
- Static Public Attributes inherited from CCopasiParameter
static const CEnumAnnotation< std::string, Type > TypeName
 
static const CEnumAnnotation< std::string, Type > XMLType
 
- Static Public Attributes inherited from CDataContainer
static const CObjectInterface::ContainerList EmptyList
 
- Protected Types inherited from CHybridMethod
enum  metabStatus { LOW = 0 , HIGH }
 
- Static Protected Member Functions inherited from CHybridMethod
static C_INT32 checkModel (CModel *model)
 
- Protected Attributes inherited from CHybridMethod
std::vector< C_FLOAT64 > mAmu
 
std::vector< C_FLOAT64 > mAmuOld
 
CVectorCore< C_FLOAT64 > mCurrentState
 
CDependencyGraph mDG
 
size_t mFirstMetabIndex
 
CHybridStochFlag * mFirstReactionFlag
 
C_FLOAT64 mLowerStochLimit
 
size_t mMaxBalance
 
size_t mMaxIntBeforeStep
 
unsigned C_INT32 mMaxSteps
 
bool mMaxStepsReached
 
std::vector< std::set< size_t > > mMetab2React
 
CVector< metabStatus > mMetabFlags
 
size_t mNumVariableMetabs
 
unsigned C_INT32 mPartitioningInterval
 
const C_FLOAT64 * mpFirstMetabValue
 
CIndexedPriorityQueue mPQ
 
CRandom * mpRandomGenerator
 
unsigned C_INT32 mRandomSeed
 
size_t mRateOffset
 
std::vector< CHybridStochFlag > mReactionFlags
 
CVectorCore< CMathReaction > mReactions
 
CVectorCore< C_FLOAT64 > mSpeciesRates
 
size_t mStepsAfterPartitionSystem
 
CVector< CCore::CUpdateSequence > mUpdateSequences
 
C_FLOAT64 mUpperStochLimit
 
bool mUseRandomSeed
 
- Protected Attributes inherited from CTrajectoryMethod
CVectorCore< C_FLOAT64 > mContainerState
 
C_FLOAT64 * mpContainerStateTime
 
CTrajectoryProblem * mpProblem
 
const bool * mpReducedModel
 
CTrajectoryTask * mpTask
 
CVectorCore< C_INT > mRootsFound
 
- Protected Attributes inherited from CCopasiMethod
CMathContainer * mpContainer
 
CProcessReportLevel mProcessReport
 
- Protected Attributes inherited from CCopasiParameter
std::string mKey
 
void * mpDefault
 
void * mpValidValues
 
void * mpValue
 
CDataObject * mpValueReference
 
UserInterfaceFlag mUserInterfaceFlag
 
- Protected Attributes inherited from CDataContainer
objectMap mObjects
 
- Protected Attributes inherited from CDataObject
ObjectSet mPrerequisits
 
std::set< CDataContainer * > mReferences
 
- Protected Attributes inherited from CObjectInterface
CValidity mValidity
 
- Static Protected Attributes inherited from CTrajectoryMethod
static const bool ReducedModel
 

Detailed Description

CHybridNextReactionRKMethod

First approach to an hybrid algorithm. Gibson's Next Reaction method is combined with a RungeKutta numerical integrator.

File name: CHybridNextReactionRKMethod.h Author: Juergen Pahle Email: juerg.nosp@m.en.p.nosp@m.ahle@.nosp@m.eml..nosp@m.villa.nosp@m.-bos.nosp@m.ch.de

Last change: 21, January 2003

(C) European Media Lab 2003.

Constructor & Destructor Documentation

◆ CHybridNextReactionRKMethod() [1/3]

CHybridNextReactionRKMethod::CHybridNextReactionRKMethod ( )
private

Constructor.

◆ CHybridNextReactionRKMethod() [2/3]

CHybridNextReactionRKMethod::CHybridNextReactionRKMethod ( const CDataContainer *  pParent,
const CTaskEnum::Method &  methodType = CTaskEnum::Method::hybrid,
const CTaskEnum::Task &  taskType = CTaskEnum::Task::timeCourse 
)

Specific constructor

Parameters
constCDataContainer * pParent
constCTaskEnum::Method & methodType (default: hybrid)
constCTaskEnum::Task & taskType (default: timeCourse)

CHybridNextReactionRKMethod

First approach to an hybrid algorithm. Gibson's Next Reaction method is combined with a RungeKutta numerical integrator.

File name: CHybridNextReactionRKMethod.h Author: Juergen Pahle Email: juerg.nosp@m.en.p.nosp@m.ahle@.nosp@m.eml-.nosp@m.r.vil.nosp@m.la-b.nosp@m.osch..nosp@m.de

Last change: 15, December 2004

(C) European Media Lab 2003.

References initializeParameter().

◆ CHybridNextReactionRKMethod() [3/3]

CHybridNextReactionRKMethod::CHybridNextReactionRKMethod ( const CHybridMethod &  src,
const CDataContainer *  pParent 
)

Copy constructor.

Parameters
constCHybridNextReactionRKMethod & src
constCDataContainer * pParent

References initializeParameter().

Member Function Documentation

◆ initializeParameter()

◆ integrateDeterministicPart()

void CHybridNextReactionRKMethod::integrateDeterministicPart ( C_FLOAT64  dt)
virtual

Integrates the deterministic reactions of the system over the specified time interval.

Parameters
dsA C_FLOAT64 specifying the stepsize.

Implements CHybridMethod.

References C_FLOAT64, CCopasiMethod::mpContainer, mStepsize, rungeKutta(), and CMathContainer::updateSimulatedValues().

◆ rungeKutta()

void CHybridNextReactionRKMethod::rungeKutta ( C_FLOAT64  dt)
protected

Does one 4th order RungeKutta step to integrate the system numerically.

Parameters
dtA C_FLOAT64 specifying the stepsize
resultA reference to a vector, into which the result, that is the increment vector, will be written

References CHybridMethod::calculateDerivative(), k1, k2, k3, k4, CHybridMethod::mCurrentState, CHybridMethod::mNumVariableMetabs, and temp.

Referenced by integrateDeterministicPart().

◆ start()

void CHybridNextReactionRKMethod::start ( )
virtual

This instructs the method to prepare for integration

Reimplemented from CHybridMethod.

References CCopasiMessage::ERROR, k1, k2, k3, k4, MCTrajectoryMethod, CHybridMethod::mNumVariableMetabs, mStepsize, CVector< CType >::resize(), CHybridMethod::start(), and temp.

Member Data Documentation

◆ k1

CVector< C_FLOAT64 > CHybridNextReactionRKMethod::k1
private

Referenced by rungeKutta(), and start().

◆ k2

CVector< C_FLOAT64 > CHybridNextReactionRKMethod::k2
private

Referenced by rungeKutta(), and start().

◆ k3

CVector< C_FLOAT64 > CHybridNextReactionRKMethod::k3
private

Referenced by rungeKutta(), and start().

◆ k4

CVector< C_FLOAT64 > CHybridNextReactionRKMethod::k4
private

Referenced by rungeKutta(), and start().

◆ mStepsize

C_FLOAT64 CHybridNextReactionRKMethod::mStepsize
private

Stepsize for the rungeKutta steps of the numerical integrator.

Referenced by integrateDeterministicPart(), and start().

◆ temp

CVector< C_FLOAT64 > CHybridNextReactionRKMethod::temp
private

Referenced by rungeKutta(), and start().


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