40#ifndef LM_CME_CMESOLVER_H_ 
   41#define LM_CME_CMESOLVER_H_ 
   48#include "FirstPassageTimes.pb.h" 
   49#include "ParameterValues.pb.h" 
  114        KHillTransportPropensityArgs(
uint si, 
uint xi, 
double k0, 
double dk, 
double I50, 
double Iex, 
double kit, 
double kid, 
double KM, 
double h, 
double V) :
si(
si),
xi(
xi),
k0(
k0),
dk(
dk),
IRh(pow(I50/Iex,
h)),
ITp(kit/(kid*(Iex+KM)*
NA*V)),
h(
h) {}
 
 
  144        CompetitiveMMPropensityArgs(
uint si, 
uint ei, 
uint ii, 
double kcat, 
double Km, 
double Ki) :
si(
si),
ei(
ei),
ii(
ii),
kcat(
kcat),
Km(
Km),
Ki(
Ki) {}
 
 
  155        UncompetitiveMMPropensityArgs(
uint si, 
uint ei, 
uint ii, 
double kcat, 
double Km, 
double Ki) :
si(
si),
ei(
ei),
ii(
ii),
kcat(
kcat),
Km(
Km),
Ki(
Ki) {}
 
 
  166        NoncompetitiveMMPropensityArgs(
uint si, 
uint ei, 
uint ii, 
double kcat, 
double Km, 
double Ki) :
si(
si),
ei(
ei),
ii(
ii),
kcat(
kcat),
Km(
Km),
Ki(
Ki) {}
 
 
  232    virtual double recordParameters(
double nextRecordTime, 
double recordInterval, 
double simulationTime);
 
 
#define NA
Definition Math.h:51
unsigned int uint
Definition Types.h:52
CMESolver(RandomGenerator::Distributions neededDists)
Definition CMESolver.cpp:74
Distributions
Types of random number generators that are allowed.
Definition RandomGenerator.h:56
A representation for the resources for a given node.
Definition ResourceAllocator.h:62
virtual void setSpeciesUpperLimit(uint species, uint limit)
Definition CMESolver.cpp:1137
RandomGenerator * rng
Definition CMESolver.h:268
uint ** dependentReactions
Definition CMESolver.h:293
virtual void buildModel(const uint numberSpecies, const uint numberReactions, const uint *initialSpeciesCounts, const uint *reactionTypesA, const double *k, const int *S, const uint *D, const uint kCols=1)
Definition CMESolver.cpp:359
virtual void getSpeciesCountView(uint **counts, int *number)
Definition CMESolver.cpp:926
virtual ~CMESolver()
Definition CMESolver.cpp:88
static double competitiveMMPropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1096
uint * numberDependentReactions
Definition CMESolver.h:292
virtual void destroyModel()
Definition CMESolver.cpp:268
virtual void setFptTrackingList(list< uint > speciesList)
Definition CMESolver.cpp:1174
bool reachedSpeciesLimit()
Definition CMESolver.h:243
uint numberReactions
Definition CMESolver.h:273
map< string, string > * parameters
Definition CMESolver.h:266
virtual void setReactionRateCME(unsigned int reactionId, double rate)
Definition CMESolver.cpp:1260
RandomGenerator::Distributions neededDists
Definition CMESolver.h:264
static double kHillTransportPropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1060
uint numberSpeciesToTrack
Definition CMESolver.h:272
uint ** dependentSpecies
Definition CMESolver.h:290
virtual int onEndTrajectory()
Definition CMESolver.cpp:1256
virtual int hookSimulation(double time)
Definition CMESolver.cpp:1242
uint * reactionTypes
Definition CMESolver.h:276
static double firstOrderPropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1032
void updateSpeciesCounts(uint r)
Definition CMESolver.h:235
void ** propensityFunctions
Definition CMESolver.h:279
virtual void initialize(unsigned int replicate, map< string, string > *parameters, ResourceAllocator::ComputeResources *resources)
Initialize the simulation.
Definition CMESolver.cpp:101
static double noncompetitiveMMPropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1118
int * S
Definition CMESolver.h:277
uint numberFptTrackedSpecies
Definition CMESolver.h:284
virtual void setReactionModel(lm::io::ReactionModel *reactionModel)
Definition CMESolver.cpp:315
static double kHillPropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1054
CMESolver(RandomGenerator::Distributions neededDists)
Definition CMESolver.cpp:74
uint * initialSpeciesCounts
Definition CMESolver.h:274
ResourceAllocator::ComputeResources * resources
Definition CMESolver.h:267
virtual void allocateModel(uint numberSpecies, uint numberReactions)
Definition CMESolver.cpp:215
list< TrackedParameter > trackedParameters
Definition CMESolver.h:286
virtual int onBeginTrajectory()
Definition CMESolver.cpp:1251
list< PropensityArgs * > propensityArgs
Definition CMESolver.h:281
static double zerothOrderPropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1026
FPTTracking * fptTrackedSpecies
Definition CMESolver.h:285
virtual void setModelPropensityFunction(uint reaction, double(*propensityFunction)(double time, uint *speciesCounts, void *args), void *propensityFunctionArg)
Definition CMESolver.cpp:1130
virtual void generateTrajectory()=0
Actually run the simulation.
unsigned int replicate
Definition CMESolver.h:265
SpeciesLimit * speciesLimits
Definition CMESolver.h:283
uint * speciesCounts
Definition CMESolver.h:275
static double secondOrderPropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1038
virtual void getReactionRateConstantsView(int reactionNumber, double **rates, int *rateConstantCount)
Definition CMESolver.cpp:932
uint * numberDependentSpecies
Definition CMESolver.h:289
virtual void queueRecordedParameters(bool flush=false)
Definition CMESolver.cpp:1224
uint numberSpecies
Definition CMESolver.h:271
virtual void setSpeciesLowerLimit(uint species, uint limit)
Definition CMESolver.cpp:1153
static double uncompetitiveMMPropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1107
virtual double recordParameters(double nextRecordTime, double recordInterval, double simulationTime)
Definition CMESolver.cpp:1199
int ** dependentSpeciesChange
Definition CMESolver.h:291
uint * D
Definition CMESolver.h:278
virtual void addToParameterTrackingList(pair< string, double * >parameter)
Definition CMESolver.cpp:1194
void ** propensityFunctionArgs
Definition CMESolver.h:280
static double zerothOrderHeavisidePropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1077
static double secondOrderSelfPropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1044
uint numberSpeciesLimits
Definition CMESolver.h:282
static double michaelisMentenPropensity(double time, uint *speciesCounts, void *pargs)
Definition CMESolver.cpp:1086
An object that tracks the available resources for the main simulation runner.
Definition ResourceAllocator.h:57
An abstract base class for all Master Equation solvers, this is essentially a representation of "the ...
Definition MESolver.h:59
MESolver()
Create the MESolver.
Definition MESolver.cpp:46
Base class for random number generators in Lattice Microbes.
Definition RandomGenerator.h:51
Definition CMESolver.cpp:72
Definition LatticeBuilder.h:56
Definition ReactionQueue.h:46
Definition Capsule.cpp:46
CompetitiveMMPropensityArgs(uint si, uint ei, uint ii, double kcat, double Km, double Ki)
Definition CMESolver.h:144
Definition CMESolver.h:182
FirstOrderPropensityArgs(uint si, double k)
Definition CMESolver.h:86
KHillPropensityArgs(uint si, double k0, double dk, double I50, double Iex, double h)
Definition CMESolver.h:107
KHillTransportPropensityArgs(uint si, uint xi, double k0, double dk, double I50, double Iex, double kit, double kid, double KM, double h, double V)
Definition CMESolver.h:114
MichaelisMentenPropensityArgs(uint si, uint ei, double kcat, double Km)
Definition CMESolver.h:135
NoncompetitiveMMPropensityArgs(uint si, uint ei, uint ii, double kcat, double Km, double Ki)
Definition CMESolver.h:166
Definition CMESolver.h:74
SecondOrderPropensityArgs(uint s1i, uint s2i, double k)
Definition CMESolver.h:93
SecondOrderSelfPropensityArgs(uint si, double k)
Definition CMESolver.h:100
Definition CMESolver.h:176
TrackedParameter(string name, double *valuePointer)
Definition CMESolver.h:190
UncompetitiveMMPropensityArgs(uint si, uint ei, uint ii, double kcat, double Km, double Ki)
Definition CMESolver.h:155
ZerothOrderHeavisidePropensityArgs(uint xi, uint x0, double k0, double k1)
Definition CMESolver.h:126
ZerothOrderPropensityArgs(double k)
Definition CMESolver.h:80
double kcat
Definition CMESolver.h:148
uint si
Definition CMESolver.h:145
CompetitiveMMPropensityArgs(uint si, uint ei, uint ii, double kcat, double Km, double Ki)
Definition CMESolver.h:144
uint ii
Definition CMESolver.h:147
double Km
Definition CMESolver.h:149
double Ki
Definition CMESolver.h:150
static const uint REACTION_TYPE
Definition CMESolver.h:143
uint ei
Definition CMESolver.h:146
Definition CMESolver.h:182
uint species
Definition CMESolver.h:183
uint minValueAchieved
Definition CMESolver.h:184
uint maxValueAchieved
Definition CMESolver.h:185
lm::io::FirstPassageTimes dataSet
Definition CMESolver.h:186
static const uint REACTION_TYPE
Definition CMESolver.h:85
FirstOrderPropensityArgs(uint si, double k)
Definition CMESolver.h:86
uint si
Definition CMESolver.h:87
double k
Definition CMESolver.h:88
double k
Definition CMESolver.h:109
uint si
Definition CMESolver.h:108
KHillPropensityArgs(uint si, double k0, double dk, double I50, double Iex, double h)
Definition CMESolver.h:107
static const uint REACTION_TYPE
Definition CMESolver.h:106
uint si
Definition CMESolver.h:115
double h
Definition CMESolver.h:121
double dk
Definition CMESolver.h:118
double ITp
Definition CMESolver.h:120
double k0
Definition CMESolver.h:117
double IRh
Definition CMESolver.h:119
static const uint REACTION_TYPE
Definition CMESolver.h:113
KHillTransportPropensityArgs(uint si, uint xi, double k0, double dk, double I50, double Iex, double kit, double kid, double KM, double h, double V)
Definition CMESolver.h:114
uint xi
Definition CMESolver.h:116
double Km
Definition CMESolver.h:139
double kcat
Definition CMESolver.h:138
static const uint REACTION_TYPE
Definition CMESolver.h:134
MichaelisMentenPropensityArgs(uint si, uint ei, double kcat, double Km)
Definition CMESolver.h:135
uint si
Definition CMESolver.h:136
uint ei
Definition CMESolver.h:137
uint ei
Definition CMESolver.h:168
uint ii
Definition CMESolver.h:169
double Km
Definition CMESolver.h:171
uint si
Definition CMESolver.h:167
NoncompetitiveMMPropensityArgs(uint si, uint ei, uint ii, double kcat, double Km, double Ki)
Definition CMESolver.h:166
static const uint REACTION_TYPE
Definition CMESolver.h:165
double Ki
Definition CMESolver.h:172
double kcat
Definition CMESolver.h:170
virtual ~PropensityArgs()
Definition CMESolver.h:75
double k
Definition CMESolver.h:95
uint s1i
Definition CMESolver.h:94
SecondOrderPropensityArgs(uint s1i, uint s2i, double k)
Definition CMESolver.h:93
uint s2i
Definition CMESolver.h:94
static const uint REACTION_TYPE
Definition CMESolver.h:92
uint si
Definition CMESolver.h:101
SecondOrderSelfPropensityArgs(uint si, double k)
Definition CMESolver.h:100
static const uint REACTION_TYPE
Definition CMESolver.h:99
double k
Definition CMESolver.h:102
Definition CMESolver.h:176
uint limit
Definition CMESolver.h:179
int type
Definition CMESolver.h:177
uint species
Definition CMESolver.h:178
double * valuePointer
Definition CMESolver.h:192
string name
Definition CMESolver.h:191
lm::io::ParameterValues dataSet
Definition CMESolver.h:193
TrackedParameter(string name, double *valuePointer)
Definition CMESolver.h:190
double Ki
Definition CMESolver.h:161
uint si
Definition CMESolver.h:156
uint ei
Definition CMESolver.h:157
double kcat
Definition CMESolver.h:159
uint ii
Definition CMESolver.h:158
UncompetitiveMMPropensityArgs(uint si, uint ei, uint ii, double kcat, double Km, double Ki)
Definition CMESolver.h:155
double Km
Definition CMESolver.h:160
static const uint REACTION_TYPE
Definition CMESolver.h:154
ZerothOrderHeavisidePropensityArgs(uint xi, uint x0, double k0, double k1)
Definition CMESolver.h:126
static const uint REACTION_TYPE
Definition CMESolver.h:125
uint xi
Definition CMESolver.h:127
double k0
Definition CMESolver.h:129
double k1
Definition CMESolver.h:130
uint x0
Definition CMESolver.h:128
static const uint REACTION_TYPE
Definition CMESolver.h:79
double k
Definition CMESolver.h:81
ZerothOrderPropensityArgs(double k)
Definition CMESolver.h:80