COPASI API
4.40.278
|
#include <CMathObject.h>
Public Types | |
typedef void(CMathObject::* | calculate) () |
Public Types inherited from CObjectInterface | |
typedef std::vector< const CDataContainer * > | ContainerList |
typedef std::set< const CObjectInterface * > | ObjectSet |
Public Member Functions | |
void | appendDelays (CMath::DelayData &Delays) const |
virtual void | calculateValue () override |
bool | canCalculateValue () const |
CMathObject () | |
CMathObject (const CMathObject &src) | |
bool | compile (CMathContainer &container) |
void | copy (const CMathObject &src, CMathContainer &container) |
virtual CCommonName | getCN () const override |
const C_FLOAT64 * | getCompartmentValue () const |
const CMathObject * | getCorrespondingProperty () const |
virtual const CDataObject * | getDataObject () const override |
const CMath::EntityType & | getEntityType () const |
const CMathExpression * | getExpressionPtr () const |
virtual const CObjectInterface * | getObject (const CCommonName &cn) const override |
virtual std::string | getObjectDisplayName () const override |
virtual const CObjectInterface::ObjectSet & | getPrerequisites () const override |
const CMath::SimulationType & | getSimulationType () const |
virtual const CValidity & | getValidity () const override |
const C_FLOAT64 & | getValue () const |
virtual void * | getValuePointer () const override |
const CMath::ValueType & | getValueType () const |
const bool & | isInitialValue () const |
const bool & | isIntensiveProperty () const |
virtual bool | isPrerequisiteForContext (const CObjectInterface *pObject, const CCore::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const override |
virtual void | print (std::ostream *ostream) const override |
void | relocate (CMathContainer *pContainer, const std::vector< CMath::sRelocate > &relocations) |
void | setDataObject (const CDataObject *pDataObject) |
bool | setExpression (const CExpression &expression, CMathContainer &container) |
bool | setExpression (const std::string &infix, const bool &isBoolean, CMathContainer &container) |
bool | setExpressionPtr (CMathExpression *pMathExpression) |
void | setSimulationType (const CMath::SimulationType &simulationType) |
void | setValueType (const CMath::ValueType &valueType) |
void | validityChanged (const CValidity &changedValidity) override |
virtual | ~CMathObject () |
Public Member Functions inherited from CObjectInterface | |
CObjectInterface () | |
CObjectInterface (const CObjectInterface &src) | |
virtual | ~CObjectInterface () |
Static Public Member Functions | |
static void | initialize (CMathObject *pObject, C_FLOAT64 *pValue, const CMath::ValueType &valueType, const CMath::EntityType &entityType, const CMath::SimulationType &simulationType, const bool &isIntensiveProperty, const bool &isInitialValue, const CDataObject *pDataObject) |
Static Public Member Functions inherited from CObjectInterface | |
static const CDataObject * | DataObject (const CObjectInterface *pInterface) |
static CObjectInterface * | GetObjectFromCN (const ContainerList &listOfContainer, const CCommonName &objName) |
Private Attributes | |
CMath::EntityType | mEntityType |
bool | mIsInitialValue |
bool | mIsIntensiveProperty |
calculate | mpCalculate |
const C_FLOAT64 * | mpCompartmentValue |
const CMathObject * | mpCorrespondingProperty |
const C_FLOAT64 * | mpCorrespondingPropertyValue |
const CDataObject * | mpDataObject |
CMathExpression * | mpExpression |
const C_FLOAT64 * | mpQuantity2NumberValue |
CObjectInterface::ObjectSet | mPrerequisites |
C_FLOAT64 * | mpValue |
CVector< const C_FLOAT64 * > | mRateVector |
CMath::SimulationType | mSimulationType |
CVector< C_FLOAT64 > | mStoichiometryVector |
CMath::ValueType | mValueType |
Static Private Attributes | |
static C_FLOAT64 | InvalidValue = std::numeric_limits< C_FLOAT64 >::quiet_NaN() |
Friends | |
std::ostream & | operator<< (std::ostream &os, const CMathObject &o) |
Additional Inherited Members | |
Protected Attributes inherited from CObjectInterface | |
CValidity | mValidity |
typedef void(CMathObject::* CMathObject::calculate) () |
CMathObject::CMathObject | ( | ) |
Default Constructor
CMathObject::CMathObject | ( | const CMathObject & | src | ) |
Copy constructor
|
virtual |
Destructor
References mpExpression, and pdelete.
void CMathObject::appendDelays | ( | CMath::DelayData & | Delays | ) | const |
Retrieve the number of delays involved in calculating the expression
CMath::DelayData | & Delays |
References CEvaluationNode::buildInfix(), CEvaluationNode::DELAY, CEvaluationTree::getNodeList(), CCopasiNode< _Data >::getSibling(), and mpExpression.
Referenced by CMathContainer::createDelays().
|
private |
References CVectorCore< CType >::begin(), C_FLOAT64, CVectorCore< CType >::end(), max, mpCorrespondingPropertyValue, mpValue, mRateVector, and mStoichiometryVector.
Referenced by compilePropensity().
|
private |
References mpExpression, mpValue, and CMathExpression::value().
Referenced by compileExpression().
|
private |
|
private |
References mpCompartmentValue, mpCorrespondingPropertyValue, mpQuantity2NumberValue, and mpValue.
Referenced by createExtensiveValueExpression().
|
private |
References mpCompartmentValue, mpCorrespondingPropertyValue, mpQuantity2NumberValue, and mpValue.
Referenced by createIntensiveValueExpression().
|
private |
References mpCorrespondingPropertyValue, mpQuantity2NumberValue, and mpValue.
Referenced by compileParticleFlux().
|
private |
References max, mpCorrespondingPropertyValue, and mpValue.
Referenced by compilePropensity().
|
private |
References CVectorCore< CType >::begin(), C_FLOAT64, CVectorCore< CType >::end(), max, mpValue, mRateVector, and mStoichiometryVector.
Referenced by compileTransitionTime().
|
overridevirtual |
Calculate the objects value
Implements CObjectInterface.
References getCN(), CEvaluationTree::getInfix(), mpCalculate, mpExpression, and mpValue.
Referenced by CMathContainer::applyInitialValues(), CTrajectoryMethodDsaLsodar::calculatePropensities(), CTrajAdaptiveSA::doSingleTauLeapStep(), CMathContainer::processRoots(), CStochMethod::start(), CTrajAdaptiveSA::start(), CTrajectoryMethodDsaLsodar::start(), CStochDirectMethod::stateChange(), and CTauLeapMethod::updatePropensities().
bool CMathObject::canCalculateValue | ( | ) | const |
Check whether the object can calculate its value
References mpCalculate.
Referenced by CMathDependencyNode::buildUpdateSequence().
bool CMathObject::compile | ( | CMathContainer & | container | ) |
Compile
CMathContainer | & container |
References CMath::__SIZE, C_FLOAT64, CMath::DependentMass, CMath::Discontinuous, CMath::EventAssignment, CMath::EventDelay, CMath::EventPriority, CMath::EventRoot, CMath::EventRootState, CMath::EventTrigger, CMath::Flux, CMetab::getCompartment(), CMathContainer::getInitialValuePointer(), CMathContainer::getMathObject(), CMathContainer::getQuantity2NumberFactorObject(), CReaction::getScalingCompartment(), CObjectInterface::getValuePointer(), CModelEntity::getValueReference(), CMath::Noise, CMath::ParticleFlux, CMath::ParticleNoise, CMath::Propensity, CMath::Rate, CMath::Reaction, CMath::Species, CMath::TotalMass, CMath::TransitionTime, CMath::Undefined, and CMath::Value.
Referenced by CMathContainer::addAnalysisObject(), and CMathContainer::compileObjects().
|
private |
Compile the dependent mass of a moiety.
CMathContainer | & container |
References CVectorCore< CType >::begin(), C_FLOAT64, calculateExtensiveReactionRate(), CMathExpression::compile(), compileExpression(), CMoiety::getEquation(), CMathContainer::getInitialValuePointer(), CMathContainer::getMathObject(), CDataObject::getObjectParent(), CMoiety::getTotalNumberReference(), getValuePointer(), InvalidValue, mIsInitialValue, mpCalculate, mpDataObject, mpExpression, mpValue, mRateVector, mStoichiometryVector, pointerToString(), CVector< CType >::resize(), and CEvaluationTree::setInfix().
|
private |
Common compile steps after an expression has been created.
References calculateExpression(), CMathExpression::convertToInitialExpression(), CValidity::getFirstWorstIssue(), CMathExpression::getPrerequisites(), CDataObject::getValidity(), CIssue::isError(), mIsInitialValue, mpCalculate, mpExpression, and mPrerequisites.
Referenced by compileDependentMass(), compileFlux(), compileInitialValue(), compileNoise(), compileParticleFlux(), compilePropensity(), compileRate(), compileReactionNoise(), compileReactionParticleNoise(), compileTotalMass(), compileTransitionTime(), compileValue(), createConvertedExpression(), createExtensiveNoiseExpression(), createExtensiveODERateExpression(), createExtensiveReactionNoiseExpression(), createExtensiveReactionRateExpression(), createExtensiveValueExpression(), createIntensiveNoiseExpression(), createIntensiveRateExpression(), createIntensiveValueExpression(), and setExpressionPtr().
|
private |
Compile the reactions flux
CMathContainer | & container |
References CExpression::compile(), compileExpression(), CReaction::ConcentrationPerTime, CReaction::getCallParameters(), CReaction::getEffectiveKineticLawUnitType(), CReaction::getFunction(), CEvaluationTree::getInfix(), CDataObject::getObjectName(), CDataObject::getObjectParent(), InvalidValue, mIsInitialValue, mpCompartmentValue, mpDataObject, mpExpression, mpValue, pdelete, pointerToString(), and CExpression::setInfix().
|
private |
Compile initial value objects
CMathContainer | & container |
References CMath::__SIZE, CMath::Assignment, C_FLOAT64, compileExpression(), CMath::Conversion, createConvertedExpression(), createExtensiveValueExpression(), createIntensiveValueExpression(), CMath::Dependent, CMath::EventTarget, CMath::Fixed, CMetab::getInitialConcentrationReference(), CModelEntity::getInitialExpressionPtr(), CModelEntity::getInitialValueReference(), CMathContainer::getMathObject(), CDataObject::getObjectParent(), CDataObject::getValuePointer(), getValuePointer(), CMath::Independent, InvalidValue, mEntityType, mIsIntensiveProperty, mpCorrespondingProperty, mpCorrespondingPropertyValue, mpDataObject, mpValue, mSimulationType, CMath::ODE, CMath::Species, CMath::Time, and CMath::Undefined.
|
private |
Compile value noise objects
CMathContainer | & container |
References CMath::__SIZE, CMathContainer::addNoiseInputObject(), CMath::Assignment, compileExpression(), CMath::Conversion, createConvertedExpression(), createExtensiveNoiseExpression(), createExtensiveReactionNoiseExpression(), createIntensiveNoiseExpression(), CMath::Dependent, CMath::EventTarget, CMath::Fixed, CModelEntity::getNoiseExpressionPtr(), CDataObject::getObjectParent(), CModelEntity::hasNoise(), CMath::Independent, InvalidValue, mEntityType, mIsIntensiveProperty, mpDataObject, mPrerequisites, mpValue, mSimulationType, CMath::ODE, CMath::Species, CMath::Time, and CMath::Undefined.
|
private |
Compile the reactions particle flux
CMathContainer | & container |
References C_FLOAT64, calculateParticleFlux(), CMathExpression::compile(), compileExpression(), CReaction::getFluxReference(), CMathContainer::getInitialValueObject(), CMathContainer::getMathObject(), CDataObject::getObjectParent(), getValuePointer(), InvalidValue, mIsInitialValue, mpCalculate, mpCorrespondingProperty, mpCorrespondingPropertyValue, mpDataObject, mpExpression, mpQuantity2NumberValue, mpValue, pointerToString(), and CEvaluationTree::setInfix().
|
private |
Compile the reactions propensity
CMathContainer | & container |
References CDataVector< CType >::begin(), CVectorCore< CType >::begin(), C_FLOAT64, calculateCorrectedPropensity(), calculatePropensity(), CMathExpression::compile(), compileExpression(), CModel::deterministic, CDataVector< CType >::end(), CReaction::getChemEq(), CMathContainer::getMathObject(), CMathContainer::getModel(), CModel::getModelType(), CDataObject::getObjectParent(), CReaction::getParticleFluxReference(), CChemEq::getSubstrates(), getValuePointer(), CModelEntity::getValueReference(), InvalidValue, CReaction::isReversible(), mpCalculate, mpCorrespondingProperty, mpCorrespondingPropertyValue, mpDataObject, mpExpression, mpValue, mRateVector, mStoichiometryVector, pointerToString(), CVector< CType >::resize(), and CEvaluationTree::setInfix().
|
private |
Compile value rate objects
CMathContainer | & container |
References CMath::__SIZE, CMath::Assignment, compileExpression(), CMath::Conversion, createConvertedExpression(), createExtensiveODERateExpression(), createExtensiveReactionRateExpression(), createIntensiveRateExpression(), CMath::Dependent, CMath::EventTarget, CMath::Fixed, CModelEntity::getExpressionPtr(), CDataObject::getObjectParent(), CMath::Independent, InvalidValue, mEntityType, mIsIntensiveProperty, mpDataObject, mpValue, mSimulationType, CMath::ODE, CMath::Species, CMath::Time, and CMath::Undefined.
|
private |
Compile the reactions noise
CMathContainer | & container |
References CMathExpression::compile(), compileExpression(), CReaction::ConcentrationPerTime, CReaction::getEffectiveKineticLawUnitType(), CMathContainer::getMathObject(), CDataObject::getObjectParent(), CReaction::getParticleNoiseReference(), CReaction::getScalingCompartment(), getValuePointer(), CReaction::hasNoise(), InvalidValue, mpCompartmentValue, mpDataObject, mpExpression, mpQuantity2NumberValue, mPrerequisites, mpValue, pdelete, pointerToString(), and CEvaluationTree::setInfix().
|
private |
Compile the reactions particle noise
CMathContainer | & container |
References CMathContainer::addNoiseInputObject(), compileExpression(), CReaction::getNoiseExpressionPtr(), CDataObject::getObjectParent(), CReaction::hasNoise(), InvalidValue, mIsInitialValue, mpDataObject, mpExpression, mPrerequisites, mpValue, and pdelete.
|
private |
Compile the total mass of a moiety.
CMathContainer | & container |
References CVectorCore< CType >::begin(), C_FLOAT64, calculateExtensiveReactionRate(), CMathExpression::compile(), compileExpression(), CMoiety::getEquation(), CMathContainer::getInitialValuePointer(), CMathContainer::getMathObject(), CDataObject::getObjectParent(), getValuePointer(), InvalidValue, mIsInitialValue, mpCalculate, mpDataObject, mpExpression, mpValue, mRateVector, mStoichiometryVector, pointerToString(), CVector< CType >::resize(), and CEvaluationTree::setInfix().
|
private |
Compile the transition time of a species.
CMathContainer | & container |
References CVectorCore< CType >::begin(), C_FLOAT64, calculateTransitionTime(), CMathExpression::compile(), compileExpression(), CMathContainer::getMathObject(), CMathContainer::getModel(), CDataObject::getObjectParent(), CModelEntity::getRateReference(), CModel::getReactionsPerSpecies(), CModelEntity::getStatus(), getValuePointer(), CModelEntity::getValueReference(), InvalidValue, mpCalculate, mpDataObject, mpExpression, mpValue, mRateVector, mStoichiometryVector, CModelEntity::ODE, pointerToString(), CModelEntity::REACTIONS, CVector< CType >::resize(), and CEvaluationTree::setInfix().
|
private |
Compile value objects
CMathContainer | & container |
References CMath::__SIZE, CMath::Assignment, C_FLOAT64, compileExpression(), CMath::Conversion, createConvertedExpression(), createExtensiveValueExpression(), createIntensiveValueExpression(), CMath::Dependent, CMath::EventTarget, CMath::Fixed, CMetab::getConcentrationReference(), CMoiety::getDependentNumberReference(), CModelEntity::getExpressionPtr(), CMathContainer::getMathObject(), CMetab::getMoiety(), CDataObject::getObjectParent(), getValuePointer(), CModelEntity::getValueReference(), CMath::Independent, InvalidValue, mEntityType, mIsIntensiveProperty, mpCorrespondingProperty, mpCorrespondingPropertyValue, mpDataObject, mPrerequisites, mpValue, mSimulationType, CMath::ODE, CMath::Species, CMath::Time, and CMath::Undefined.
void CMathObject::copy | ( | const CMathObject & | src, |
CMathContainer & | container | ||
) |
Copy an existing object
const | CMathObject & src |
CMathContainer | & container |
References CMathExpression::copy(), and mpExpression.
|
private |
Create and compile an expression based on the given expression.
const | CExpression * pExpression |
CMathContainer | & container |
References compileExpression(), CMath::Discontinuous, CIssue::Error, CMath::EventAssignment, CMath::EventDelay, CMath::EventPriority, CValidity::getHighestSeverity(), CDataObject::getValidity(), mIsInitialValue, mpExpression, mValueType, and pdelete.
Referenced by compileInitialValue(), compileNoise(), compileRate(), compileValue(), and setExpression().
|
private |
Create and compile an expression for an extensive noise of a species determined by ODEs
const | CMetab * pSpecies |
CMathContainer | & container |
References CExpression::compile(), compileExpression(), CModelEntity::getNoiseExpression(), CModelEntity::hasNoise(), InvalidValue, mIsInitialValue, mpCompartmentValue, mpExpression, mpQuantity2NumberValue, mPrerequisites, mpValue, pdelete, pointerToString(), and CExpression::setInfix().
Referenced by compileNoise().
|
private |
Create and compile an expression for an extensive rate of a species determined by an ODE.
const | CMetab * pSpecies |
CMathContainer | & container |
References CExpression::compile(), compileExpression(), CModelEntity::getExpression(), mIsInitialValue, mpCompartmentValue, mpExpression, mpQuantity2NumberValue, pdelete, pointerToString(), and CExpression::setInfix().
Referenced by compileRate().
|
private |
Create and compile an expression for an extensive noise of a species determined by reactions
const | CMetab * pSpecies |
CMathContainer | & container |
References CVectorCore< CType >::begin(), C_FLOAT64, calculateExtensiveReactionRate(), CMathExpression::compile(), compileExpression(), CMathContainer::getInitialValuePointer(), CMathContainer::getMathObject(), CMathContainer::getModel(), CModel::getReactionsPerSpecies(), getValuePointer(), InvalidValue, mIsInitialValue, mpCalculate, mpExpression, mPrerequisites, mpValue, mRateVector, mStoichiometryVector, pdelete, pointerToString(), CVector< CType >::resize(), and CEvaluationTree::setInfix().
Referenced by compileNoise().
|
private |
Create and compile an expression for an extensive rate of a species determined by reactions
const | CMetab * pSpecies |
CMathContainer | & container |
References CVectorCore< CType >::begin(), C_FLOAT64, calculateExtensiveReactionRate(), CMathExpression::compile(), compileExpression(), CMathContainer::getInitialValuePointer(), CMathContainer::getMathObject(), CMathContainer::getModel(), CModel::getReactionsPerSpecies(), getValuePointer(), mIsInitialValue, mpCalculate, mpExpression, mRateVector, mStoichiometryVector, pointerToString(), CVector< CType >::resize(), and CEvaluationTree::setInfix().
Referenced by compileRate().
|
private |
Create and compile an expression for an extensive value of a species.
const | CMetab * pSpecies |
CMathContainer | & container |
References calculateExtensiveValue(), CMathExpression::compile(), compileExpression(), CMetab::getCompartment(), CMetab::getConcentrationReference(), CMetab::getInitialConcentrationReference(), CModelEntity::getInitialValueReference(), CModelEntity::getValueReference(), mIsInitialValue, mpCalculate, mpCompartmentValue, mpCorrespondingPropertyValue, mpExpression, mpQuantity2NumberValue, pointerToString(), and CEvaluationTree::setInfix().
Referenced by compileInitialValue(), and compileValue().
|
private |
Create and compile an expression for the intensive noise of a species
const | CMetab * pSpecies |
CMathContainer | & container |
References compileExpression(), CModelEntity::getNoiseExpressionPtr(), CModelEntity::hasNoise(), InvalidValue, mIsInitialValue, mpExpression, mPrerequisites, mpValue, and pdelete.
Referenced by compileNoise().
|
private |
Create and compile an expression for an intensive rate of a species.
const | CMetab * pSpecies |
CMathContainer | & container |
References CMathExpression::compile(), compileExpression(), CModelEntity::FIXED, CMetab::getCompartment(), CMetab::getConcentrationReference(), CMathContainer::getMathObject(), CModelEntity::getRateReference(), CModelEntity::getStatus(), getValuePointer(), mpCompartmentValue, mpExpression, mpQuantity2NumberValue, pointerToString(), and CEvaluationTree::setInfix().
Referenced by compileRate().
|
private |
Create and compile an expression for an intensive value of a species.
const | CMetab * pSpecies |
CMathContainer | & container |
References calculateIntensiveValue(), CMathExpression::compile(), compileExpression(), mpCalculate, mpCompartmentValue, mpCorrespondingPropertyValue, mpExpression, mpQuantity2NumberValue, pointerToString(), and CEvaluationTree::setInfix().
Referenced by compileInitialValue(), and compileValue().
|
overridevirtual |
Retrieve the CN of the object
Implements CObjectInterface.
References CDataObject::getCN(), and mpDataObject.
Referenced by calculateValue(), and CAnalyticsTask::createEvent().
const C_FLOAT64 * CMathObject::getCompartmentValue | ( | ) | const |
Retrieve the compartment value
References mpCompartmentValue.
Referenced by CMathContainer::createValueChangeProhibited().
const CMathObject * CMathObject::getCorrespondingProperty | ( | ) | const |
Retrieve the corresponding extensive or intensive property
References mpCorrespondingProperty.
Referenced by CMathDependencyNode::buildUpdateSequence(), CMathContainer::createSynchronizeInitialValuesSequence(), CMathContainer::createValueChangeProhibited(), CNewtonMethod::initialize(), and CMCAMethod::scaleMCA().
|
overridevirtual |
Retrieve a pointer to the data object
Implements CObjectInterface.
References mpDataObject.
Referenced by CExperiment::compile(), CMathContainer::createUpdateAllTransientDataValuesSequence(), CMathEvent::createUpdateSequences(), CCSPMethod::cspstep(), CMathContainer::fetchInitialState(), CMathContainer::fetchState(), CMathContainer::getCompartment(), CMathContainer::initializeAtolVector(), CTimeSensMethod::initializeDerivativesCalculations(), CTimeSensMethod::initResult(), CMathContainer::map(), CMathContainer::pushAllTransientValues(), CMathContainer::pushInitialState(), CMathContainer::pushState(), and CSteadyStateTask::updateMatrices().
const CMath::EntityType & CMathObject::getEntityType | ( | ) | const |
Retrieve the entity type
References mEntityType.
Referenced by CMathContainer::addAnalysisObject(), CSteadyStateMethod::allPositive(), CMathDependencyNode::buildUpdateSequence(), CMathContainer::createApplyInitialValuesSequence(), CMathContainer::createSynchronizeInitialValuesSequence(), CMathContainer::createValueChangeProhibited(), CMathContainer::getCompartment(), CNewtonMethod::initialize(), CMathContainer::initializeAtolVector(), isPrerequisiteForContext(), and CStochasticRungeKuttaRI5::start().
const CMathExpression * CMathObject::getExpressionPtr | ( | ) | const |
Retrieve a pointer to the math expression.
References mpExpression.
Referenced by CMathContainer::analyzeRoots(), CModelParameterGroup::getObjectUnit(), and CMathDerive::initOneVar().
|
overridevirtual |
Retrieve a descendant object by its CN.
const | CCommonName & cn |
Implements CObjectInterface.
References CDataObject::getObject(), and mpDataObject.
|
overridevirtual |
Retrieve the display name of the object
bool | regular (default: true) |
bool | richtext (default: false) |
Implements CObjectInterface.
References CDataObject::getObjectDisplayName(), and mpDataObject.
Referenced by CTimeSensMethod::printUpdateSeq().
|
overridevirtual |
Retrieve the prerequisites, i.e., the objects which need to be evaluated before this.
Implements CObjectInterface.
References mPrerequisites.
Referenced by CMathContainer::createSynchronizeInitialValuesSequence().
const CMath::SimulationType & CMathObject::getSimulationType | ( | ) | const |
Retrieve the simulation type
References mSimulationType.
Referenced by CMathContainer::addAnalysisObject(), CMathDependencyNode::buildUpdateSequence(), CLNAMethod::calculateCovarianceMatrixReduced(), CTimeSeries::compile(), CMathContainer::createApplyInitialValuesSequence(), CMathContainer::createSynchronizeInitialValuesSequence(), CMathEvent::createUpdateSequences(), CMathContainer::createUpdateSimulationValuesSequence(), CMathContainer::fetchInitialState(), CMathReaction::initialize(), CTimeSensMethod::initializeDerivativesCalculations(), isPrerequisiteForContext(), and CHybridMethodODE45::partitionSystem().
|
overridevirtual |
Get the aggregation of any issues associated with this object
Implements CObjectInterface.
References CObjectInterface::mValidity.
const C_FLOAT64 & CMathObject::getValue | ( | ) | const |
Retrieve the value of the object;
References mpValue.
Referenced by CMathContainer::getInitialValueObject(), CMathContainer::getValueObject(), and CSteadyStateMethod::isEquilibrium().
|
overridevirtual |
Retrieve a pointer to the value of the object
Implements CObjectInterface.
References mpValue.
Referenced by CMathContainer::addAnalysisObject(), CMathEventQueue::addAssignment(), CMathEventQueue::addCalculation(), CMathEventQueue::CAction::CAction(), CHybridMethod::calculateDerivative(), CMCAMethod::calculateUnscaledElasticities(), CMathEvent::compile(), CExperiment::compile(), compileDependentMass(), compileInitialValue(), compileParticleFlux(), compilePropensity(), compileReactionNoise(), compileTotalMass(), compileTransitionTime(), compileValue(), createExtensiveReactionNoiseExpression(), createExtensiveReactionRateExpression(), createIntensiveRateExpression(), CMathContainer::createNodeFromValue(), CMathExpression::createNodeFromValue(), CMathEvent::getCalculationTime(), CMathEvent::getExecutionTime(), CMathContainer::getLargestReactionCompartment(), CMathContainer::getMathReaction(), CMathReaction::initialize(), CNewtonMethod::initialize(), CSensMethod::initialize(), CTimeSensMethod::initializeDerivativesCalculations(), CMathDelay::modifyMathObject(), CHybridMethodODE45::partitionSystem(), CMathContainer::replaceDiscontinuousNode(), and CMCAMethod::scaleMCA().
const CMath::ValueType & CMathObject::getValueType | ( | ) | const |
Retrieve the value type
References mValueType.
Referenced by CMathContainer::addAnalysisObject(), CMathDependencyNode::buildUpdateSequence(), CMathContainer::createApplyInitialValuesSequence(), CMathContainer::createSynchronizeInitialValuesSequence(), CMathContainer::createValueChangeProhibited(), CMathDependencyGraph::getDOTNodeId(), isPrerequisiteForContext(), and CHybridMethodODE45::partitionSystem().
|
static |
Initialize a single mathematical object and advance relevant pointers
CMathObject | * pObject |
C_FLOAT64 | * pValue |
const | CMath::Value & valueType |
const | CMath::EntityType & entityType |
const | CMath::SimulationType & simulationType |
const | bool & isIntensiveProperty |
const | bool & isInitialValue |
const | CDataObject * pDataObject |
References isInitialValue(), isIntensiveProperty(), mEntityType, mIsInitialValue, mIsIntensiveProperty, mpCalculate, mpCompartmentValue, mpCorrespondingProperty, mpCorrespondingPropertyValue, mpDataObject, mpExpression, mpQuantity2NumberValue, mpValue, mRateVector, mSimulationType, mStoichiometryVector, mValueType, pdelete, and CVector< CType >::resize().
Referenced by CMathContainer::addAnalysisObject(), CMathContainer::createDelays(), CMathEvent::CAssignment::initialize(), CMathEvent::CTrigger::CRootProcessor::initialize(), CMathEvent::CTrigger::initialize(), CMathEvent::initialize(), CMathContainer::initializeMathObjects(), and CMathContainer::initializeObjects().
const bool & CMathObject::isInitialValue | ( | ) | const |
Check whether the object is an initial value
References mIsInitialValue.
Referenced by CMathDependencyNode::buildUpdateSequence(), CEvaluationNodeOperator::getUnit(), and initialize().
const bool & CMathObject::isIntensiveProperty | ( | ) | const |
Check whether the object is an intensive property
References mIsIntensiveProperty.
Referenced by CMathDependencyNode::buildUpdateSequence(), CMathContainer::createApplyInitialValuesSequence(), CMathContainer::createSynchronizeInitialValuesSequence(), initialize(), and CTimeSensMethod::initializeDerivativesCalculations().
|
overridevirtual |
Check whether a given object is a prerequisite for a context.
const | CObjectInterface * pObject |
const | CCore::SimulationContextFlag & context |
const | CObjectInterface::ObjectSet & changedObjects |
Implements CObjectInterface.
References CMath::Assignment, CEvaluationNode::CEIL, CEvaluationNode::CHOICE, CMath::Delay, CMath::DelayLag, CMath::Dependent, CMath::DependentMass, CMath::Discontinuous, CMath::Event, CCore::EventHandling, CMath::EventTrigger, CEvaluationNode::FLOOR, CEvaluationNode::FUNCTION, getEntityType(), CEvaluationTree::getRoot(), getSimulationType(), getValueType(), CEvaluationNode::IF, CFlags< Enum >::isSet(), CEvaluationNode::mainType(), mEntityType, mIsIntensiveProperty, CMath::Moiety, mpCorrespondingProperty, mpExpression, mPrerequisites, mSimulationType, mValueType, CMath::Species, CEvaluationNode::subType(), CMath::TotalMass, CCore::UpdateMoieties, CCore::UseMoieties, and CMath::Value.
|
overridevirtual |
This is the output method for any object. The default implementation provided with CDataObject uses the ostream operator<< of the object to print the object.To override this default behavior one needs to reimplement the virtual print function.
std::ostream | * ostream |
Implements CObjectInterface.
References mpValue.
void CMathObject::relocate | ( | CMathContainer * | pContainer, |
const std::vector< CMath::sRelocate > & | relocations | ||
) |
Relocate an existing object
const | CMathContainer * pContainer |
const | std::vector< CMath::sRelaocte > & relocations |
References CVectorCore< CType >::begin(), C_FLOAT64, CMathExpression::copy(), CVectorCore< CType >::end(), mpCompartmentValue, mpCorrespondingProperty, mpCorrespondingPropertyValue, mpExpression, mpQuantity2NumberValue, mPrerequisites, mpValue, mRateVector, CMathExpression::relocate(), CMathContainer::relocateObject(), CMathContainer::relocateObjectSet(), and CMathContainer::relocateValue().
Referenced by CMathContainer::relocate().
void CMathObject::setDataObject | ( | const CDataObject * | pDataObject | ) |
Set the pointer to the data object
const | CDataObject * pDataObject |
References mpDataObject.
Referenced by CMathEvent::compile(), and CMathContainer::removeDataObject().
bool CMathObject::setExpression | ( | const CExpression & | expression, |
CMathContainer & | container | ||
) |
Set the expression and compile the object.
const | CExpression & expression, |
CMathContainer | & container |
References createConvertedExpression().
bool CMathObject::setExpression | ( | const std::string & | infix, |
const bool & | isBoolean, | ||
CMathContainer & | container | ||
) |
Set the expression's infix and compile the object.
const | std::string & infix, |
const | bool & isBoolean, |
CMathContainer | & container |
References CExpression::compile(), CExpression::setInfix(), and CExpression::setIsBoolean().
Referenced by CMathDelay::addValueObject(), CMathEvent::compile(), CMathDelay::create(), CMathEvent::setDelayExpression(), and CMathEvent::setPriorityExpression().
bool CMathObject::setExpressionPtr | ( | CMathExpression * | pMathExpression | ) |
Set the expression and compile the object.
CMathExpression | * pMathExpression, |
References CMathExpression::compile(), compileExpression(), mpExpression, mPrerequisites, and pdelete.
Referenced by CMathContainer::addAnalysisObject(), and CMathContainer::replaceDiscontinuousNode().
void CMathObject::setSimulationType | ( | const CMath::SimulationType & | simulationType | ) |
Set the simulation type
const | CMath::SimulationType & simulationType |
References mSimulationType.
Referenced by CMathEvent::CAssignment::compile().
void CMathObject::setValueType | ( | const CMath::ValueType & | valueType | ) |
Set the value type
const | CMath::ValueType & valueType |
References mValueType.
Referenced by CMathContainer::replaceDiscontinuousNode().
|
overridevirtual |
This method is called whenever the validity object changes.
const | CValidity & changedValidity |
Implements CObjectInterface.
References mpDataObject.
|
friend |
Referenced by compileDependentMass(), compileFlux(), compileInitialValue(), compileNoise(), compileParticleFlux(), compilePropensity(), compileRate(), compileReactionNoise(), compileReactionParticleNoise(), compileTotalMass(), compileTransitionTime(), compileValue(), createExtensiveNoiseExpression(), createExtensiveReactionNoiseExpression(), and createIntensiveNoiseExpression().
|
private |
The entity type the object belongs
Referenced by compileInitialValue(), compileNoise(), compileRate(), compileValue(), getEntityType(), initialize(), and isPrerequisiteForContext().
|
private |
A flag indicating whether this is an initial value, i.e, which dependency graph is used to update the object.
Referenced by compileDependentMass(), compileExpression(), compileFlux(), compileParticleFlux(), compileReactionParticleNoise(), compileTotalMass(), createConvertedExpression(), createExtensiveNoiseExpression(), createExtensiveODERateExpression(), createExtensiveReactionNoiseExpression(), createExtensiveReactionRateExpression(), createExtensiveValueExpression(), createIntensiveNoiseExpression(), initialize(), and isInitialValue().
|
private |
A flag indicating whether this is an intensive or extensive property.
Referenced by compileInitialValue(), compileNoise(), compileRate(), compileValue(), initialize(), isIntensiveProperty(), and isPrerequisiteForContext().
|
private |
A pointer to the member function use to calculate the value
Referenced by calculateValue(), canCalculateValue(), compileDependentMass(), compileExpression(), compileParticleFlux(), compilePropensity(), compileTotalMass(), compileTransitionTime(), createExtensiveReactionNoiseExpression(), createExtensiveReactionRateExpression(), createExtensiveValueExpression(), createIntensiveValueExpression(), and initialize().
|
private |
A pointer to the associated compartment value (NULL if no association).
Referenced by calculateExtensiveValue(), calculateIntensiveValue(), compileFlux(), compileReactionNoise(), createExtensiveNoiseExpression(), createExtensiveODERateExpression(), createExtensiveValueExpression(), createIntensiveRateExpression(), createIntensiveValueExpression(), getCompartmentValue(), initialize(), and relocate().
|
private |
A pointer to the corresponding intensive or extensive property value if it exists otherwise NULL
Referenced by compileInitialValue(), compileParticleFlux(), compilePropensity(), compileValue(), getCorrespondingProperty(), initialize(), isPrerequisiteForContext(), and relocate().
|
private |
A pointer to the corresponding intensive or extensive property value if it exists otherwise NULL
Referenced by calculateCorrectedPropensity(), calculateExtensiveValue(), calculateIntensiveValue(), calculateParticleFlux(), calculatePropensity(), compileInitialValue(), compileParticleFlux(), compilePropensity(), compileValue(), createExtensiveValueExpression(), createIntensiveValueExpression(), initialize(), and relocate().
|
private |
A pointer to the data object
Referenced by compileDependentMass(), compileFlux(), compileInitialValue(), compileNoise(), compileParticleFlux(), compilePropensity(), compileRate(), compileReactionNoise(), compileReactionParticleNoise(), compileTotalMass(), compileTransitionTime(), compileValue(), getCN(), getDataObject(), getObject(), getObjectDisplayName(), initialize(), setDataObject(), and validityChanged().
|
private |
The expression which determines the value of the object.
Referenced by appendDelays(), calculateExpression(), calculateValue(), compileDependentMass(), compileExpression(), compileFlux(), compileParticleFlux(), compilePropensity(), compileReactionNoise(), compileReactionParticleNoise(), compileTotalMass(), compileTransitionTime(), copy(), createConvertedExpression(), createExtensiveNoiseExpression(), createExtensiveODERateExpression(), createExtensiveReactionNoiseExpression(), createExtensiveReactionRateExpression(), createExtensiveValueExpression(), createIntensiveNoiseExpression(), createIntensiveRateExpression(), createIntensiveValueExpression(), getExpressionPtr(), initialize(), isPrerequisiteForContext(), relocate(), setExpressionPtr(), and ~CMathObject().
|
private |
A pointer to the quantity to number conversion factor.
Referenced by calculateExtensiveValue(), calculateIntensiveValue(), calculateParticleFlux(), compileParticleFlux(), compileReactionNoise(), createExtensiveNoiseExpression(), createExtensiveODERateExpression(), createExtensiveValueExpression(), createIntensiveRateExpression(), createIntensiveValueExpression(), initialize(), and relocate().
|
private |
The prerequisites, i.e., the objects which need to be evaluated before this.
Referenced by compileExpression(), compileNoise(), compileReactionNoise(), compileReactionParticleNoise(), compileValue(), createExtensiveNoiseExpression(), createExtensiveReactionNoiseExpression(), createIntensiveNoiseExpression(), getPrerequisites(), isPrerequisiteForContext(), relocate(), and setExpressionPtr().
|
private |
A pointer to value of the object
Referenced by calculateCorrectedPropensity(), calculateExpression(), calculateExtensiveReactionRate(), calculateExtensiveValue(), calculateIntensiveValue(), calculateParticleFlux(), calculatePropensity(), calculateTransitionTime(), calculateValue(), compileDependentMass(), compileFlux(), compileInitialValue(), compileNoise(), compileParticleFlux(), compilePropensity(), compileRate(), compileReactionNoise(), compileReactionParticleNoise(), compileTotalMass(), compileTransitionTime(), compileValue(), createExtensiveNoiseExpression(), createExtensiveReactionNoiseExpression(), createIntensiveNoiseExpression(), getValue(), getValuePointer(), initialize(), print(), and relocate().
A vector conaining the pointers to the rates for the reactions modifying a species
Referenced by calculateCorrectedPropensity(), calculateExtensiveReactionRate(), calculateTransitionTime(), compileDependentMass(), compilePropensity(), compileTotalMass(), compileTransitionTime(), createExtensiveReactionNoiseExpression(), createExtensiveReactionRateExpression(), initialize(), and relocate().
|
private |
The simulation type
Referenced by compileInitialValue(), compileNoise(), compileRate(), compileValue(), getSimulationType(), initialize(), isPrerequisiteForContext(), and setSimulationType().
A vector conaining the stoichiometry values for the reactions modifying a species
Referenced by calculateCorrectedPropensity(), calculateExtensiveReactionRate(), calculateTransitionTime(), compileDependentMass(), compilePropensity(), compileTotalMass(), compileTransitionTime(), createExtensiveReactionNoiseExpression(), createExtensiveReactionRateExpression(), and initialize().
|
private |
The type of the object
Referenced by createConvertedExpression(), getValueType(), initialize(), isPrerequisiteForContext(), and setValueType().