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

#include <MpdRdmeSolverExtended.h>

Inheritance diagram for lm::MpdRdmeSolverExtended:
[legend]
Collaboration diagram for lm::MpdRdmeSolverExtended:
[legend]

Public Member Functions

 MpdRdmeSolverExtended ()
virtual ~MpdRdmeSolverExtended ()
void setParticleSizes (const uint32_t *sizes, uint32_t numTypes)
void enableParticleSizeChecking (bool enable)
uint32_t getParticleSize (particle_t particleType) const
uint32_t validateConstraints () const
void printConstraintViolations () const
void initializeFastSizeChecking ()
void useFastSizeAwareDiffusion (bool enable)
bool isFastSizeCheckingEnabled () const
virtual void buildModel (const uint numberSpeciesA, const uint numberReactionsA, const uint *initialSpeciesCountsA, const uint *reactionTypesA, const double *KA, const int *SA, const uint *DA, const uint kCols)
virtual void allocateLattice (lattice_size_t latticeXSize, lattice_size_t latticeYSize, lattice_size_t latticeZSize, site_size_t particlesPerSite, const unsigned int bytes_per_particle, si_dist_t latticeSpacing)
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, const 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.
virtual void runTimestep (CudaByteLattice *lattice, uint32_t timestep)
Public Member Functions inherited from lm::rdme::MpdRdmeSolver
 MpdRdmeSolver ()
virtual ~MpdRdmeSolver ()
virtual void initialize (unsigned int replicate, map< string, string > *parameters, ResourceAllocator::ComputeResources *resources)
 Initialize the simulation.
virtual bool needsReactionModel ()
 Tells whether the solver needs a reaction model.
virtual bool needsDiffusionModel ()
 Tells whether the solver needs a reaction model.
virtual void setReactionRate (unsigned int rxid, float rate)
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 setReactionModel (lm::io::ReactionModel *reactionModel)
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

void initializeParticleSizes ()
void copyParticleSizesToDevice ()
void copyReactionDataToDevice ()
void generateSizeAwareTrajectory ()
void runSizeAwareTimestep (lm::rdme::CudaByteLatticeExtended *lattice, uint32_t timestep)
void runStandardTimestep (lm::rdme::CudaByteLatticeExtended *lattice, uint32_t timestep)
Protected Member Functions inherited from lm::rdme::MpdRdmeSolver
virtual int onBeginTrajectory (CudaByteLattice *lattice)
virtual int onEndTrajectory (CudaByteLattice *lattice)
virtual int onWriteLattice (double time, CudaByteLattice *lattice)
virtual void writeLatticeData (double time, CudaByteLattice *lattice, lm::io::Lattice *latticeDataSet)
virtual void writeLatticeSites (double time, CudaByteLattice *lattice)
virtual void recordSpeciesCounts (double time, CudaByteLattice *lattice, lm::io::SpeciesCounts *speciesCountsDataSet)
virtual void writeSpeciesCounts (lm::io::SpeciesCounts *speciesCountsDataSet)
virtual int hookSimulation (double time, CudaByteLattice *lattice)
virtual void hookCheckSimulation (double time, CudaByteLattice *lattice)
virtual uint64_t getTimestepSeed (uint32_t timestep, uint32_t substep)
virtual void computePropensities ()
virtual void copyModelsToDevice ()
virtual void calculateXLaunchParameters (unsigned int *gridXSize, dim3 *gridSize, dim3 *threadBlockSize, const unsigned int maxXBlockSize, const unsigned int latticeXSize, const unsigned int latticeYSize, const unsigned int latticeZSize)
virtual void calculateYLaunchParameters (unsigned int *gridXSize, dim3 *gridSize, dim3 *threadBlockSize, const unsigned int blockXSize, const unsigned int blockYSize, const unsigned int latticeXSize, const unsigned int latticeYSize, const unsigned int latticeZSize)
virtual void calculateZLaunchParameters (unsigned int *gridXSize, dim3 *gridSize, dim3 *threadBlockSize, const unsigned int blockXSize, const unsigned int blockZSize, const unsigned int latticeXSize, const unsigned int latticeYSize, const unsigned int latticeZSize)
virtual void calculateReactionLaunchParameters (unsigned int *gridXSize, dim3 *gridSize, dim3 *threadBlockSize, const unsigned int blockXSize, const unsigned int blockYSize, const unsigned int latticeXSize, const unsigned int latticeYSize, const unsigned int latticeZSize)
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 setLatticeData (const uint8_t *latticeData)
virtual void setLatticeSitesData (const uint8_t *latticeSitesData)
virtual void destroyDiffusionModel ()
Protected Member Functions inherited from lm::cme::CMESolver
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 ()

Protected Attributes

bool particleSizeEnabled
bool particleSizesInitialized
uint32_t numParticleTypes
uint32_t * hostParticleSizes
bool useFastSizeKernels_
int8_t * deviceReactionMatrix
uint8_t * deviceReactionLocationMatrix
Protected Attributes inherited from lm::rdme::MpdRdmeSolver
uint32_t seed
double tau
bool reactionModelModified
void * cudaOverflowList
cudaStream_t cudaStream
uint32_t overflowTimesteps
uint32_t overflowListUses
int overflow_handling
float * model_reactionRates
size_t zeroOrderSize
size_t firstOrderSize
size_t secondOrderSize
float * zeroOrder
float * firstOrder
float * secondOrder
float * propZeroOrder
float * propFirstOrder
float * propSecondOrder
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)

