Lattice Microbes 2.5
This is for whole cell modeling
Loading...
Searching...
No Matches
lm::cme::CMESolver Class Referenceabstract

#include <CMESolver.h>

Inheritance diagram for lm::cme::CMESolver:
[legend]
Collaboration diagram for lm::cme::CMESolver:
[legend]

Classes

struct  CompetitiveMMPropensityArgs
struct  FirstOrderPropensityArgs
struct  FPTTracking
struct  KHillPropensityArgs
struct  KHillTransportPropensityArgs
struct  MichaelisMentenPropensityArgs
struct  NoncompetitiveMMPropensityArgs
struct  PropensityArgs
struct  SecondOrderPropensityArgs
struct  SecondOrderSelfPropensityArgs
struct  SpeciesLimit
struct  TrackedParameter
struct  UncompetitiveMMPropensityArgs
struct  ZerothOrderHeavisidePropensityArgs
struct  ZerothOrderPropensityArgs

Public Member Functions

 CMESolver (RandomGenerator::Distributions neededDists)
virtual ~CMESolver ()
virtual void initialize (unsigned int replicate, map< string, string > *parameters, ResourceAllocator::ComputeResources *resources)
 Initialize the simulation.
virtual void setReactionModel (lm::io::ReactionModel *reactionModel)
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)
virtual void setModelPropensityFunction (uint reaction, double(*propensityFunction)(double time, uint *speciesCounts, void *args), void *propensityFunctionArg)
virtual void setSpeciesUpperLimit (uint species, uint limit)
virtual void setSpeciesLowerLimit (uint species, uint limit)
virtual void setFptTrackingList (list< uint > speciesList)
virtual void addToParameterTrackingList (pair< string, double * >parameter)
virtual void generateTrajectory ()=0
 Actually run the simulation.
virtual void setReactionRateCME (unsigned int reactionId, double rate)
virtual void getSpeciesCountView (uint **counts, int *number)
virtual void getReactionRateConstantsView (int reactionNumber, double **rates, int *rateConstantCount)
Public Member Functions inherited from lm::me::MESolver
 MESolver ()
 Create the MESolver.
virtual ~MESolver ()
virtual bool needsReactionModel ()=0
 Tells whether the solver needs a reaction model.
virtual bool needsDiffusionModel ()=0
 Tells whether the solver needs a reaction model.

Protected Member Functions

virtual void allocateModel (uint numberSpecies, uint numberReactions)
virtual void destroyModel ()
virtual double recordParameters (double nextRecordTime, double recordInterval, double simulationTime)
virtual void queueRecordedParameters (bool flush=false)
void updateSpeciesCounts (uint r)
bool reachedSpeciesLimit ()
virtual int hookSimulation (double time)
virtual int onBeginTrajectory ()
virtual int onEndTrajectory ()

Static Protected Member Functions

static double zerothOrderPropensity (double time, uint *speciesCounts, void *pargs)
static double firstOrderPropensity (double time, uint *speciesCounts, void *pargs)
static double secondOrderPropensity (double time, uint *speciesCounts, void *pargs)
static double secondOrderSelfPropensity (double time, uint *speciesCounts, void *pargs)
static double kHillPropensity (double time, uint *speciesCounts, void *pargs)
static double kHillTransportPropensity (double time, uint *speciesCounts, void *pargs)
static double zerothOrderHeavisidePropensity (double time, uint *speciesCounts, void *pargs)
static double michaelisMentenPropensity (double time, uint *speciesCounts, void *pargs)
static double competitiveMMPropensity (double time, uint *speciesCounts, void *pargs)
static double uncompetitiveMMPropensity (double time, uint *speciesCounts, void *pargs)
static double noncompetitiveMMPropensity (double time, uint *speciesCounts, void *pargs)

Protected Attributes

RandomGenerator::Distributions neededDists
unsigned int replicate
map< string, string > * parameters
ResourceAllocator::ComputeResourcesresources
RandomGeneratorrng
uint numberSpecies
uint numberSpeciesToTrack
uint numberReactions
uintinitialSpeciesCounts
uintspeciesCounts
uintreactionTypes
int * S
uintD
void ** propensityFunctions
void ** propensityFunctionArgs
list< PropensityArgs * > propensityArgs
uint numberSpeciesLimits
SpeciesLimitspeciesLimits
uint numberFptTrackedSpecies
FPTTrackingfptTrackedSpecies
list< TrackedParametertrackedParameters
uintnumberDependentSpecies
uint ** dependentSpecies
int ** dependentSpeciesChange
uintnumberDependentReactions
uint ** dependentReactions

