Lattice Microbes 2.5
This is for whole cell modeling
Loading...
Searching...
No Matches
lm::rdme::NextSubvolumeSolver Class Reference

#include <NextSubvolumeSolver.h>

Inheritance diagram for lm::rdme::NextSubvolumeSolver:
[legend]
Collaboration diagram for lm::rdme::NextSubvolumeSolver:
[legend]

Public Member Functions

 NextSubvolumeSolver ()
 NextSubvolumeSolver (RandomGenerator::Distributions neededDists)
virtual ~NextSubvolumeSolver ()
virtual bool needsReactionModel ()
 Tells whether the solver needs a reaction model.
virtual bool needsDiffusionModel ()
 Tells whether the solver needs a reaction model.
virtual void buildDiffusionModel (const uint numberSiteTypesA, const double *DFA, const uint *RLA, lattice_size_t latticeXSize, lattice_size_t latticeYSize, lattice_size_t latticeZSize, site_size_t particlesPerSite, unsigned int bytes_per_particle, si_dist_t latticeSpacing, const uint8_t *latticeData, const uint8_t *latticeSitesData, bool rowMajorData=true)
virtual void generateTrajectory ()
 Actually run the simulation.
Public Member Functions inherited from lm::rdme::RDMESolver
 RDMESolver (RandomGenerator::Distributions neededDists)
virtual ~RDMESolver ()
virtual void setDiffusionModel (DiffusionModel *dm, const uint8_t *lattice, size_t latticeSize, const uint8_t *latticeSites, size_t latticeSitesSize)
Public Member Functions inherited from lm::cme::CMESolver
 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 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 ()

Protected Member Functions

virtual void allocateModel (uint numberSpecies, uint numberReactions)
virtual void destroyModel ()
virtual void destroyDiffusionModel ()
virtual void checkSpeciesCountsAgainstLattice ()
virtual void writeLatticeData (double time, ByteLattice *lattice, lm::io::Lattice *latticeDataSet)
virtual void recordSpeciesCounts (double time, lm::io::SpeciesCounts *speciesCountsDataSet)
virtual void writeSpeciesCounts (lm::io::SpeciesCounts *speciesCountsDataSet)
virtual int updateAllSubvolumePropensities (si_time_t time, int rngNext, double *expRngValues)
virtual int updateSubvolumePropensity (si_time_t time, lattice_size_t s, int rngNext, double *expRngValues)
virtual double calculateSubvolumePropensity (si_time_t time, lattice_size_t s)
virtual int performSubvolumeReaction (si_time_t time, lattice_size_t s, int rngNext, double *uniRngValues, bool *affectedNeighbor, lattice_size_t *neighborSubvolume)
virtual void updateCurrentSubvolumeSpeciesCounts (uint r)
virtual void updateSpeciesCountsForSubvolume (lattice_size_t subvolume)
void updateSubvolumeWithSpeciesCounts (lattice_size_t subvolume)
void addParticles (lattice_size_t subvolume, particle_t particle, uint count)
Protected Member Functions inherited from lm::rdme::RDMESolver
virtual void allocateDiffusionModel (uint numberSiteTypesA, lattice_size_t latticeXSize, lattice_size_t latticeYSize, lattice_size_t latticeZSize, site_size_t particlesPerSite, unsigned int bytes_per_particle, si_dist_t latticeSpacing)
virtual void allocateLattice (lattice_size_t latticeXSize, lattice_size_t latticeYSize, lattice_size_t latticeZSize, site_size_t particlesPerSite, unsigned int bytes_per_particle, si_dist_t latticeSpacing)
virtual void setLatticeData (const uint8_t *latticeData)
virtual void setLatticeSitesData (const uint8_t *latticeSitesData)
Protected Member Functions inherited from lm::cme::CMESolver
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 ()

Protected Attributes

lattice_size_t numberSubvolumes
double * reactionPropensities
double latticeSpacingSquared
ReactionQueuereactionQueue
uintcurrentSubvolumeSpeciesCounts
Protected Attributes inherited from lm::rdme::RDMESolver
uint numberSiteTypes
double * DF
uintRL
Latticelattice
Protected Attributes inherited from lm::cme::CMESolver
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

Additional Inherited Members

Static Protected Member Functions inherited from lm::cme::CMESolver
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)

Constructor & Destructor Documentation

◆ NextSubvolumeSolver() [1/2]

lm::rdme::NextSubvolumeSolver::NextSubvolumeSolver ( )
Here is the call graph for this function:

◆ NextSubvolumeSolver() [2/2]

lm::rdme::NextSubvolumeSolver::NextSubvolumeSolver ( RandomGenerator::Distributions neededDists)
Here is the call graph for this function:

◆ ~NextSubvolumeSolver()

lm::rdme::NextSubvolumeSolver::~NextSubvolumeSolver ( )
virtual

Member Function Documentation

◆ addParticles()

void lm::rdme::NextSubvolumeSolver::addParticles ( lattice_size_t subvolume,
particle_t particle,
uint count )
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ allocateModel()

