COPASI API
4.40.278
|
#include <CHybridMethod.h>
Public Member Functions | |
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 void | start () |
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 ¶meter) |
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 Types | |
enum | metabStatus { LOW = 0 , HIGH } |
Protected Member Functions | |
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) |
virtual void | integrateDeterministicPart (C_FLOAT64 ds)=0 |
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) | |
Static Protected Member Functions | |
static C_INT32 | checkModel (CModel *model) |
Private Member Functions | |
CHybridMethod () | |
void | initializeParameter () |
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 |
Static Protected Attributes inherited from CTrajectoryMethod | |
static const bool | ReducedModel |
|
protected |
|
private |
Constructor.
CHybridMethod::CHybridMethod | ( | const CDataContainer * | pParent, |
const CTaskEnum::Method & | methodType = CTaskEnum::Method::hybrid , |
||
const CTaskEnum::Task & | taskType = CTaskEnum::Task::timeCourse |
||
) |
Specific constructor
const | CDataContainer * pParent |
const | CTaskEnum::Method & methodType (default: hybrid) |
const | CTaskEnum::Task & taskType (default: timeCourse) |
This class implements an hybrid algorithm for the simulation of a biochemical system over time.
File name: CHybridMethod.cpp Author: Juergen Pahle Email: juerg en.p ahle@ eml- r.vil la-b osch. de
Last change: 14, December 2004
(C) European Media Lab 2003. Default constructor.
References initializeParameter().
CHybridMethod::CHybridMethod | ( | const CHybridMethod & | src, |
const CDataContainer * | pParent | ||
) |
Copy constructor.
const CHybridMethod & | src |
const | CDataContainer * pParent |
References initializeParameter().
CHybridMethod::~CHybridMethod | ( | ) |
Destructor.
References cleanup(), and DESTRUCTOR_TRACE.
|
protected |
Calculates the derivative of the system and writes it into the vector deriv. Length of deriv must be mNumVariableMetabs. CAUTION: Only deterministic reactions are taken into account. That is, this is only the derivative of the deterministic part of the system.
CVectorCore< | C_FLOAT64 > & deriv |
Calculates the derivative of the system and writes it into the vector deriv. Length of deriv must be mNumVariableMetabs. CAUTION: Only deterministic reactions are taken into account. That is, this is only the derivative of the deterministic part of the system.
deriv | A vector reference of length mNumVariableMetabs, into which the derivative is written |
References CVectorCore< CType >::array(), C_FLOAT64, C_INT32, CMathReaction::getNumberBalance(), CMathReaction::getParticleFluxObject(), CMathObject::getValuePointer(), mFirstReactionFlag, CHybridStochFlag::mIndex, CCopasiMethod::mpContainer, CHybridStochFlag::mpNext, mRateOffset, mReactions, mSpeciesRates, CVectorCore< CType >::size(), and CMathContainer::updateSimulatedValues().
Referenced by CHybridNextReactionLSODAMethod::evalF(), and CHybridNextReactionRKMethod::rungeKutta().
Test the model if it is proper to perform stochastic simulations on. Several properties are tested (e.g. integer stoichometry, all reactions take place in one compartment only, irreversibility...).
model | The model to be checked |
Test the model if it is proper to perform stochastic simulations on. Several properties are tested (e.g. integer stoichometry, all reactions take place in one compartment only, irreversibility...).
References C_FLOAT64, C_INT32, CModel::getReactions(), CModel::getStoi(), INT_EPSILON, CMatrix< CType >::numRows(), and CDataVector< CType >::size().
|
protected |
Cleans up memory, etc.
Referenced by ~CHybridMethod().
Simulates the system over the next interval of time. The current time and the end time of the current step() are given as arguments.
currentTime | A C_FLOAT64 specifying the current time |
endTime | A C_FLOAT64 specifying the end time of the step() |
Simulates the system over the next interval of time. The new time after this step is returned.
currentTime | A C_FLOAT64 specifying the current time |
endTime | A C_FLOAT64 specifying the endTime of the current step() |
References C_FLOAT64, C_INVALID_INDEX, getStochTimeAndIndex(), integrateDeterministicPart(), mFirstReactionFlag, mPartitioningInterval, CTrajectoryMethod::mpContainerStateTime, mPQ, mReactions, mStepsAfterPartitionSystem, partitionSystem(), CIndexedPriorityQueue::size(), CMath::State, CTrajectoryMethod::stateChange(), and updatePriorityQueue().
Referenced by step().
|
virtual |
This methods must be called to elevate subgroups to derived objects. The default implementation does nothing.
Reimplemented from CCopasiParameterGroup.
References initializeParameter().
|
protected |
Generates a putative reaction time for the given reaction.
rIndex | A size_t specifying the index of the reaction |
References C_FLOAT64, CRandom::getRandomOO(), mAmu, and mpRandomGenerator.
Referenced by partitionSystem(), setupPriorityQueue(), updatePriorityQueue(), and updateTauMu().
|
protected |
Find the reaction index and the reaction time of the stochastic (!) reaction with the lowest reaction time.
ds | A reference to a C_FLOAT64. The putative reaction time for the first stochastic reaction is written into this variable. |
rIndex | A reference to a size_t. The index of the first stochastic reaction is written into this variable. |
References mPQ, CIndexedPriorityQueue::topIndex(), and CIndexedPriorityQueue::topKey().
Referenced by doSingleStep().
|
private |
Intialize the method parameter
References CCopasiParameterGroup::assertParameter(), CCopasiParameter::BOOL, C_FLOAT64, C_INT32, CCopasiParameter::DOUBLE, CCopasiParameterGroup::getParameter(), CCopasiParameter::getValue(), CCopasiParameter::INT, LOWER_STOCH_LIMIT, MAX_STEPS, PARTITIONING_INTERVAL, RANDOM_SEED, CCopasiParameterGroup::removeParameter(), CCopasiParameterGroup::setValue(), CCopasiParameter::UINT, UPPER_STOCH_LIMIT, and USE_RANDOM_SEED.
Referenced by CHybridMethod(), and elevateChildren().
|
protected |
Inserts a new deterministic reaction into the linked list in the vector mReactionFlags.
rIndex | A size_t giving the index of the reaction to be inserted into the list of deterministic reactions. |
Inserts a new deterministic reaction into the linked list in the array mReactionFlags.
rIndex | A size_t giving the index of the reaction to be inserted into the list of deterministic reactions. |
References mAmu, mAmuOld, mFirstReactionFlag, CHybridStochFlag::mpPrev, and mReactionFlags.
Referenced by partitionSystem().
|
protectedpure virtual |
Integrates the deterministic reactions of the system over the specified time interval.
ds | A C_FLOAT64 specifying the stepsize. |
Implemented in CHybridNextReactionRKMethod, and CHybridNextReactionLSODAMethod.
Referenced by doSingleStep().
|
virtual |
Check if the method is suitable for this problem
Reimplemented from CTrajectoryMethod.
References CCopasiMessage::ERROR, CMathContainer::getCountODEs(), CTrajectoryProblem::getDuration(), CMathContainer::getEvents(), CMathContainer::getModel(), CMathContainer::getReactions(), CCopasiMethod::getSubType(), CTrajectoryMethod::isValidProblem(), MCTrajectoryMethod, CTaskEnum::MethodName, mLowerStochLimit, CCopasiMethod::mpContainer, mUpperStochLimit, CVectorCore< CType >::size(), and CModel::suitableForStochasticSimulation().
|
protected |
Updates the partitioning of the system depending on the particle numbers present.
References C_FLOAT64, CDataObject::calculateValue(), generateReactionTime(), HIGH, insertDeterministicReaction(), CIndexedPriorityQueue::insertStochReaction(), LOW, mAmu, mAmuOld, mCurrentState, mLowerStochLimit, mMetab2React, mMetabFlags, mNumVariableMetabs, CTrajectoryMethod::mpContainerStateTime, mPQ, mReactionFlags, mReactions, mUpperStochLimit, removeDeterministicReaction(), CIndexedPriorityQueue::removeStochReaction(), CMath::State, and CTrajectoryMethod::stateChange().
Referenced by doSingleStep().
|
protected |
Removes a deterministic reaction from the linked list in the vector mReactionFlags.
rIndex | A size_t giving the index of the reaction to be removed from the list of deterministic reactions. |
Removes a deterministic reaction from the linked list in the array mReactionFlags.
rIndex | A size_t giving the index of the reaction to be removed from the list of deterministic reactions. |
References mFirstReactionFlag, CHybridStochFlag::mpPrev, and mReactionFlags.
Referenced by partitionSystem().
|
protected |
Sets up the dependency graph
Sets up the dependency graph.
References CDependencyGraph::addDependent(), CDependencyGraph::clear(), CCore::Default, CMathDependencyGraph::dependsOn(), CMathReaction::getObjectBalance(), CMathContainer::getTransientDependencies(), CMathDependencyGraph::getUpdateSequence(), mDG, CCopasiMethod::mpContainer, mReactions, mUpdateSequences, CDependencyGraph::resize(), and CVectorCore< CType >::size().
Referenced by start().
|
protected |
Creates for each metabolite a set of reaction indices. If the metabolite participates in a reaction as substrate, product or modifier this reaction is added to the corresponding set.
References CVectorCore< CType >::array(), mMetab2React, mpFirstMetabValue, mReactions, and CVectorCore< CType >::size().
Referenced by start().
|
protected |
Creates an initial partitioning of the system. Deterministic and stochastic reactions are determined. The array mStochReactions is initialized.
Creates an initial partitioning of the system. Deterministic and stochastic reactions are determined. The vector mReactionFlags and the vector mMetabFlags are initialized.
References C_FLOAT64, HIGH, LOW, mCurrentState, mFirstReactionFlag, mLowerStochLimit, mMetab2React, mMetabFlags, mNumVariableMetabs, CHybridStochFlag::mpNext, mReactionFlags, mReactions, mUpperStochLimit, CVector< CType >::resize(), and CVectorCore< CType >::size().
Referenced by start().
|
protected |
Sets up the priority queue.
startTime | The time at which the simulation starts. |
References C_FLOAT64, CDataObject::calculateValue(), CIndexedPriorityQueue::clear(), generateReactionTime(), CIndexedPriorityQueue::initializeIndexPointer(), CIndexedPriorityQueue::insertStochReaction(), mAmu, CTrajectoryMethod::mpContainerStateTime, mPQ, mReactionFlags, mReactions, and CVectorCore< CType >::size().
Referenced by start().
|
virtual |
This instructs the method to prepare for integration
Reimplemented from CTrajectoryMethod.
Reimplemented in CHybridNextReactionRKMethod, and CHybridNextReactionLSODAMethod.
References CVectorCore< CType >::array(), C_FLOAT64, CMathContainer::getCountDependentSpecies(), CMathContainer::getCountFixedEventTargets(), CMathContainer::getCountIndependentSpecies(), CMathContainer::getCountODEs(), CMathContainer::getRandomGenerator(), CMathContainer::getRate(), CMathContainer::getReactions(), CMathContainer::getState(), CVectorCore< CType >::initialize(), CRandom::initialize(), mAmu, mAmuOld, mCurrentState, mFirstMetabIndex, mLowerStochLimit, mMaxSteps, mMaxStepsReached, mMetab2React, mNumVariableMetabs, mPartitioningInterval, CCopasiMethod::mpContainer, mpFirstMetabValue, mpRandomGenerator, mRandomSeed, mRateOffset, mReactions, mSpeciesRates, mStepsAfterPartitionSystem, mUpdateSequences, mUpperStochLimit, mUseRandomSeed, setupDependencyGraph(), setupMetab2React(), setupPartition(), setupPriorityQueue(), CVectorCore< CType >::size(), and CTrajectoryMethod::start().
Referenced by CHybridNextReactionLSODAMethod::start(), and CHybridNextReactionRKMethod::start().
|
virtual |
This instructs the method to calculate a time step of deltaT starting with the current state, i.e., the result of the previous step. The new state (after deltaT) is expected in the current state. The return value is the actual timestep taken.
const | double & deltaT |
const | bool & final (default: false) |
Reimplemented from CTrajectoryMethod.
References C_FLOAT64, doSingleStep(), mMaxSteps, mMaxStepsReached, CCopasiMethod::mpContainer, CTrajectoryMethod::mpContainerStateTime, CTrajectoryMethod::NORMAL, CMathContainer::updateSimulatedValues(), and CCopasiMessage::WARNING.
|
protected |
Updates the priority queue.
rIndex | A size_t giving the index of the fired reaction |
time | A C_FLOAT64 holding the time taken by this reaction |
Updates the priority queue.
rIndex | A size_t giving the index of the fired reaction (-1, if no stochastic reaction has fired) |
time | A C_FLOAT64 holding the current time |
References CMathContainer::applyUpdateSequence(), CVectorCore< CType >::array(), C_FLOAT64, C_INVALID_INDEX, CDataObject::calculateValue(), generateReactionTime(), CMathReaction::getPropensityObject(), mAmu, mAmuOld, CCopasiMethod::mpContainer, mPQ, mReactionFlags, mReactions, mUpdateSequences, CVectorCore< CType >::size(), CIndexedPriorityQueue::updateNode(), CMathContainer::updateSimulatedValues(), and updateTauMu().
Referenced by doSingleStep().
|
protected |
Updates the putative reaction time of a stochastic reaction in the priority queue. The corresponding amu and amu_old must be set prior to the call of this method.
rIndex | A size_t specifying the index of the reaction |
time | A C_FLOAT64 specifying the current time |
Updates the putative reaction time of a stochastic reaction in the priority queue. The corresponding amu and amu_old must be set prior to the call of this method.
rIndex | A size_t specifying the index of the reaction |
References C_FLOAT64, generateReactionTime(), CIndexedPriorityQueue::getKey(), mAmu, mAmuOld, mPQ, and CIndexedPriorityQueue::updateNode().
Referenced by updatePriorityQueue().
|
protected |
The propensities of the stochastic reactions.
Referenced by generateReactionTime(), insertDeterministicReaction(), partitionSystem(), setupPriorityQueue(), start(), updatePriorityQueue(), and updateTauMu().
|
protected |
Referenced by insertDeterministicReaction(), partitionSystem(), start(), updatePriorityQueue(), and updateTauMu().
|
protected |
Vectors to hold the system state and intermediate results
Referenced by partitionSystem(), CHybridNextReactionRKMethod::rungeKutta(), setupPartition(), and start().
|
protected |
The graph of reactions and their dependent reactions. When a reaction is executed, the propensities for each of its dependents must be updated.
Referenced by setupDependencyGraph().
|
protected |
index of the first metab in CState
Referenced by CHybridNextReactionLSODAMethod::evalF(), and start().
|
protected |
|
protected |
Limit for particle numbers. If a particle number is < StochLimit the corresponding reactions must be simulated stochastically.
Referenced by isValidProblem(), partitionSystem(), setupPartition(), and start().
|
protected |
maximal increase of a particle number in one step.
|
protected |
This is set to maxint - mMaxSteps*mMaxBalance
|
protected |
Max number of doSingleStep() per step()
|
protected |
Vector of relations between metabolites to reactions.
Referenced by partitionSystem(), setupMetab2React(), setupPartition(), and start().
|
protected |
Vector holding information on the status of metabolites. They can have low or high particle numbers.
Referenced by partitionSystem(), and setupPartition().
|
protected |
Dimension of the system. Total number of metabolites.
Referenced by CHybridNextReactionLSODAMethod::evalF(), partitionSystem(), CHybridNextReactionRKMethod::rungeKutta(), setupPartition(), start(), and CHybridNextReactionRKMethod::start().
|
protected |
The system gets repartitioned after this number of elementary steps.
Referenced by doSingleStep(), and start().
|
protected |
Referenced by setupMetab2React(), and start().
|
protected |
The set of putative stochastic (!) reactions and associated times at which each reaction occurs. This is represented as a priority queue, sorted by the reaction time. This heap changes dynamically as stochastic reactions become deterministic (delete this reaction from the queue) or vice versa (insert a new reaction into the queue).
Referenced by doSingleStep(), getStochTimeAndIndex(), partitionSystem(), setupPriorityQueue(), updatePriorityQueue(), and updateTauMu().
|
protected |
The random number generator.
Referenced by generateReactionTime(), and start().
|
protected |
The random seed to use.
Referenced by start().
|
protected |
Referenced by calculateDerivative(), and start().
|
protected |
Vector to hold information about how many metabolites of a reaction have low particle numbers. If no metabolite of one reaction has low particle numbers this reaction will be simulated det.
Referenced by insertDeterministicReaction(), partitionSystem(), removeDeterministicReaction(), setupPartition(), setupPriorityQueue(), and updatePriorityQueue().
|
protected |
A pointer to the reactions of the model.
Referenced by calculateDerivative(), doSingleStep(), partitionSystem(), setupDependencyGraph(), setupMetab2React(), setupPartition(), setupPriorityQueue(), start(), and updatePriorityQueue().
|
protected |
Referenced by calculateDerivative(), and start().
|
protected |
Number of elementary steps after the last partitioning.
Referenced by doSingleStep(), and start().
|
protected |
A vector containing the update sequence required to update all propensity values.
Referenced by setupDependencyGraph(), start(), and updatePriorityQueue().
|
protected |
Referenced by isValidProblem(), partitionSystem(), setupPartition(), and start().
|
protected |
Specifies if the mRandomSeed should be used. otherwise a randomly chosen seed is used.
Referenced by start().