COPASI API
4.16.103
|
#include <CStochDirectMethod.h>
Classes | |
class | CReactionDependencies |
Public Member Functions | |
CStochDirectMethod (const CStochDirectMethod &src, const CCopasiContainer *pParent=NULL) | |
virtual bool | elevateChildren () |
virtual bool | isValidProblem (const CCopasiProblem *pProblem) |
virtual void | start (const CState *initialState) |
virtual Status | step (const double &deltaT) |
~CStochDirectMethod () | |
![]() | |
CTrajectoryMethod (const CTrajectoryMethod &src, const CCopasiContainer *pParent=NULL) | |
const CVector< C_INT > & | getRoots () const |
void | setCurrentState (CState *currentState) |
void | setProblem (CTrajectoryProblem *problem) |
virtual void | stateChanged () |
~CTrajectoryMethod () | |
![]() | |
CCopasiMethod (const CCopasiMethod &src, const CCopasiContainer *pParent=NULL) | |
const CCopasiMethod::SubType & | getSubType () const |
const CCopasiTask::Type & | getType () const |
virtual void | load (CReadConfig &configBuffer, CReadConfig::Mode mode=CReadConfig::SEARCH) |
virtual void | print (std::ostream *ostream) const |
virtual void | printResult (std::ostream *ostream) const |
virtual bool | setCallBack (CProcessReport *pCallBack) |
virtual | ~CCopasiMethod () |
![]() | |
bool | addGroup (const std::string &name) |
bool | addParameter (const CCopasiParameter ¶meter) |
bool | addParameter (const std::string &name, const CCopasiParameter::Type type) |
template<class CType > | |
bool | addParameter (const std::string &name, const CCopasiParameter::Type type, const CType &value) |
void | addParameter (CCopasiParameter *pParameter) |
CCopasiParameterGroup * | assertGroup (const std::string &name) |
template<class CType > | |
CCopasiParameter * | assertParameter (const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue) |
index_iterator | beginIndex () const |
name_iterator | beginName () const |
CCopasiParameterGroup (const CCopasiParameterGroup &src, const CCopasiContainer *pParent=NULL) | |
CCopasiParameterGroup (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &objectType="ParameterGroup") | |
void | clear () |
index_iterator | endIndex () const |
name_iterator | endName () const |
CCopasiParameterGroup * | getGroup (const std::string &name) |
const CCopasiParameterGroup * | getGroup (const std::string &name) const |
CCopasiParameterGroup * | getGroup (const size_t &index) |
const CCopasiParameterGroup * | getGroup (const size_t &index) const |
size_t | getIndex (const std::string &name) const |
std::string | getKey (const std::string &name) const |
std::string | getKey (const size_t &index) const |
virtual const std::string & | getName (const size_t &index) const |
virtual const CObjectInterface * | getObject (const CCopasiObjectName &cn) const |
CCopasiParameter * | getParameter (const std::string &name) |
const CCopasiParameter * | getParameter (const std::string &name) const |
CCopasiParameter * | getParameter (const size_t &index) |
const CCopasiParameter * | getParameter (const size_t &index) const |
CCopasiParameter::Type | getType (const std::string &name) const |
CCopasiParameter::Type | getType (const size_t &index) const |
std::string | getUniqueParameterName (const CCopasiParameter *pParameter) const |
const CCopasiParameter::Value & | getValue (const std::string &name) const |
const CCopasiParameter::Value & | getValue (const size_t &index) const |
CCopasiParameter::Value & | getValue (const std::string &name) |
CCopasiParameter::Value & | getValue (const size_t &index) |
CCopasiParameterGroup & | operator= (const CCopasiParameterGroup &rhs) |
bool | removeParameter (const std::string &name) |
bool | removeParameter (const size_t &index) |
template<class CType > | |
bool | setValue (const std::string &name, const CType &value) |
template<class CType > | |
bool | setValue (const size_t &index, const CType &value) |
size_t | size () const |
bool | swap (const size_t &iFrom, const size_t &iTo) |
bool | swap (index_iterator &from, index_iterator &to) |
virtual | ~CCopasiParameterGroup () |
![]() | |
CCopasiParameter (const CCopasiParameter &src, const CCopasiContainer *pParent=NULL) | |
CCopasiParameter (const std::string &name, const Type &type, const void *pValue=NULL, const CCopasiContainer *pParent=NULL, const std::string &objectType="Parameter") | |
virtual CCopasiObjectName | getCN () const |
virtual const std::string & | getKey () const |
virtual std::string | getObjectDisplayName (bool regular=true, bool richtext=false) const |
const CCopasiParameter::Type & | getType () const |
const Value & | getValue () const |
Value & | getValue () |
virtual void * | getValuePointer () const |
CCopasiObject * | getValueReference () const |
bool | isValidValue (const C_FLOAT64 &value) const |
bool | isValidValue (const C_INT32 &value) const |
bool | isValidValue (const unsigned C_INT32 &value) const |
bool | isValidValue (const bool &value) const |
bool | isValidValue (const std::string &value) const |
bool | isValidValue (const CCopasiObjectName &value) const |
bool | isValidValue (const std::vector< CCopasiParameter * > &value) const |
CCopasiParameter & | operator= (const CCopasiParameter &rhs) |
template<class CType > | |
bool | setValue (const CType &value) |
bool | setValue (const std::vector< CCopasiParameter * > &value) |
virtual | ~CCopasiParameter () |
![]() | |
virtual bool | add (CCopasiObject *pObject, const bool &adopt=true) |
CCopasiContainer (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &type="CN", const unsigned C_INT32 &flag=CCopasiObject::Container) | |
CCopasiContainer (const CCopasiContainer &src, const CCopasiContainer *pParent=NULL) | |
virtual std::string | getChildObjectUnits (const CCopasiObject *pObject) const |
virtual const objectMap & | getObjects () const |
virtual std::string | getUnits () const |
virtual const CCopasiObject * | getValueObject () const |
virtual bool | remove (CCopasiObject *pObject) |
virtual | ~CCopasiContainer () |
![]() | |
void | addDirectDependency (const CCopasiObject *pObject) |
CCopasiObject (const CCopasiObject &src, const CCopasiContainer *pParent=NULL) | |
void | clearDirectDependencies () |
void | clearRefresh () |
bool | dependsOn (DataObjectSet candidates, const DataObjectSet &context=DataObjectSet()) const |
void | getAllDependencies (DataObjectSet &dependencies, const DataObjectSet &context) const |
virtual const DataObjectSet & | getDirectDependencies (const DataObjectSet &context=DataObjectSet()) const |
CCopasiContainer * | getObjectAncestor (const std::string &type) const |
CCopasiDataModel * | getObjectDataModel () |
const CCopasiDataModel * | getObjectDataModel () const |
const std::string & | getObjectName () const |
CCopasiContainer * | getObjectParent () const |
const std::string & | getObjectType () const |
virtual const CObjectInterface::ObjectSet & | getPrerequisites () const |
virtual Refresh * | getRefresh () const |
UpdateMethod * | getUpdateMethod () const |
bool | hasCircularDependencies (DataObjectSet &candidates, DataObjectSet &verified, const DataObjectSet &context) const |
bool | hasUpdateMethod () const |
bool | isArray () const |
bool | isContainer () const |
bool | isDataModel () const |
bool | isMatrix () const |
bool | isNameVector () const |
bool | isNonUniqueName () const |
virtual bool | isPrerequisiteForContext (const CObjectInterface *pObject, const CMath::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const |
bool | isReference () const |
bool | isRoot () const |
bool | isSeparator () const |
bool | isStaticString () const |
bool | isValueBool () const |
bool | isValueDbl () const |
bool | isValueInt () const |
bool | isValueInt64 () const |
bool | isValueString () const |
bool | isVector () const |
virtual bool | mustBeDeleted (const DataObjectSet &deletedObjects) const |
void | removeDirectDependency (const CCopasiObject *pObject) |
void | setDirectDependencies (const DataObjectSet &directDependencies) |
bool | setObjectName (const std::string &name) |
virtual bool | setObjectParent (const CCopasiContainer *pParent) |
void | setObjectValue (const C_FLOAT64 &value) |
void | setObjectValue (const C_INT32 &value) |
void | setObjectValue (const bool &value) |
template<class CType > | |
void | setRefresh (CType *pType, void(CType::*method)(void)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const C_FLOAT64 &)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const C_INT32 &)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const bool &)) |
virtual | ~CCopasiObject () |
![]() | |
CObjectInterface () | |
virtual | ~CObjectInterface () |
Protected Member Functions | |
void | calculateAmu (const size_t &index) |
CStochDirectMethod (const CCopasiContainer *pParent=NULL) | |
C_FLOAT64 | doSingleStep (const C_FLOAT64 &curTime, const C_FLOAT64 &endTime) |
![]() | |
CTrajectoryMethod (const CCopasiMethod::SubType &subType, const CCopasiContainer *pParent=NULL) | |
![]() | |
CCopasiMethod (const CCopasiTask::Type &taskType, const SubType &subType, const CCopasiContainer *pParent=NULL) | |
![]() | |
CCopasiParameterGroup () | |
![]() | |
template<class CType > | |
CCopasiObject * | addMatrixReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
template<class CType > | |
CCopasiObject * | addObjectReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
template<class CType > | |
CCopasiObject * | addVectorReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
void | initObjects () |
![]() | |
CCopasiObject () | |
CCopasiObject (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &type="CN", const unsigned C_INT32 &flag=0) | |
Protected Attributes | |
C_FLOAT64 | mA0 |
CVector< C_FLOAT64 > | mAmu |
bool | mDoCorrection |
unsigned C_INT32 | mMaxSteps |
bool | mMaxStepsReached |
CState | mMethodState |
size_t | mNextReactionIndex |
C_FLOAT64 | mNextReactionTime |
size_t | mNumReactions |
CModel * | mpModel |
CRandom * | mpRandomGenerator |
std::vector < CReactionDependencies > | mReactionDependencies |
![]() | |
CState * | mpCurrentState |
CTrajectoryProblem * | mpProblem |
CVector< C_INT > | mRoots |
![]() | |
CProcessReport * | mpCallBack |
![]() | |
std::string | mKey |
CCopasiObject * | mpValueReference |
size_t | mSize |
Value | mValue |
![]() | |
objectMap | mObjects |
Private Member Functions | |
void | initializeParameter () |
Friends | |
CTrajectoryMethod * | CTrajectoryMethod::createMethod (CCopasiMethod::SubType subType) |
Definition at line 39 of file CStochDirectMethod.h.
|
protected |
Default constructor.
const | CCopasiContainer * pParent (default: NULL) |
Definition at line 86 of file CStochDirectMethod.cpp.
References initializeParameter().
CStochDirectMethod::CStochDirectMethod | ( | const CStochDirectMethod & | src, |
const CCopasiContainer * | pParent = NULL |
||
) |
Copy constructor.
const | CStochDirectMethod & src, |
const | CCopasiContainer * pParent (Default: NULL) |
Definition at line 104 of file CStochDirectMethod.cpp.
References initializeParameter().
CStochDirectMethod::~CStochDirectMethod | ( | ) |
Destructor.
Definition at line 123 of file CStochDirectMethod.cpp.
References mpRandomGenerator, and pdelete.
|
protected |
Calculate the propensity of the indexed reaction
const | size_t & index |
Definition at line 522 of file CStochDirectMethod.cpp.
References CVectorCore< CType >::array(), C_FLOAT64, mAmu, mDoCorrection, CStochDirectMethod::CReactionDependencies::mMethodSubstrates, CStochDirectMethod::CReactionDependencies::mModelSubstrates, CStochDirectMethod::CReactionDependencies::mpParticleFlux, mReactionDependencies, CStochDirectMethod::CReactionDependencies::mSubstrateMultiplier, and CVectorCore< CType >::size().
Referenced by doSingleStep(), and start().
|
protected |
Fire the next reaction if it fire before the endTime
const | C_FLOAT64 & curTime |
const | C_FLOAT64 & endTime |
Definition at line 429 of file CStochDirectMethod.cpp.
References CVectorCore< CType >::array(), C_FLOAT64, C_INVALID_INDEX, calculateAmu(), CCopasiMessage::EXCEPTION, CRandom::getRandomOO(), mA0, mAmu, CStochDirectMethod::CReactionDependencies::mCalculations, MCTrajectoryMethod, CStochDirectMethod::CReactionDependencies::mDependentReactions, CStochDirectMethod::CReactionDependencies::mMethodSpecies, CStochDirectMethod::CReactionDependencies::mModelSpecies, mNextReactionIndex, mNextReactionTime, mNumReactions, mpModel, mpRandomGenerator, mReactionDependencies, CStochDirectMethod::CReactionDependencies::mSpeciesMultiplier, CModel::setTime(), and CVectorCore< CType >::size().
Referenced by step().
|
virtual |
This methods must be called to elevate subgroups to derived objects. The default implementation does nothing.
Reimplemented from CCopasiParameterGroup.
Definition at line 135 of file CStochDirectMethod.cpp.
References initializeParameter().
|
private |
Initialize the method parameter
Definition at line 128 of file CStochDirectMethod.cpp.
References CCopasiParameterGroup::assertParameter(), CCopasiParameter::BOOL, C_INT32, CCopasiParameter::INT, and CCopasiParameter::UINT.
Referenced by CStochDirectMethod(), and elevateChildren().
|
virtual |
Check if the method is suitable for this problem
Reimplemented from CTrajectoryMethod.
Definition at line 351 of file CStochDirectMethod.cpp.
References CStateTemplate::beginIndependent(), CStateTemplate::endIndependent(), CCopasiMessage::ERROR, CTrajectoryProblem::getDuration(), CModel::getEvents(), CCopasiProblem::getModel(), CModel::getStateTemplate(), CModel::getTotSteps(), CCopasiParameter::getValue(), CTrajectoryMethod::isValidProblem(), MCTrajectoryMethod, CModelEntity::ODE, CCopasiParameter::Value::pINT, CCopasiVector< T >::size(), and CModel::suitableForStochasticSimulation().
This instructs the method to prepare for integration starting with the initialState given.
const CState * | initialState |
Reimplemented from CTrajectoryMethod.
Definition at line 166 of file CStochDirectMethod.cpp.
References CCopasiVector< T >::begin(), CStateTemplate::beginIndependent(), CState::beginIndependent(), CCopasiObject::buildUpdateSequence(), C_FLOAT64, C_INT32, C_INVALID_INDEX, calculateAmu(), CModel::deterministic, CCopasiVector< T >::end(), CStateTemplate::endFixed(), CStateTemplate::getIndex(), CCopasiProblem::getModel(), CModel::getModelType(), CModel::getReactions(), CModel::getState(), CModel::getStateTemplate(), CModelEntity::getStatus(), CState::getTime(), CCopasiParameter::getValue(), CCopasiObject::getValuePointer(), CModelEntity::getValueReference(), CRandom::initialize(), mA0, mAmu, mDoCorrection, mMaxSteps, mMaxStepsReached, mMethodState, mNextReactionIndex, mNextReactionTime, mNumReactions, CTrajectoryMethod::mpCurrentState, mpModel, CTrajectoryMethod::mpProblem, mpRandomGenerator, mReactionDependencies, CCopasiParameter::Value::pBOOL, CCopasiParameter::Value::pINT, CCopasiParameter::Value::pUINT, CModelEntity::REACTIONS, CVector< CType >::resize(), CModel::setState(), CCopasiVector< T >::size(), and CModel::updateSimulatedValues().
|
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 |
Reimplemented from CTrajectoryMethod.
Definition at line 141 of file CStochDirectMethod.cpp.
References C_FLOAT64, doSingleStep(), CCopasiMessage::EXCEPTION, CCopasiProblem::getModel(), CModel::getState(), CState::getTime(), MCTrajectoryMethod, mMaxSteps, mMethodState, CTrajectoryMethod::mpCurrentState, CTrajectoryMethod::mpProblem, CTrajectoryMethod::NORMAL, and CState::setTime().
|
friend |
|
protected |
Total propensity (sum over mAmu[i])
Definition at line 237 of file CStochDirectMethod.h.
Referenced by doSingleStep(), and start().
A vector of reaction propensities
Definition at line 232 of file CStochDirectMethod.h.
Referenced by calculateAmu(), doSingleStep(), and start().
|
protected |
A boolean flag indicating whether correction for higher order reactions need to be applied
Definition at line 227 of file CStochDirectMethod.h.
Referenced by calculateAmu(), and start().
|
protected |
max number of single stochastic steps to do in one step()
Definition at line 212 of file CStochDirectMethod.h.
|
protected |
A boolean flag indicating whether the maximum steps have been reached. This is used to avoid multiple messages.
Definition at line 253 of file CStochDirectMethod.h.
Referenced by start().
|
protected |
The method internal state which contains particle rounded particle numbers.
Definition at line 242 of file CStochDirectMethod.h.
|
protected |
The index of the next reaction which fires
Definition at line 222 of file CStochDirectMethod.h.
Referenced by doSingleStep(), and start().
|
protected |
The time the next reaction fires
Definition at line 217 of file CStochDirectMethod.h.
Referenced by doSingleStep(), and start().
|
protected |
The particle and reaction numbers
Definition at line 207 of file CStochDirectMethod.h.
Referenced by doSingleStep(), and start().
|
protected |
A pointer to the instance of CModel being used.
Definition at line 202 of file CStochDirectMethod.h.
Referenced by doSingleStep(), and start().
|
protected |
The random number generator
Definition at line 197 of file CStochDirectMethod.h.
Referenced by doSingleStep(), start(), and ~CStochDirectMethod().
|
protected |
A vector containing dependency information to minimize the required updates.
Definition at line 247 of file CStochDirectMethod.h.
Referenced by calculateAmu(), doSingleStep(), and start().