COPASI API
4.40.278
|
#include <CHybridMethodODE45.h>
Classes | |
struct | Data |
Public Member Functions | |
CHybridMethodODE45 (const CDataContainer *pParent, const CTaskEnum::Method &methodType=CTaskEnum::Method::hybridODE45, const CTaskEnum::Task &taskType=CTaskEnum::Task::timeCourse) | |
CHybridMethodODE45 (const CHybridMethodODE45 &src, const CDataContainer *pParent) | |
virtual bool | elevateChildren () |
virtual bool | isValidProblem (const CCopasiProblem *pProblem) |
virtual void | start () |
virtual void | stateChange (const CMath::StateChange &change) |
virtual Status | step (const double &deltaT, const bool &final=false) |
~CHybridMethodODE45 () | |
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) |
~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 | IntergrationType { DETERMINISTIC , HYBRID } |
enum | PartitioningStrategyType { AllDeterministic = 0 , UserSpecified , AllStochastic } |
enum | RootMasking { NONE = 0 , ALL , DISCRETE } |
Protected Member Functions | |
C_INT32 | checkModel (CModel *model) |
bool | checkRoots () |
CHybridMethodODE45 () | |
void | determineIntegrationType () |
C_FLOAT64 | doSingleStep (C_FLOAT64 endTime) |
void | evalF (const C_FLOAT64 *t, const C_FLOAT64 *y, C_FLOAT64 *ydot) |
void | evalR (const C_FLOAT64 *t, const C_FLOAT64 *y, const size_t *nr, C_FLOAT64 *r) |
void | fireReaction () |
CMathReaction * | getReactionToFire () |
void | integrateDeterministicPart (C_FLOAT64 ds) |
void | partitionSystem () |
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 void | EvalF (const size_t *n, const C_FLOAT64 *t, const C_FLOAT64 *y, C_FLOAT64 *ydot) |
static void | EvalR (const size_t *n, const C_FLOAT64 *t, const C_FLOAT64 *y, const size_t *nr, C_FLOAT64 *r) |
Protected Attributes | |
RootMasking | mRootMasking |
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 | |
static std::string | PartitioningStrategy [] |
Static Protected Attributes inherited from CTrajectoryMethod | |
static const bool | ReducedModel |
Private Member Functions | |
void | createRootMask () |
void | destroyRootMask () |
void | initializeParameter () |
void | maskRoots (CVectorCore< C_FLOAT64 > &rootValues) |
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 |
A class to record whether a metab is slow or fast
fastReactions | is applied to store which reactions this metab participates |
flag,if | set is empty -> false, else, -> true |
|
protected |
|
protected |
|
protected |
|
protected |
Default Constructor
CHybridMethodODE45::CHybridMethodODE45 | ( | const CDataContainer * | pParent, |
const CTaskEnum::Method & | methodType = CTaskEnum::Method::hybridODE45 , |
||
const CTaskEnum::Task & | taskType = CTaskEnum::Task::timeCourse |
||
) |
Specific constructor
const | CDataContainer * pParent |
const | CTaskEnum::Method & methodType (default: hybridODE45) |
const | CTaskEnum::Task & taskType (default: timeCourse) |
Default constructor.
References CHybridMethodODE45::Data::dim, initializeParameter(), mData, and CHybridMethodODE45::Data::pMethod.
CHybridMethodODE45::CHybridMethodODE45 | ( | const CHybridMethodODE45 & | src, |
const CDataContainer * | pParent | ||
) |
Copy constructor
const | CHybridMethodODE45 & src |
const | CDataContainer * pParent (default: NULL) |
Copy Constructor
References CHybridMethodODE45::Data::dim, initializeParameter(), mData, and CHybridMethodODE45::Data::pMethod.
CHybridMethodODE45::~CHybridMethodODE45 | ( | ) |
Destructor.
References CVectorCore< CType >::array(), and CTrajectoryMethod::mRootsFound.
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 |
Check whether a root has been found
References CVectorCore< CType >::array(), C_FLOAT64, C_INT, CMathContainer::getRootIsDiscrete(), CMathContainer::getRootIsTimeDependent(), CCopasiMethod::mpContainer, CTrajectoryMethod::mRootsFound, mRootsNonZero, mRootValuesLeft, mRootValuesRight, CMath::NoToggle, CVectorCore< CType >::size(), CMath::ToggleBoth, CMath::ToggleEquality, and CMath::ToggleInequality.
Referenced by fireReaction().
|
private |
References ALL, CVectorCore< CType >::array(), C_FLOAT64, CMathContainer::calculateRootDerivatives(), CMathContainer::getRoots(), min, CCopasiMethod::mpContainer, mRootMask, mRootMasking, CTrajectoryMethod::mRootsFound, CVector< CType >::resize(), CVectorCore< CType >::size(), and CMathContainer::updateRootValues().
Referenced by integrateDeterministicPart().
|
private |
References mRootMask, mRootMasking, NONE, and CVector< CType >::resize().
Referenced by fireReaction(), integrateDeterministicPart(), and stateChange().
|
protected |
Setup mMethod, switching between Deterministic Method and Hybrid Method
References DETERMINISTIC, HYBRID, mHasStoiReaction, and mIntegrationType.
Referenced by start().
Simulates the system over the next interval of time. The current time and the end time of the current step() are given as arguments.
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.
endTime | A C_FLOAT64 specifying the endTime of the current step() |
References C_FLOAT64, CRungeKutta::ERROR, fireReaction(), integrateDeterministicPart(), mEventProcessing, mFireReaction, CTrajectoryMethod::mpContainerStateTime, and mRKMethodStatus.
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 |
This evaluates the derivatives for the complete model
Derivative Calculation Function
References CMathContainer::applyUpdateSequence(), CVectorCore< CType >::array(), C_FLOAT64, CHybridMethodODE45::Data::dim, HYBRID, mAmuPointers, mContainerFluxes, mCountContainerVariables, mCountReactionSpecies, mData, mFirstReactionSpeciesIndex, mFluxPointers, mIntegrationType, CCopasiMethod::mpContainer, CTrajectoryMethod::mpContainerStateTime, mPropensitiesUpdateSequence, mpYdot, mSavedFluxes, mSpeciesRateUpdateSequence, CVectorCore< CType >::size(), and CMathContainer::updateSimulatedValues().
Referenced by EvalF().
|
staticprotected |
Dummy Function for calculating derivative of ODE systems
Dummy f function for calculating derivative of y
References evalF(), and CHybridMethodODE45::Data::pMethod.
Referenced by integrateDeterministicPart().
|
protected |
This evaluates the roots value of the system
Dummy Function for calculating roots value
References C_FLOAT64, CHybridMethodODE45::Data::dim, CMathContainer::getRoots(), HYBRID, CVectorCore< CType >::initialize(), mA0, mAmuPointers, maskRoots(), mCountContainerVariables, mData, mIntegrationType, CCopasiMethod::mpContainer, CTrajectoryMethod::mpContainerStateTime, mRootMasking, NONE, CVectorCore< CType >::size(), and CMathContainer::updateRootValues().
Referenced by EvalR().
|
staticprotected |
Dummy Function for calculating roots value
Dummy f function for calculating roots value
References evalR(), and CHybridMethodODE45::Data::pMethod.
Referenced by integrateDeterministicPart().
|
protected |
Fire slow reaction and update populations and propensities when Hybrid Method is used
References checkRoots(), destroyRootMask(), CMathReaction::fire(), CRandom::getRandomOO(), getReactionToFire(), mA0, mAmuVariables, mEventProcessing, mFireReaction, CCopasiMethod::mpContainer, mpRandomGenerator, mRKMethodStatus, mRootValuesLeft, mRootValuesRight, CRungeKutta::RESTART, CMathContainer::updateRootValues(), and CMathContainer::updateSimulatedValues().
Referenced by doSingleStep().
|
protected |
Function return a reaction index which is a slow reaction firing at the event time.
Calculate which slow reaction fires
References CVectorCore< CType >::array(), C_FLOAT64, CRandom::getRandomOO(), mA0, mAmuVariables, mpRandomGenerator, mSlowReactions, and CVectorCore< CType >::size().
Referenced by fireReaction().
|
private |
Intialize the method parameter
Initialize the method parameter
References CCopasiParameterGroup::addParameter(), CCopasiParameterGroup::assertGroup(), CCopasiParameterGroup::assertParameter(), CCopasiParameter::BOOL, C_FLOAT64, C_INT32, CCopasiParameter::CN, CCopasiParameterGroup::getElementTemplates(), CCopasiParameterGroup::getParameter(), mpAbsoluteTolerance, mpFastReactions, mpMaxInternalSteps, mpPartitioningStrategy, mpRandomSeed, mpRelativeTolerance, mpUseRandomSeed, PartitioningStrategy, RANDOM_SEED, CCopasiParameter::setValidValues(), CCopasiParameter::STRING, CCopasiParameter::UDOUBLE, CCopasiParameter::UINT, and USE_RANDOM_SEED.
Referenced by CHybridMethodODE45(), and elevateChildren().
|
protected |
Integrates the deterministic reactions of the system over the specified time interval.
ds | A C_FLOAT64 specifying the stepsize. |
References ALL, CVectorCore< CType >::array(), C_FLOAT64, C_INT, CRungeKutta::CONTINUE, createRootMask(), destroyRootMask(), CHybridMethodODE45::Data::dim, DISCRETE, CRungeKutta::ERROR, EvalF(), EvalR(), CCopasiMessage::EXCEPTION, fatalError, CTrajectoryProblem::getAutomaticStepSize(), CRungeKutta::getErrorMesssage(), CRungeKutta::INITIALIZE, max, CTrajectoryMethod::mContainerState, mCountContainerVariables, MCTrajectoryMethod, mData, mDiscreteRoots, mEventProcessing, mFireReaction, mLastSuccessState, mMethodRootsFound, mODE45, mpAbsoluteTolerance, CCopasiMethod::mpContainer, CTrajectoryMethod::mpContainerStateTime, mpHybridRoot, mpMaxInternalSteps, CTrajectoryMethod::mpProblem, mpRelativeTolerance, mRKMethodStatus, mRootCounter, mRootMask, mRootMasking, CTrajectoryMethod::mRootsFound, mY, NONE, CRungeKutta::RESTART, CRungeKutta::ROOTFOUND, CVectorCore< CType >::size(), and CMathContainer::updateSimulatedValues().
Referenced by doSingleStep().
|
virtual |
Check if the method is suitable for this problem
Reimplemented from CTrajectoryMethod.
References CCopasiMessage::ERROR, CTrajectoryProblem::getDuration(), CTrajectoryMethod::isValidProblem(), and MCTrajectoryMethod.
|
private |
References CVectorCore< CType >::array(), C_FLOAT64, mRootMask, and CVectorCore< CType >::size().
Referenced by evalR().
|
protected |
Check whether a function is fast or not.
References AllDeterministic, AllStochastic, CVectorCore< CType >::array(), CCopasiParameterGroup::beginIndex(), C_FLOAT64, CCore::Default, CMath::Dependent, CCopasiParameterGroup::endIndex(), fatalError, CMathContainer::getFluxes(), CMathContainer::getMathReaction(), CDataObject::getObjectFromCN(), CMathReaction::getPropensityObject(), CMathContainer::getReactions(), CMathObject::getSimulationType(), CMathContainer::getSimulationUpToDateObjects(), CMathContainer::getTransientDependencies(), CMathDependencyGraph::getUpdateSequence(), CMathObject::getValuePointer(), CMathObject::getValueType(), CMath::Independent, CVectorCore< CType >::initialize(), mAmuPointers, mContainerFluxes, mFluxPointers, mHasDetermReaction, mHasStoiReaction, CCopasiMethod::mpContainer, mpFastReactions, mpPartitioningStrategy, mPropensitiesUpdateSequence, mSlowReactions, mSpeciesRateUpdateSequence, PartitioningStrategy, CMath::Rate, CVector< CType >::resize(), CVectorCore< CType >::size(), CCopasiParameterGroup::size(), and UserSpecified.
Referenced by start().
|
virtual |
This instructs the method to prepare for integration starting with the initialState given.
This instructs the method to prepare for integration starting with the initialState given.
const CState * | initialState |
Reimplemented from CTrajectoryMethod.
References CVectorCore< CType >::array(), C_INT, determineIntegrationType(), CHybridMethodODE45::Data::dim, CMathContainer::getCountDependentSpecies(), CMathContainer::getCountFixedEventTargets(), CMathContainer::getCountIndependentSpecies(), CMathContainer::getCountODEs(), CMathContainer::getRandomGenerator(), CRandom::getRandomOO(), CMathContainer::getRate(), CMathContainer::getRootIsDiscrete(), CMathContainer::getRoots(), HYBRID, CVectorCore< CType >::initialize(), CRandom::initialize(), CRungeKutta::INITIALIZE, mA0, mAmuVariables, CTrajectoryMethod::mContainerState, mCountContainerVariables, mCountReactionSpecies, mData, mDiscreteRoots, mFirstReactionSpeciesIndex, mIntegrationType, mLastSuccessState, mMaxStepsReached, mMethodRootsFound, CCopasiMethod::mpContainer, CTrajectoryMethod::mpContainerStateTime, mpHybridRoot, mpRandomGenerator, mpRandomSeed, mpUseRandomSeed, mpYdot, mRKMethodStatus, mRootCounter, mRootMasking, CTrajectoryMethod::mRootsFound, mRootsNonZero, mRootValuesLeft, mRootValuesRight, mSlowReactions, mTargetTime, mY, NONE, partitionSystem(), CVector< CType >::resize(), CVectorCore< CType >::size(), and CTrajectoryMethod::start().
|
virtual |
Inform the trajectory method that the state has changed outside its control
const | CMath::StateChange & change |
Reimplemented from CTrajectoryMethod.
References CMath::ContinuousSimulation, destroyRootMask(), CMath::EventSimulation, CRungeKutta::INITIALIZE, mRKMethodStatus, CRungeKutta::RESTART, and CMath::State.
|
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) |
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.
References C_FLOAT64, doSingleStep(), CRungeKutta::ERROR, CTrajectoryMethod::FAILURE, CTrajectoryProblem::getAutomaticStepSize(), CTrajectoryMethod::mContainerState, mEventProcessing, min, mLastSuccessState, mMaxStepsReached, CTrajectoryMethod::mpContainerStateTime, mpMaxInternalSteps, CTrajectoryMethod::mpProblem, mRKMethodStatus, mRootCounter, mTargetTime, CTrajectoryMethod::NORMAL, CTrajectoryMethod::ROOT, and CCopasiMessage::WARNING.
|
private |
Referenced by evalR(), fireReaction(), getReactionToFire(), and start().
Referenced by evalF(), evalR(), and partitionSystem().
|
private |
The variables handling the integrated propensities of the stochastic reactions.
Referenced by fireReaction(), getReactionToFire(), and start().
|
private |
Referenced by evalF(), and partitionSystem().
|
private |
Referenced by evalF(), evalR(), integrateDeterministicPart(), and start().
|
private |
mData.dim is the dimension of the ODE system. mData.pMethod contains CLsodaMethod * this to be used in the static method EvalF
Referenced by CHybridMethodODE45(), evalF(), evalR(), integrateDeterministicPart(), and start().
|
private |
A which indicates whether roots change only discretely.
Referenced by integrateDeterministicPart(), and start().
|
private |
Status of Root and Slow Event
Referenced by doSingleStep(), fireReaction(), integrateDeterministicPart(), and step().
|
private |
Referenced by doSingleStep(), fireReaction(), and integrateDeterministicPart().
Referenced by evalF(), and partitionSystem().
|
private |
Referenced by partitionSystem().
|
private |
Bool value
Referenced by determineIntegrationType(), and partitionSystem().
|
private |
An Integer showes the method now CHybridMethod used 0 == Stochastic 1 == Deterministic 2 == Hybrid
Referenced by determineIntegrationType(), evalF(), evalR(), and start().
A pointer to the current state in complete model view.
Referenced by integrateDeterministicPart(), start(), and step().
|
private |
maximal increase of a particle number in one step.
Referenced by integrateDeterministicPart(), and start().
|
private |
mODE45
Referenced by integrateDeterministicPart().
|
private |
Record whether ODE solver has been initialized
|
private |
Output counter.
|
private |
File output stream to write data.
|
private |
Output filename.
|
private |
Referenced by initializeParameter(), and integrateDeterministicPart().
|
private |
Referenced by initializeParameter(), and partitionSystem().
|
private |
Referenced by integrateDeterministicPart(), and start().
|
private |
Referenced by initializeParameter(), integrateDeterministicPart(), and step().
|
private |
Referenced by initializeParameter(), and partitionSystem().
|
private |
The random number generator.
Referenced by fireReaction(), getReactionToFire(), and start().
|
private |
Referenced by initializeParameter(), and start().
|
private |
Referenced by initializeParameter(), and integrateDeterministicPart().
|
private |
Referenced by evalF(), and partitionSystem().
|
private |
Referenced by initializeParameter(), and start().
|
private |
Referenced by doSingleStep(), fireReaction(), integrateDeterministicPart(), start(), stateChange(), and step().
|
private |
Max number of doSingleStep() per step()
Referenced by integrateDeterministicPart(), start(), and step().
|
private |
A mask which hides all roots being constant and zero.
Referenced by createRootMask(), destroyRootMask(), integrateDeterministicPart(), and maskRoots().
|
protected |
Root counter to determine whether the internal step limit is exceeded. A Boolean flag indicating whether we should try masking roots
Referenced by createRootMask(), destroyRootMask(), evalR(), integrateDeterministicPart(), and start().
2 Vector for storing root value
Referenced by checkRoots(), and start().
Value of Roots before a reaction event
Referenced by checkRoots(), fireReaction(), and start().
|
private |
Value of Roots after a reaction event
Referenced by checkRoots(), fireReaction(), and start().
|
private |
Vector containing pointers to the slow of the model.
Referenced by getReactionToFire(), partitionSystem(), and start().
|
private |
Referenced by evalF(), and partitionSystem().
Vector of integration variables
Referenced by integrateDeterministicPart(), and start().
|
staticprotected |
This class implements an hybrid algorithm for the simulation of a biochemical system over time.
File name: CHybridMethodODE45.cpp Author: Shuo Wang Email: shuow ang. learn er@g mail. com
Last change: 11, Aug 2014
Referenced by initializeParameter(), and partitionSystem().