13#ifndef LM_RDME_INTMPDRDMESOLVEREXTENDED_H 
   14#define LM_RDME_INTMPDRDMESOLVEREXTENDED_H 
   38                           const uint numberReactionsA,
 
   39                           const uint* initialSpeciesCountsA,
 
   40                           const uint* reactionTypesA,
 
   44                           const uint kCols) 
override;
 
   53                                    const unsigned int bytes_per_particle,
 
   55                                    const uint8_t* latticeData,
 
   56                                    const uint8_t* latticeSitesData,
 
   57                                    bool rowMajorData) 
override;
 
   69                               uint32_t maxOccupancy);
 
   76    uint32_t* hostParticleSizes;      
 
   77    uint32_t numParticleTypes;        
 
   78    bool particleSizeEnabled;         
 
   79    bool particleSizesInitialized;    
 
   82    uint8_t* deviceReactionMatrix;    
 
   83    uint8_t* deviceReactionLocationMatrix; 
 
   86    void initializeParticleSizes();
 
   87    void copyReactionDataToDevice();
 
   92    void calculateSizeAwareLaunchParameters(dim3* gridSize, dim3* blockSize,
 
   93                                           uint32_t latticeXSize,
 
   94                                           uint32_t latticeYSize,
 
   95                                           uint32_t latticeZSize);
 
 
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
Definition CudaIntLattice.h:54
uint32_t getParticleSize(particle_t particleType) const
bool isParticleSizeCheckingEnabled() const
Definition IntMpdRdmeSolverExtended.h:64
IntMpdRdmeSolverExtended()
virtual void runTimestep(CudaIntLattice *lattice, uint32_t timestep) override
void setParticleSizes(const uint32_t *sizes, uint32_t numTypes)
uint32_t validateConstraints(CudaIntLattice *lattice)
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) override
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) override
virtual ~IntMpdRdmeSolverExtended()
void getOccupancyStatistics(CudaIntLattice *lattice, uint32_t *occupancyCounts, uint32_t maxOccupancy)
void enableParticleSizeChecking(bool enable=true)
Lattice * lattice
Definition RDMESolver.h:73
Definition LatticeBuilder.h:60
Definition Capsule.cpp:46