46 mRootMask(src.mRootMask),
47 mTargetTime(src.mTargetTime),
48 mRootCounter(src.mRootCounter),
49 mPeekAheadMode(src.mPeekAheadMode)
74 if ((pParm =
getParameter(
"LSODA.RelativeTolerance")) != NULL)
79 if ((pParm =
getParameter(
"LSODA.AbsoluteTolerance")) != NULL)
85 if ((pParm =
getParameter(
"LSODA.AdamsMaxOrder")) != NULL)
95 if ((pParm =
getParameter(
"LSODA.MaxStepsInternal")) != NULL)
103 if ((pParm =
getParameter(
"Use Default Absolute Tolerance")) != NULL)
116 assert(pDataModel != NULL);
128 for (i = 0, imax = Compartment.
size(); i < imax; i++)
129 if (Compartment[i]->
getValue() < Volume)
130 Volume = Compartment[i]->
getValue();
167 for (; pMethod != pMethodEnd; ++pMethod, ++pCurrent)
170 if (*pMethod != *pCurrent)
184 for (; pMethod != pMethodEnd; ++pMethod, ++pCurrent)
187 if (*pMethod != *pCurrent)
205 mTime = mMethodState.getTime();
209 pMethod = MethodRate.
array();
211 pCurrent = CurrentRate.
array();
213 for (; pMethod != pMethodEnd; ++pMethod, ++pCurrent)
216 if (*pMethod != *pCurrent)
298 if (mLsodaStatus == 3 &&
306 switch (mLsodaStatus)
334 if (mLsodaStatus == 3)
366 for (; pMask != pMaskEnd; ++pMask, ++pDiscrete)
515 for (; ppRootFinder != ppRootFinderEnd; ++ppRootFinder, ++pDiscrete)
517 *pDiscrete = (*ppRootFinder)->isDiscrete();
584 {
static_cast<Data *
>((
void *) n)->
pMethod->
evalJ(t, y, ml, mu, pd, nRowPD);}
599 for (; pMask != pMaskEnd; ++pMask, ++pRoot)
613 RootValues.
resize(NumRoots);
615 RootDerivatives.
resize(NumRoots);
632 for (; pMask != pMaskEnd; ++pMask, ++pRootValue, ++pRootDerivative)
678 for (; pOld != pOldEnd; ++pOld, ++pNew, ++pAtol)
681 fabs(*pNew) > *pAtol &&
682 fabs(*pOld) > *pAtol)
688 if (pOld != pOldEnd ||
705 C_INT * pCombinedRoot = CombinedRoots.
array();
707 for (; pRoot != pRootEnd; ++pRoot, ++pCombinedRoot)
746 return PeekAheadStatus;
CCopasiDataModel * getObjectDataModel()
static void EvalR(const C_INT *n, const C_FLOAT64 *t, const C_FLOAT64 *y, const C_INT *nr, C_FLOAT64 *r)
CVector< C_FLOAT64 > mAtol
static void EvalF(const C_INT *n, const C_FLOAT64 *t, const C_FLOAT64 *y, C_FLOAT64 *ydot)
virtual size_t size() const
const CVector< CMathTrigger::CRootFinder * > & getRootFinders() const
C_FLOAT64 * mpAbsoluteTolerance
CVector< bool > mRootMask
void evaluateRoots(CVectorCore< C_FLOAT64 > &rootValues, const bool &ignoreDiscrete)
void setOstream(std::ostream &os)
void updateSimulatedValues(const bool &updateMoieties)
virtual void start(const CState *initialState)
CTrajectoryProblem * mpProblem
CVector< C_FLOAT64 > mDWork
virtual void evalR(const C_FLOAT64 *t, const C_FLOAT64 *y, const C_INT *nr, C_FLOAT64 *r)
void resize(size_t size, const bool ©=false)
CVector< bool > mDiscreteRoots
void maskRoots(CVectorCore< C_FLOAT64 > &rootValues)
unsigned C_INT32 mRootCounter
static void EvalJ(const C_INT *n, const C_FLOAT64 *t, const C_FLOAT64 *y, const C_INT *ml, const C_INT *mu, C_FLOAT64 *pd, const C_INT *nRowPD)
void setTime(const C_FLOAT64 &time)
void calculateRootDerivatives(CVector< C_FLOAT64 > &rootDerivatives)
virtual Status step(const double &deltaT)
std::ostringstream mErrorMsg
bool removeParameter(const std::string &name)
#define MCTrajectoryMethod
const C_FLOAT64 & getQuantity2NumberFactor() const
CLsodaMethod(const CCopasiMethod::SubType &subType=deterministic, const CCopasiContainer *pParent=NULL)
size_t getNumDependentReactionMetabs() const
virtual bool elevateChildren()
void setState(const CState &state)
const Value & getValue() const
size_t getNumIndependent() const
CCopasiParameter * getParameter(const std::string &name)
unsigned C_INT32 * mpMaxInternalSteps
void calculateDerivativesX(C_FLOAT64 *derivativesX)
CCopasiVectorNS< CCompartment > & getCompartments()
const C_FLOAT64 & getTime() const
virtual void stateChanged()
void calculateDerivatives(C_FLOAT64 *derivatives)
CCopasiParameter * assertParameter(const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue)
virtual void evalJ(const C_FLOAT64 *t, const C_FLOAT64 *y, const C_INT *ml, const C_INT *mu, C_FLOAT64 *pd, const C_INT *nRowPD)
CVector< C_FLOAT64 > initializeAtolVector(const C_FLOAT64 &baseTolerance, const bool &reducedModel) const
CVector< C_FLOAT64 > mYdot
void initializeParameter()
virtual void evalF(const C_FLOAT64 *t, const C_FLOAT64 *y, C_FLOAT64 *ydot)
size_t getNumRoots() const
CModel * getModel() const
C_FLOAT64 * mpRelativeTolerance
C_FLOAT64 * beginIndependent()