COPASI API
4.40.278
|
#include <CStochMethod.h>
Public Member Functions | |
CStochMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType=CTaskEnum::Method::stochastic, const CTaskEnum::Task &taskType=CTaskEnum::Task::timeCourse) | |
CStochMethod (const CStochMethod &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) |
~CStochMethod () | |
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 Member Functions | |
virtual C_FLOAT64 | doSingleStep (C_FLOAT64 time, C_FLOAT64 endtime)=0 |
size_t | generateReactionIndex () |
C_FLOAT64 | generateReactionTime () |
C_FLOAT64 | generateReactionTime (size_t reaction_index) |
virtual void | initMethod ()=0 |
void | setupDependencyGraph () |
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 | |
CStochMethod () | |
void | initializeParameter () |
Static Private Member Functions | |
static C_INT32 | checkModel (CModel *pmodel) |
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 |
|
private |
Default constructor.
CStochMethod::CStochMethod | ( | const CDataContainer * | pParent, |
const CTaskEnum::Method & | methodType = CTaskEnum::Method::stochastic , |
||
const CTaskEnum::Task & | taskType = CTaskEnum::Task::timeCourse |
||
) |
Specific constructor
const | CDataContainer * pParent |
const | CTaskEnum::Method & methodType (default: stochastic) |
const | CTaskEnum::Task & taskType (default: timeCourse) |
References CRandom::createGenerator(), initializeParameter(), mpRandomGenerator, and CRandom::mt19937.
CStochMethod::CStochMethod | ( | const CStochMethod & | src, |
const CDataContainer * | pParent | ||
) |
Copy constructor.
const | CStochMethod & src, |
const | CDataContainer * pParent (Default: NULL) |
References CRandom::createGenerator(), initializeParameter(), mpRandomGenerator, and CRandom::mt19937.
CStochMethod::~CStochMethod | ( | ) |
Destructor.
This checks if a model is suitable for stochastic simulation. It returns a suggestion which method to use
model | The model to check |
|
protectedpure virtual |
Do one iteration of the simulation
Implemented in CStochNextReactionMethod.
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 |
Generate the index of a putative reaction.
References CVectorCore< CType >::array(), C_FLOAT64, CRandom::getRandomOO(), mA0, mAmu, mNextReactionIndex, mNumReactions, and mpRandomGenerator.
|
protected |
Generate the putative time taken before any reaction takes place
References C_FLOAT64, CRandom::getRandomOO(), mA0, and mpRandomGenerator.
Referenced by CStochNextReactionMethod::setupPriorityQueue(), and CStochNextReactionMethod::updatePriorityQueue().
|
protected |
Generate the putative time taken before a special reaction takes place
References C_FLOAT64, CRandom::getRandomOO(), mAmu, and mpRandomGenerator.
|
private |
Intialize the method parameter
References CCopasiParameterGroup::assertParameter(), CCopasiParameter::BOOL, C_INT32, CCopasiParameterGroup::getParameter(), CCopasiParameter::getValue(), CCopasiParameter::INT, CCopasiParameterGroup::removeParameter(), CCopasiParameterGroup::setValue(), and CCopasiParameter::UINT.
Referenced by CStochMethod(), and elevateChildren().
|
protectedpure virtual |
|
virtual |
Check if the method is suitable for this problem
Reimplemented from CTrajectoryMethod.
References CCopasiMessage::ERROR, CMathContainer::getCountODEs(), CTrajectoryProblem::getDuration(), CMathContainer::getEvents(), CMathContainer::getModel(), CCopasiMethod::getSubType(), CTrajectoryMethod::isValidProblem(), MCTrajectoryMethod, CTaskEnum::MethodName, CCopasiMethod::mpContainer, CVectorCore< CType >::size(), and CModel::suitableForStochasticSimulation().
|
protected |
Set up the dependency graph and the balances
References CDependencyGraph::addDependent(), CVectorCore< CType >::array(), CMathUpdateSequence::begin(), CDependencyGraph::clear(), CMathUpdateSequence::end(), mDG, mNumReactions, mPropensityObjects, mUpdateSequences, CDependencyGraph::resize(), and CVectorCore< CType >::size().
Referenced by start().
|
virtual |
This instructs the method to prepare for integration starting with the initialState given.
Reimplemented from CTrajectoryMethod.
References CVectorCore< CType >::array(), C_FLOAT64, C_INT32, C_INVALID_INDEX, CMathObject::calculateValue(), CMathUpdateSequence::clear(), CCore::Default, CMathReaction::getChangedObjects(), CMathContainer::getCountDependentSpecies(), CMathContainer::getCountFixedEventTargets(), CMathContainer::getCountIndependentSpecies(), CMathContainer::getCountODEs(), CMathContainer::getMathObject(), CMathContainer::getPropensities(), CMathContainer::getRandomGenerator(), CMathContainer::getReactions(), CMathContainer::getTransientDependencies(), CMathDependencyGraph::getUpdateSequence(), CVectorCore< CType >::initialize(), CRandom::initialize(), initMethod(), mA0, mAmu, CTrajectoryMethod::mContainerState, mFirstReactionSpeciesIndex, mMaxSteps, mMaxStepsReached, mNextReactionIndex, mNextReactionTime, mNumReactions, mNumReactionSpecies, CCopasiMethod::mpContainer, CTrajectoryMethod::mpContainerStateTime, mpRandomGenerator, mPropensityObjects, mReactions, mUpdateSequences, setupDependencyGraph(), CVectorCore< CType >::size(), CTrajectoryMethod::start(), and CMathContainer::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 |
const | bool & final (default: false) |
Reimplemented from CTrajectoryMethod.
References C_FLOAT64, doSingleStep(), CCopasiMessage::EXCEPTION, CTrajectoryProblem::getAutomaticStepSize(), MCTrajectoryMethod, mMaxSteps, CTrajectoryMethod::mpContainerStateTime, CTrajectoryMethod::mpProblem, and CTrajectoryMethod::NORMAL.
|
protected |
The sum of the propensities
Referenced by generateReactionIndex(), generateReactionTime(), and start().
|
protected |
A reference to the math container's propensity values
Referenced by generateReactionIndex(), generateReactionTime(), CStochNextReactionMethod::initMethod(), start(), and CStochNextReactionMethod::updatePriorityQueue().
|
protected |
The dependency graph for the next reaction method.
Referenced by setupDependencyGraph(), and CStochNextReactionMethod::updatePriorityQueue().
|
protected |
The Ordered reaction
Referenced by start().
|
protected |
|
protected |
Flag indicating whether the max step are reached.
Referenced by start().
|
protected |
The index of the next reaction which fires
Referenced by generateReactionIndex(), and start().
|
protected |
The time the next reaction fires
Referenced by start().
|
protected |
Referenced by generateReactionIndex(), setupDependencyGraph(), CStochNextReactionMethod::setupPriorityQueue(), and start().
|
protected |
Number of variable metabolites.
Referenced by start().
|
protected |
The random number generator
Referenced by CStochMethod(), generateReactionIndex(), generateReactionTime(), and start().
|
protected |
A reference to the math container's propensity objects
Referenced by setupDependencyGraph(), and start().
|
protected |
A reference to the math container's reactions
Referenced by CStochNextReactionMethod::doSingleStep(), and start().
|
protected |
A vector containing the update sequence required to update all propensity values.
Referenced by CStochNextReactionMethod::doSingleStep(), setupDependencyGraph(), and start().