42 #ifndef COPASI_CHybridMethod
43 #define COPASI_CHybridMethod
58 #define MAX_STEPS 1000000
59 #define INT_EPSILON 0.1
60 #define LOWER_STOCH_LIMIT 800 //800
61 #define UPPER_STOCH_LIMIT 1000 //1000
62 #define RUNGE_KUTTA_STEPSIZE 0.001
63 #define PARTITIONING_INTERVAL 1
64 #define OUTPUT_COUNTER 100
67 #define USE_RANDOM_SEED false
250 void getState(std::vector <C_FLOAT64> & target);
260 void setState(std::vector <C_FLOAT64> & source);
422 std::set <std::string> *
getAffects(
size_t rIndex);
532 std::vector <C_FLOAT64>
k1;
533 std::vector <C_FLOAT64>
k2;
534 std::vector <C_FLOAT64>
k3;
535 std::vector <C_FLOAT64>
k4;
649 #endif // COPASI_CHybridMethod
CRandom * mpRandomGenerator
C_FLOAT64 mLowerStochLimit
unsigned C_INT32 mMaxSteps
void outputData(std::ostream &os, C_INT32 mode)
void getState(std::vector< C_FLOAT64 > &target)
void getStochTimeAndIndex(C_FLOAT64 &ds, size_t &rIndex)
void initMethod(C_FLOAT64 time)
void calculateDerivative(std::vector< C_FLOAT64 > &deriv)
static C_INT32 checkModel(CModel *model)
std::vector< C_FLOAT64 > k3
std::vector< metabStatus > mMetabFlags
CHybridStochFlag * mFirstReactionFlag
void setState(std::vector< C_FLOAT64 > &source)
std::set< size_t > * getParticipatesIn(size_t rIndex)
void setupMetab2ReactComplete()
CMatrix< C_FLOAT64 > mStoi
CIndexedPriorityQueue mPQ
void setupMetab2ReactPlusModifier()
virtual Status step(const double &deltaT)
CHybridStochFlag * mpPrev
void initializeParameter()
void updateTauMu(size_t rIndex, C_FLOAT64 time)
void integrateDeterministicPart(C_FLOAT64 ds)
void removeDeterministicReaction(size_t rIndex)
void rungeKutta(C_FLOAT64 dt)
const CCopasiVectorNS< CReaction > * mpReactions
std::vector< C_FLOAT64 > k4
virtual C_FLOAT64 doSingleStep(C_FLOAT64 currentTime, C_FLOAT64 endTime)=0
void outputDebug(std::ostream &os, size_t level)
CHybridMethod(const CHybridMethod &src, const CCopasiContainer *pParent=NULL)
virtual bool elevateChildren()
C_FLOAT64 generateReactionTime(size_t rIndex)
std::string mOutputFileName
friend std::ostream & operator<<(std::ostream &os, const CHybridStochFlag &d)
std::set< std::string > * getAffects(size_t rIndex)
CHybridStochFlag * mpNext
CCopasiVector< CMetab > * mpMetabolites
void calculateAmu(size_t rIndex)
std::vector< C_FLOAT64 > mAmu
size_t mStepsAfterPartitionSystem
static CTrajectoryMethod * createMethod(CCopasiMethod::SubType subType=CCopasiMethod::deterministic)
void updatePriorityQueue(size_t rIndex, C_FLOAT64 time)
unsigned C_INT32 mPartitioningInterval
void setupPriorityQueue(C_FLOAT64 startTime=0.0)
virtual bool isValidProblem(const CCopasiProblem *pProblem)
std::vector< C_FLOAT64 > currentState
std::vector< C_FLOAT64 > k2
void insertDeterministicReaction(size_t rIndex)
std::vector< std::vector< CHybridBalance > > mLocalSubstrates
unsigned C_INT32 mRandomSeed
static CHybridMethod * createHybridMethod()
std::vector< std::vector< CHybridBalance > > mLocalBalances
std::vector< std::set< size_t > > mMetab2React
void integrateDeterministicPartEuler(C_FLOAT64 ds)
std::ofstream mOutputFile
virtual void start(const CState *initialState)
C_FLOAT64 mUpperStochLimit
friend std::ostream & operator<<(std::ostream &os, const CHybridBalance &d)
std::vector< C_FLOAT64 > k1
std::set< size_t > mUpdateSet
std::vector< C_FLOAT64 > mAmuOld
std::vector< C_FLOAT64 > temp
void fireReaction(size_t rIndex)
std::vector< CHybridStochFlag > mReactionFlags
std::set< std::string > * getDependsOn(size_t rIndex)
size_t mNumVariableMetabs
static bool modelHasAssignments(const CModel *pModel)
void setupDependencyGraph()