Constructor & Destructor Documentation

◆ CMESolver()

lm::cme::CMESolver::CMESolver ( RandomGenerator::Distributions neededDists)
Here is the caller graph for this function:

◆ ~CMESolver()

lm::cme::CMESolver::~CMESolver ( )
virtual
Here is the call graph for this function:

Member Function Documentation

◆ addToParameterTrackingList()

void lm::cme::CMESolver::addToParameterTrackingList ( pair< string, double * > parameter)
virtual
Here is the caller graph for this function:

◆ allocateModel()

void lm::cme::CMESolver::allocateModel ( uint numberSpecies,
uint numberReactions )
protectedvirtual

Reimplemented in lm::rdme::NextSubvolumeSolver.

Here is the caller graph for this function:

◆ buildModel()

void lm::cme::CMESolver::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 )
virtual

Reimplemented in lm::cme::FluctuatingNRSolver, lm::cme::GillespieDSolver, lm::cme::NextReactionSolver, lm::MpdRdmeSolverExtended, lm::rdme::IntMpdRdmeSolver, lm::rdme::IntMpdRdmeSolverExtended, lm::rdme::MGPUIntMpdRdmeSolver, lm::rdme::MGPUMpdRdmeSolver, lm::rdme::MpdRdmeSolver, lm::rdme::MPIMpdRdmeSolver, and MpdRdmeSolver.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ competitiveMMPropensity()

double lm::cme::CMESolver::competitiveMMPropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the caller graph for this function:

◆ destroyModel()

void lm::cme::CMESolver::destroyModel ( )
protectedvirtual

Reimplemented in lm::cme::FluctuatingNRSolver, lm::cme::GillespieDSolver, lm::cme::NextReactionSolver, and lm::rdme::NextSubvolumeSolver.

Here is the caller graph for this function:

◆ firstOrderPropensity()

double lm::cme::CMESolver::firstOrderPropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the caller graph for this function:

◆ generateTrajectory()

◆ getReactionRateConstantsView()

void lm::cme::CMESolver::getReactionRateConstantsView ( int reactionNumber,
double ** rates,
int * rateConstantCount )
virtual

◆ getSpeciesCountView()

void lm::cme::CMESolver::getSpeciesCountView ( uint ** counts,
int * number )
virtual

◆ hookSimulation()

int lm::cme::CMESolver::hookSimulation ( double time)
protectedvirtual

◆ initialize()

void lm::cme::CMESolver::initialize ( unsigned int replicate,
map< string, string > * parameters,
ResourceAllocator::ComputeResources * resources )
virtual

Initialize the simulation.

Parameters
replicateReplicate number out of total replicates
parametersA map of all the parameters for the simulation
Alist of resources assigned to the simulation

Implements lm::me::MESolver.

Reimplemented in lm::rdme::IntMpdRdmeSolver, lm::rdme::MGPUIntMpdRdmeSolver, lm::rdme::MGPUMpdRdmeSolver, lm::rdme::MpdRdmeSolver, lm::rdme::MPIMpdRdmeSolver, and MpdRdmeSolver.

Here is the call graph for this function:

◆ kHillPropensity()

double lm::cme::CMESolver::kHillPropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the caller graph for this function:

◆ kHillTransportPropensity()

double lm::cme::CMESolver::kHillTransportPropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ michaelisMentenPropensity()

double lm::cme::CMESolver::michaelisMentenPropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the caller graph for this function:

◆ noncompetitiveMMPropensity()

double lm::cme::CMESolver::noncompetitiveMMPropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the caller graph for this function:

◆ onBeginTrajectory()

int lm::cme::CMESolver::onBeginTrajectory ( )
protectedvirtual

Reimplemented in lm::cme::GillespieDSolver.

◆ onEndTrajectory()

int lm::cme::CMESolver::onEndTrajectory ( )
protectedvirtual

Reimplemented in lm::cme::GillespieDSolver.

◆ queueRecordedParameters()

void lm::cme::CMESolver::queueRecordedParameters ( bool flush = false)
protectedvirtual
Here is the call graph for this function:
Here is the caller graph for this function:

◆ reachedSpeciesLimit()

bool lm::cme::CMESolver::reachedSpeciesLimit ( )
inlineprotected
Here is the caller graph for this function:

◆ recordParameters()

double lm::cme::CMESolver::recordParameters ( double nextRecordTime,
double recordInterval,
double simulationTime )
protectedvirtual
Here is the call graph for this function:
Here is the caller graph for this function:

◆ secondOrderPropensity()