Detailed Description

Extended MPD RDME solver with particle size support.

This solver extends MpdRdmeSolver to support particle size-aware diffusion and reactions. It uses ByteLattice format (1 byte per particle) which is compatible with the particle size kernel system.

Constructor & Destructor Documentation

◆ MpdRdmeSolverExtended()

lm::MpdRdmeSolverExtended::MpdRdmeSolverExtended ( )

◆ ~MpdRdmeSolverExtended()

virtual lm::MpdRdmeSolverExtended::~MpdRdmeSolverExtended ( )
virtual

Member Function Documentation

◆ allocateLattice()

virtual void lm::MpdRdmeSolverExtended::allocateLattice ( lattice_size_t latticeXSize,
lattice_size_t latticeYSize,
lattice_size_t latticeZSize,
site_size_t particlesPerSite,
const unsigned int bytes_per_particle,
si_dist_t latticeSpacing )
virtual

Reimplemented from lm::rdme::MpdRdmeSolver.

◆ buildDiffusionModel()

virtual void lm::MpdRdmeSolverExtended::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,
const 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::MpdRdmeSolver.

◆ buildModel()

virtual void lm::MpdRdmeSolverExtended::buildModel ( const uint numberSpeciesA,
const uint numberReactionsA,
const uint * initialSpeciesCountsA,
const uint * reactionTypesA,
const double * KA,
const int * SA,
const uint * DA,
const uint kCols )
virtual

Reimplemented from lm::rdme::MpdRdmeSolver.

◆ copyParticleSizesToDevice()

void lm::MpdRdmeSolverExtended::copyParticleSizesToDevice ( )
protected

◆ copyReactionDataToDevice()

void lm::MpdRdmeSolverExtended::copyReactionDataToDevice ( )
protected

◆ enableParticleSizeChecking()

void lm::MpdRdmeSolverExtended::enableParticleSizeChecking ( bool enable)

◆ generateSizeAwareTrajectory()

void lm::MpdRdmeSolverExtended::generateSizeAwareTrajectory ( )
protected

◆ generateTrajectory()

virtual void lm::MpdRdmeSolverExtended::generateTrajectory ( )
virtual

Actually run the simulation.

Reimplemented from lm::rdme::MpdRdmeSolver.

◆ getParticleSize()

uint32_t lm::MpdRdmeSolverExtended::getParticleSize ( particle_t particleType) const

◆ initializeFastSizeChecking()

void lm::MpdRdmeSolverExtended::initializeFastSizeChecking ( )

◆ initializeParticleSizes()

void lm::MpdRdmeSolverExtended::initializeParticleSizes ( )
protected

◆ isFastSizeCheckingEnabled()

bool lm::MpdRdmeSolverExtended::isFastSizeCheckingEnabled ( ) const
inline

◆ printConstraintViolations()

void lm::MpdRdmeSolverExtended::printConstraintViolations ( ) const

◆ runSizeAwareTimestep()

void lm::MpdRdmeSolverExtended::runSizeAwareTimestep ( lm::rdme::CudaByteLatticeExtended * lattice,
uint32_t timestep )
protected

◆ runStandardTimestep()

void lm::MpdRdmeSolverExtended::runStandardTimestep ( lm::rdme::CudaByteLatticeExtended * lattice,
uint32_t timestep )
protected

◆ runTimestep()

virtual void lm::MpdRdmeSolverExtended::runTimestep ( CudaByteLattice * lattice,
uint32_t timestep )
virtual

Reimplemented from lm::rdme::MpdRdmeSolver.

◆ setParticleSizes()

void lm::MpdRdmeSolverExtended::setParticleSizes ( const uint32_t * sizes,
uint32_t numTypes )

◆ useFastSizeAwareDiffusion()

void lm::MpdRdmeSolverExtended::useFastSizeAwareDiffusion ( bool enable)

◆ validateConstraints()

uint32_t lm::MpdRdmeSolverExtended::validateConstraints ( ) const

Member Data Documentation

◆ deviceReactionLocationMatrix

uint8_t* lm::MpdRdmeSolverExtended::deviceReactionLocationMatrix
protected

◆ deviceReactionMatrix

int8_t* lm::MpdRdmeSolverExtended::deviceReactionMatrix
protected

◆ hostParticleSizes

uint32_t* lm::MpdRdmeSolverExtended::hostParticleSizes
protected

◆ numParticleTypes

uint32_t lm::MpdRdmeSolverExtended::numParticleTypes
protected

◆ particleSizeEnabled

bool lm::MpdRdmeSolverExtended::particleSizeEnabled
protected

◆ particleSizesInitialized

bool lm::MpdRdmeSolverExtended::particleSizesInitialized
protected

◆ useFastSizeKernels_

bool lm::MpdRdmeSolverExtended::useFastSizeKernels_
protected

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