9#ifndef LM_MPDRDMESOLVEREXTENDED_H_ 
   10#define LM_MPDRDMESOLVEREXTENDED_H_ 
   54                           const uint numberReactionsA,
 
   55                           const uint* initialSpeciesCountsA,
 
   56                           const uint* reactionTypesA,
 
   66                               const unsigned int bytes_per_particle,
 
   76                                   const unsigned int bytes_per_particle,
 
   78                                   const uint8_t* latticeData,
 
   79                                   const uint8_t* latticeSitesData,
 
   80                                   bool rowMajorData = 
true);
 
 
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
void useFastSizeAwareDiffusion(bool enable)
bool useFastSizeKernels_
Definition MpdRdmeSolverExtended.h:91
void runSizeAwareTimestep(lm::rdme::CudaByteLatticeExtended *lattice, uint32_t timestep)
int8_t * deviceReactionMatrix
Definition MpdRdmeSolverExtended.h:94
virtual void generateTrajectory()
Actually run the simulation.
void enableParticleSizeChecking(bool enable)
uint8_t * deviceReactionLocationMatrix
Definition MpdRdmeSolverExtended.h:95
virtual ~MpdRdmeSolverExtended()
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 runTimestep(CudaByteLattice *lattice, uint32_t timestep)
void setParticleSizes(const uint32_t *sizes, uint32_t numTypes)
void printConstraintViolations() const
bool particleSizeEnabled
Definition MpdRdmeSolverExtended.h:87
bool isFastSizeCheckingEnabled() const
Definition MpdRdmeSolverExtended.h:50
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)
void initializeFastSizeChecking()
uint32_t numParticleTypes
Definition MpdRdmeSolverExtended.h:89
uint32_t validateConstraints() const
void copyParticleSizesToDevice()
uint32_t getParticleSize(particle_t particleType) const
void initializeParticleSizes()
void runStandardTimestep(lm::rdme::CudaByteLatticeExtended *lattice, uint32_t timestep)
void copyReactionDataToDevice()
bool particleSizesInitialized
Definition MpdRdmeSolverExtended.h:88
uint32_t * hostParticleSizes
Definition MpdRdmeSolverExtended.h:90
void generateSizeAwareTrajectory()
CUDA-accelerated extended ByteLattice with particle size awareness.
Definition CudaByteLatticeExtended.h:35
Definition CudaByteLattice.h:54
Base class for lattice type objects.
Definition Lattice.h:132
Definition MpdRdmeSolver.h:68
Lattice * lattice
Definition RDMESolver.h:73
Definition Capsule.cpp:46