40#ifndef LM_RDME_NEXTSUBVOLUMESOLVER_H_
41#define LM_RDME_NEXTSUBVOLUMESOLVER_H_
69 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);
78 virtual void recordSpeciesCounts(
double time, lm::io::SpeciesCounts * speciesCountsDataSet);
uint32_t site_size_t
Definition ByteLatticeExtended.h:23
uint32_t particle_t
Definition ByteLatticeExtended.h:19
uint32_t lattice_size_t
Definition Lattice.h:55
double si_dist_t
Definition Types.h:63
unsigned int uint
Definition Types.h:52
double si_time_t
Definition Types.h:64
Distributions
Types of random number generators that are allowed.
Definition RandomGenerator.h:56
uint numberReactions
Definition CMESolver.h:273
RandomGenerator::Distributions neededDists
Definition CMESolver.h:264
A Lattice that is based on packed bytes of memory, i.e. one byte per lattice site to hold particles.
Definition ByteLattice.h:53
virtual void updateCurrentSubvolumeSpeciesCounts(uint r)
Definition NextSubvolumeSolver.cpp:553
ReactionQueue * reactionQueue
Definition NextSubvolumeSolver.h:95
virtual void writeLatticeData(double time, ByteLattice *lattice, lm::io::Lattice *latticeDataSet)
Definition NextSubvolumeSolver.cpp:338
double latticeSpacingSquared
Definition NextSubvolumeSolver.h:94
NextSubvolumeSolver()
Definition NextSubvolumeSolver.cpp:61
virtual int updateSubvolumePropensity(si_time_t time, lattice_size_t s, int rngNext, double *expRngValues)
Definition NextSubvolumeSolver.cpp:402
virtual void allocateModel(uint numberSpecies, uint numberReactions)
Definition NextSubvolumeSolver.cpp:74
virtual void generateTrajectory()
Actually run the simulation.
Definition NextSubvolumeSolver.cpp:123
virtual void updateSpeciesCountsForSubvolume(lattice_size_t subvolume)
Definition NextSubvolumeSolver.cpp:459
virtual void writeSpeciesCounts(lm::io::SpeciesCounts *speciesCountsDataSet)
Definition NextSubvolumeSolver.cpp:362
virtual bool needsDiffusionModel()
Tells whether the solver needs a reaction model.
Definition NextSubvolumeSolver.h:68
virtual ~NextSubvolumeSolver()
Definition NextSubvolumeSolver.cpp:70
virtual double calculateSubvolumePropensity(si_time_t time, lattice_size_t s)
Definition NextSubvolumeSolver.cpp:421
double * reactionPropensities
Definition NextSubvolumeSolver.h:93
uint * currentSubvolumeSpeciesCounts
Definition NextSubvolumeSolver.h:96
lattice_size_t numberSubvolumes
Definition NextSubvolumeSolver.h:92
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)
Definition NextSubvolumeSolver.cpp:88
virtual bool needsReactionModel()
Tells whether the solver needs a reaction model.
Definition NextSubvolumeSolver.h:67
virtual int performSubvolumeReaction(si_time_t time, lattice_size_t s, int rngNext, double *uniRngValues, bool *affectedNeighbor, lattice_size_t *neighborSubvolume)
Definition NextSubvolumeSolver.cpp:478
virtual void checkSpeciesCountsAgainstLattice()
Definition NextSubvolumeSolver.cpp:328
virtual int updateAllSubvolumePropensities(si_time_t time, int rngNext, double *expRngValues)
Definition NextSubvolumeSolver.cpp:378
virtual void destroyDiffusionModel()
Definition NextSubvolumeSolver.cpp:113
virtual void recordSpeciesCounts(double time, lm::io::SpeciesCounts *speciesCountsDataSet)
Definition NextSubvolumeSolver.cpp:355
virtual void destroyModel()
Definition NextSubvolumeSolver.cpp:82
void addParticles(lattice_size_t subvolume, particle_t particle, uint count)
Definition NextSubvolumeSolver.cpp:561
void updateSubvolumeWithSpeciesCounts(lattice_size_t subvolume)
Definition NextSubvolumeSolver.cpp:471
Definition RDMESolver.h:55
Lattice * lattice
Definition RDMESolver.h:73
RDMESolver(RandomGenerator::Distributions neededDists)
Definition RDMESolver.cpp:58
A queue that contains information on reaction events.
Definition ReactionQueue.h:51
uint numberSpecies
Definition lm_setp.cpp:72
Definition LatticeBuilder.h:56
Definition LatticeBuilder.h:60
Definition Capsule.cpp:46