42 #ifndef COPASI_CHybridMethodLSODA
43 #define COPASI_CHybridMethodLSODA
61 #define MAX_STEPS 1000000
62 #define INT_EPSILON 0.1
63 #define LOWER_STOCH_LIMIT 800 //800
64 #define UPPER_STOCH_LIMIT 1000 //1000
65 #define RUNGE_KUTTA_STEPSIZE 0.001
66 #define PARTITIONING_STEPSIZE 0.001
68 #define PARTITIONING_INTERVAL 1
69 #define OUTPUT_COUNTER 100
72 #define USE_RANDOM_SEED false
247 void getState(std::vector <C_FLOAT64> & target);
257 void setState(std::vector <C_FLOAT64> & source);
436 std::set <std::string> *
getAffects(
size_t rIndex);
732 #endif // COPASI_CHybridMethodLSODA
C_FLOAT64 getDefaultAtol(const CModel *pModel) const
void setState(std::vector< C_FLOAT64 > &source)
CVector< C_FLOAT64 > mDWork
void outputData(std::ostream &os, C_INT32 mode)
void getStochTimeAndIndex(C_FLOAT64 &ds, size_t &rIndex)
unsigned C_INT32 mPartitioningInterval
std::vector< std::set< size_t > > mMetab2React
std::vector< C_FLOAT64 > mAmu
unsigned C_INT32 mMaxSteps
CIndexedPriorityQueue mPQ
void setupDependencyGraph()
static C_INT32 checkModel(CModel *model)
void updateTauMu(size_t rIndex, C_FLOAT64 time)
CRandom * mpRandomGenerator
unsigned C_INT32 mStepsAfterPartitionSystem
void setupMetab2ReactComplete()
virtual bool elevateChildren()
virtual bool isValidProblem(const CCopasiProblem *pProblem)
static bool modelHasAssignments(const CModel *pModel)
C_FLOAT64 mUpperStochLimit
std::string mOutputFileName
C_FLOAT64 generateReactionTime(size_t rIndex)
CHybridLSODAStochFlag * mpNext
std::ostringstream mErrorMsg
void updatePriorityQueue(size_t rIndex, C_FLOAT64 time)
unsigned C_INT32 mRandomSeed
friend std::ostream & operator<<(std::ostream &os, const CHybridLSODABalance &d)
CCopasiVector< CMetab > * mpMetabolites
CHybridMethodLSODA * pMethod
CMatrix< C_FLOAT64 > mStoi
static CHybridMethodLSODA * createHybridMethodLSODA()
void setupPriorityQueue(C_FLOAT64 startTime=0.0)
size_t mNumVariableMetabs
virtual Status step(const double &deltaT)
void integrateDeterministicPart(C_FLOAT64 ds)
void setupMetab2ReactPlusModifier()
CVector< C_FLOAT64 > mYdot
std::vector< std::vector< CHybridLSODABalance > > mLocalBalances
virtual C_FLOAT64 doSingleStep(C_FLOAT64 currentTime, C_FLOAT64 endTime)=0
C_INT32 mMaxIntBeforeStep
std::vector< C_FLOAT64 > temp
std::ofstream mOutputFile
void getState(std::vector< C_FLOAT64 > &target)
static void EvalF(const C_INT *n, const C_FLOAT64 *t, const C_FLOAT64 *y, C_FLOAT64 *ydot)
std::vector< C_FLOAT64 > currentState
CHybridMethodLSODA(const CHybridMethodLSODA &src, const CCopasiContainer *pParent=NULL)
friend std::ostream & operator<<(std::ostream &os, const CHybridLSODAStochFlag &d)
std::set< size_t > * getParticipatesIn(size_t rIndex)
std::vector< CHybridLSODAStochFlag > mReactionFlags
void removeDeterministicReaction(size_t rIndex)
static CTrajectoryMethod * createMethod(CCopasiMethod::SubType subType=CCopasiMethod::deterministic)
void evalF(const C_FLOAT64 *t, const C_FLOAT64 *y, C_FLOAT64 *ydot)
std::set< std::string > * getDependsOn(size_t rIndex)
virtual void start(const CState *initialState)
void initMethod(C_FLOAT64 time)
void outputDebug(std::ostream &os, size_t level)
CHybridLSODAStochFlag * mpPrev
const CCopasiVectorNS< CReaction > * mpReactions
std::set< std::string > * getAffects(size_t rIndex)
std::vector< metabStatus > mMetabFlags
C_FLOAT64 mLowerStochLimit
void initializeParameter()
void insertDeterministicReaction(size_t rIndex)
std::vector< C_FLOAT64 > mAmuOld
std::vector< std::vector< CHybridLSODABalance > > mLocalSubstrates
void calculateDerivative(std::vector< C_FLOAT64 > &deriv)
CHybridLSODAStochFlag * mFirstReactionFlag
void fireReaction(size_t rIndex)
std::set< size_t > mUpdateSet
void calculateAmu(size_t rIndex)