void lm::rdme::NextSubvolumeSolver::allocateModel ( uint numberSpecies,
uint numberReactions )
protectedvirtual

Reimplemented from lm::cme::CMESolver.

Here is the call graph for this function:

◆ buildDiffusionModel()

void lm::rdme::NextSubvolumeSolver::buildDiffusionModel ( const uint numberSiteTypesA,
const double * DFA,
const uint * RLA,
lattice_size_t latticeXSize,
lattice_size_t latticeYSize,
lattice_size_t latticeZSize,
site_size_t particlesPerSite,
unsigned int bytes_per_particle,
si_dist_t latticeSpacing,
const uint8_t * latticeData,
const uint8_t * latticeSitesData,
bool rowMajorData = true )
virtual

Reimplemented from lm::rdme::RDMESolver.

Here is the call graph for this function:

◆ calculateSubvolumePropensity()

double lm::rdme::NextSubvolumeSolver::calculateSubvolumePropensity ( si_time_t time,
lattice_size_t s )
protectedvirtual
Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkSpeciesCountsAgainstLattice()

void lm::rdme::NextSubvolumeSolver::checkSpeciesCountsAgainstLattice ( )
protectedvirtual
Here is the caller graph for this function:

◆ destroyDiffusionModel()

void lm::rdme::NextSubvolumeSolver::destroyDiffusionModel ( )
protectedvirtual

Reimplemented from lm::rdme::RDMESolver.

Here is the call graph for this function:

◆ destroyModel()

void lm::rdme::NextSubvolumeSolver::destroyModel ( )
protectedvirtual

Reimplemented from lm::cme::CMESolver.

Here is the call graph for this function:

◆ generateTrajectory()

void lm::rdme::NextSubvolumeSolver::generateTrajectory ( )
virtual

Actually run the simulation.

Implements lm::cme::CMESolver.

Here is the call graph for this function:

◆ needsDiffusionModel()

virtual bool lm::rdme::NextSubvolumeSolver::needsDiffusionModel ( )
inlinevirtual

Tells whether the solver needs a reaction model.

Implements lm::me::MESolver.

◆ needsReactionModel()

virtual bool lm::rdme::NextSubvolumeSolver::needsReactionModel ( )
inlinevirtual

Tells whether the solver needs a reaction model.

Implements lm::me::MESolver.

◆ performSubvolumeReaction()

int lm::rdme::NextSubvolumeSolver::performSubvolumeReaction ( si_time_t time,
lattice_size_t s,
int rngNext,
double * uniRngValues,
bool * affectedNeighbor,
lattice_size_t * neighborSubvolume )
protectedvirtual
Here is the call graph for this function:
Here is the caller graph for this function:

◆ recordSpeciesCounts()

void lm::rdme::NextSubvolumeSolver::recordSpeciesCounts ( double time,
lm::io::SpeciesCounts * speciesCountsDataSet )
protectedvirtual
Here is the caller graph for this function:

◆ updateAllSubvolumePropensities()

int lm::rdme::NextSubvolumeSolver::updateAllSubvolumePropensities ( si_time_t time,
int rngNext,
double * expRngValues )
protectedvirtual
Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateCurrentSubvolumeSpeciesCounts()

void lm::rdme::NextSubvolumeSolver::updateCurrentSubvolumeSpeciesCounts ( uint r)
protectedvirtual
Here is the caller graph for this function:

◆ updateSpeciesCountsForSubvolume()

void lm::rdme::NextSubvolumeSolver::updateSpeciesCountsForSubvolume ( lattice_size_t subvolume)
protectedvirtual
Here is the caller graph for this function:

◆ updateSubvolumePropensity()

int lm::rdme::NextSubvolumeSolver::updateSubvolumePropensity ( si_time_t time,
lattice_size_t s,
int rngNext,
double * expRngValues )
protectedvirtual
Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateSubvolumeWithSpeciesCounts()

void lm::rdme::NextSubvolumeSolver::updateSubvolumeWithSpeciesCounts ( lattice_size_t subvolume)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeLatticeData()

void lm::rdme::NextSubvolumeSolver::writeLatticeData ( double time,
ByteLattice * lattice,
lm::io::Lattice * latticeDataSet )
protectedvirtual
Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeSpeciesCounts()

void lm::rdme::NextSubvolumeSolver::writeSpeciesCounts ( lm::io::SpeciesCounts * speciesCountsDataSet)
protectedvirtual
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ currentSubvolumeSpeciesCounts

uint* lm::rdme::NextSubvolumeSolver::currentSubvolumeSpeciesCounts
protected

◆ latticeSpacingSquared

double lm::rdme::NextSubvolumeSolver::latticeSpacingSquared
protected

◆ numberSubvolumes

lattice_size_t lm::rdme::NextSubvolumeSolver::numberSubvolumes
protected

◆ reactionPropensities

double* lm::rdme::NextSubvolumeSolver::reactionPropensities
protected

◆ reactionQueue

ReactionQueue* lm::rdme::NextSubvolumeSolver::reactionQueue
protected

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