double lm::cme::CMESolver::secondOrderPropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the caller graph for this function:

◆ secondOrderSelfPropensity()

double lm::cme::CMESolver::secondOrderSelfPropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the caller graph for this function:

◆ setFptTrackingList()

void lm::cme::CMESolver::setFptTrackingList ( list< uint > speciesList)
virtual
Here is the caller graph for this function:

◆ setModelPropensityFunction()

void lm::cme::CMESolver::setModelPropensityFunction ( uint reaction,
double(* propensityFunction )(double time, uint *speciesCounts, void *args),
void * propensityFunctionArg )
virtual
Here is the caller graph for this function:

◆ setReactionModel()

void lm::cme::CMESolver::setReactionModel ( lm::io::ReactionModel * reactionModel)
virtual

Reimplemented in lm::cme::FluctuatingNRSolver, and lm::cme::LacHillSwitch.

Here is the call graph for this function:

◆ setReactionRateCME()

void lm::cme::CMESolver::setReactionRateCME ( unsigned int reactionId,
double rate )
virtual

◆ setSpeciesLowerLimit()

void lm::cme::CMESolver::setSpeciesLowerLimit ( uint species,
uint limit )
virtual
Here is the caller graph for this function:

◆ setSpeciesUpperLimit()

void lm::cme::CMESolver::setSpeciesUpperLimit ( uint species,
uint limit )
virtual
Here is the caller graph for this function:

◆ uncompetitiveMMPropensity()

double lm::cme::CMESolver::uncompetitiveMMPropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the caller graph for this function:

◆ updateSpeciesCounts()

void lm::cme::CMESolver::updateSpeciesCounts ( uint r)
inlineprotected
Here is the caller graph for this function:

◆ zerothOrderHeavisidePropensity()

double lm::cme::CMESolver::zerothOrderHeavisidePropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the caller graph for this function:

◆ zerothOrderPropensity()

double lm::cme::CMESolver::zerothOrderPropensity ( double time,
uint * speciesCounts,
void * pargs )
staticprotected
Here is the caller graph for this function:

Member Data Documentation

◆ D

uint* lm::cme::CMESolver::D
protected

◆ dependentReactions

uint** lm::cme::CMESolver::dependentReactions
protected

◆ dependentSpecies

uint** lm::cme::CMESolver::dependentSpecies
protected

◆ dependentSpeciesChange

int** lm::cme::CMESolver::dependentSpeciesChange
protected

◆ fptTrackedSpecies

FPTTracking* lm::cme::CMESolver::fptTrackedSpecies
protected

◆ initialSpeciesCounts

uint* lm::cme::CMESolver::initialSpeciesCounts
protected

◆ neededDists

RandomGenerator::Distributions lm::cme::CMESolver::neededDists
protected

◆ numberDependentReactions

uint* lm::cme::CMESolver::numberDependentReactions
protected

◆ numberDependentSpecies

uint* lm::cme::CMESolver::numberDependentSpecies
protected

◆ numberFptTrackedSpecies

uint lm::cme::CMESolver::numberFptTrackedSpecies
protected

◆ numberReactions

uint lm::cme::CMESolver::numberReactions
protected

◆ numberSpecies

uint lm::cme::CMESolver::numberSpecies
protected

◆ numberSpeciesLimits

uint lm::cme::CMESolver::numberSpeciesLimits
protected

◆ numberSpeciesToTrack

uint lm::cme::CMESolver::numberSpeciesToTrack
protected

◆ parameters

map<string,string>* lm::cme::CMESolver::parameters
protected

◆ propensityArgs

list<PropensityArgs *> lm::cme::CMESolver::propensityArgs
protected

◆ propensityFunctionArgs

void** lm::cme::CMESolver::propensityFunctionArgs
protected

◆ propensityFunctions

void** lm::cme::CMESolver::propensityFunctions
protected

◆ reactionTypes

uint* lm::cme::CMESolver::reactionTypes
protected

◆ replicate

unsigned int lm::cme::CMESolver::replicate
protected

◆ resources

ResourceAllocator::ComputeResources* lm::cme::CMESolver::resources
protected

◆ rng

RandomGenerator* lm::cme::CMESolver::rng
protected

◆ S

int* lm::cme::CMESolver::S
protected

◆ speciesCounts

uint* lm::cme::CMESolver::speciesCounts
protected

◆ speciesLimits

SpeciesLimit* lm::cme::CMESolver::speciesLimits
protected

◆ trackedParameters

list<TrackedParameter> lm::cme::CMESolver::trackedParameters
protected

The documentation for this class was generated from the following files: