40#ifndef LM_RDME_INTLATTICE_H_ 
   41#define LM_RDME_INTLATTICE_H_ 
   61    static void nativeSerialize(
void * destBuffer, 
void * lattice, 
size_t latticeSize);
 
  110    virtual void getParticleLatticeView(uint32_t **particleLattice, 
int *Nw, 
int *Nz, 
int *Ny, 
int *Nx, 
int *Np);
 
  127    static const uint PARTICLES_PER_WORD = 1;
 
 
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
uint32_t site_t
Definition Lattice.h:74
double si_dist_t
Definition Types.h:63
unsigned int uint
Definition Types.h:52
virtual site_size_t getOccupancy(lattice_size_t x, lattice_size_t y, lattice_size_t z) const
Get the number of particles in the specified lattice site.
Definition IntLattice.cpp:175
virtual particle_t getParticle(lattice_size_t x, lattice_size_t y, lattice_size_t z, site_size_t particleIndex) const
Get the particle at the specified site with at the specified number in the particle list.
Definition IntLattice.cpp:213
virtual void setSitesFromRowMajorByteData(void *buffer, size_t bufferSize)
Definition IntLattice.cpp:417
virtual void removeAllParticles()
Empty all particles from the specified site.
Definition IntLattice.cpp:310
virtual void addParticle(lattice_size_t x, lattice_size_t y, lattice_size_t z, particle_t particle)
Add a particle to the specified site.
Definition IntLattice.cpp:240
virtual uint8_t * getSitesMemory()
Definition IntLattice.cpp:469
virtual void * getSiteTypes()
Definition IntLattice.cpp:172
virtual ~IntLattice()
Definition IntLattice.cpp:77
friend class MGPUIntMpdRdmeSolver
Definition IntLattice.h:58
virtual void getSiteLatticeView(uint8_t **siteLattice, int *Nz, int *Ny, int *Nx)
Definition IntLattice.cpp:474
uint8_t * siteTypes
Definition IntLattice.h:124
friend class MPIMpdRdmeSolver
Definition IntLattice.h:57
static void copySitesRowMajorByteToNative(void *destBuffer, void *sourceBuffer, lattice_size_t xSize, lattice_size_t ySize, lattice_size_t zSize, size_t bufferSize)
Definition IntLattice.cpp:382
virtual void setSiteType(lattice_size_t x, lattice_size_t y, lattice_size_t z, site_t siteType)
Set the site type at the specified location.
Definition IntLattice.cpp:154
virtual void allocateMemory()
Definition IntLattice.cpp:110
IntLattice(lattice_coord_t size, si_dist_t spacing, uint particlesPerSite)
Definition IntLattice.cpp:58
virtual uint32_t * getParticlesMemory()
Definition IntLattice.cpp:464
friend class MGPUMpdRdmeSolver
Definition IntLattice.h:56
static void copyRowMajorToNative(void *destBuffer, void *sourceBuffer, lattice_size_t xSize, lattice_size_t ySize, lattice_size_t zSize, uint particlesPerSite, size_t bufferSize)
Definition IntLattice.cpp:352
static void nativeSerialize(void *destBuffer, void *lattice, size_t latticeSize)
Definition IntLattice.cpp:315
virtual void deallocateMemory()
Definition IntLattice.cpp:121
virtual site_t getMaxSiteType() const
Get the maximum number of site types possible in the lattice.
Definition IntLattice.cpp:54
uint wordsPerSite
Definition IntLattice.h:122
virtual site_size_t getMaxOccupancy() const
Get the maximum number of particles that can live in a site.
Definition IntLattice.cpp:56
virtual size_t getLatticeMemorySize() const
Definition IntLattice.cpp:105
virtual std::vector< particle_loc_t > findParticles(particle_t minParticleType, particle_t maxParticleType)
Get the number of the specified particles types in the lattice.
Definition IntLattice.cpp:440
uint32_t * particles
Definition IntLattice.h:123
virtual std::map< particle_t, uint > getParticleCounts()
Get the number of each particle type in the lattice.
Definition IntLattice.cpp:422
virtual particle_t getMaxParticle() const
Get the maximum number of particle types possible in the lattice.
Definition IntLattice.cpp:55
static void copyNativeToRowMajor(void *destBuffer, void *sourceBuffer, lattice_size_t xSize, lattice_size_t ySize, lattice_size_t zSize, uint particlesPerSite, size_t bufferSize)
Definition IntLattice.cpp:323
virtual void getNeighboringSites(lattice_size_t index, lattice_size_t *neighboringIndices)
Get the sites that are neighbor to the indicated site.
Definition IntLattice.cpp:82
virtual site_t getSiteType(lattice_size_t x, lattice_size_t y, lattice_size_t z) const
Get the site type at the specified location.
Definition IntLattice.cpp:136
virtual void setFromRowMajorByteData(void *buffer, size_t bufferSize)
Definition IntLattice.cpp:407
virtual void removeParticles(lattice_size_t x, lattice_size_t y, lattice_size_t z)
Remove a particle to the specified site.
Definition IntLattice.cpp:281
virtual void setFromRowMajorData(void *buffer, size_t bufferSize)
Definition IntLattice.cpp:412
virtual void getParticleLatticeView(uint32_t **particleLattice, int *Nw, int *Nz, int *Ny, int *Nx, int *Np)
Definition IntLattice.cpp:481
Lattice(lattice_coord_t size, si_dist_t spacing)
Create a Lattice object.
Definition Lattice.cpp:65
lattice_coord_t size
Definition Lattice.h:256
si_dist_t spacing
Definition Lattice.h:258
Definition LatticeBuilder.h:60
Definition Capsule.cpp:46
Type to store a lattice coordinate.
Definition Lattice.h:59