40#ifndef LM_RDME_BYTELATTICE_H_ 
   41#define LM_RDME_BYTELATTICE_H_ 
   61    static void nativeSerialize(
void * destBuffer, 
void * lattice, 
size_t latticeSize);
 
   87    void copySites(
void * destBuffer, 
size_t latticeSize);
 
  113    virtual void getParticleLatticeView(uint8_t **particleLattice, 
int *Nw, 
int *Nz, 
int *Ny, 
int *Nx, 
int *Np);
 
  130    static const uint PARTICLES_PER_WORD = 4;
 
 
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 std::vector< particle_loc_t > findParticles(particle_t minParticleType, particle_t maxParticleType)
Get the number of the specified particles types in the lattice.
Definition ByteLattice.cpp:522
static void nativeSerialize(void *destBuffer, void *lattice, size_t latticeSize)
Definition ByteLattice.cpp:350
virtual void getSiteLatticeView(uint8_t **siteLattice, int *Nz, int *Ny, int *Nx)
Definition ByteLattice.cpp:135
virtual void getParticleLatticeView(uint8_t **particleLattice, int *Nw, int *Nz, int *Ny, int *Nx, int *Np)
Definition ByteLattice.cpp:142
static void copyRowMajorByteToNative(void *destBuffer, void *sourceBuffer, lattice_size_t xSize, lattice_size_t ySize, lattice_size_t zSize, uint particlesPerSite, size_t bufferSize)
Definition ByteLattice.cpp:404
size_t wordsPerSite
Definition ByteLattice.h:125
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 ByteLattice.cpp:187
static void copySitesRowMajorByteToNative(void *destBuffer, void *sourceBuffer, lattice_size_t xSize, lattice_size_t ySize, lattice_size_t zSize, size_t bufferSize)
Definition ByteLattice.cpp:437
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 ByteLattice.cpp:265
virtual site_t getMaxSiteType() const
Get the maximum number of site types possible in the lattice.
Definition ByteLattice.cpp:53
virtual void removeAllParticles()
Empty all particles from the specified site.
Definition ByteLattice.cpp:345
static void copySitesNativeToRowMajorByte(void *destBuffer, void *sourceBuffer, lattice_size_t xSize, lattice_size_t ySize, lattice_size_t zSize, size_t bufferSize)
Definition ByteLattice.cpp:461
virtual void deallocateMemory()
Definition ByteLattice.cpp:120
friend class MPIMpdRdmeSolver
Definition ByteLattice.h:57
virtual void getNeighboringSites(lattice_size_t index, lattice_size_t *neighboringIndices)
Get the sites that are neighbor to the indicated site.
Definition ByteLattice.cpp:81
virtual site_size_t getMaxOccupancy() const
Get the maximum number of particles that can live in a site.
Definition ByteLattice.cpp:55
virtual size_t getLatticeMemorySize() const
Definition ByteLattice.cpp:104
ByteLattice(lattice_coord_t size, si_dist_t spacing, uint particlesPerSite)
Definition ByteLattice.cpp:57
virtual void setSitesFromRowMajorByteData(void *buffer, size_t bufferSize)
Definition ByteLattice.cpp:490
virtual void setFromRowMajorByteData(void *buffer, size_t bufferSize)
Definition ByteLattice.cpp:485
friend class MGPUMpdRdmeSolver
Definition ByteLattice.h:56
uint32_t * particles
Definition ByteLattice.h:126
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 ByteLattice.cpp:228
void copySites(void *destBuffer, size_t latticeSize)
Definition ByteLattice.cpp:364
virtual void removeParticles(lattice_size_t x, lattice_size_t y, lattice_size_t z)
Remove a particle to the specified site.
Definition ByteLattice.cpp:316
virtual uint8_t * getSitesMemory()
Definition ByteLattice.cpp:555
virtual uint32_t * getParticlesMemory()
Definition ByteLattice.cpp:550
virtual std::map< particle_t, uint > getParticleCounts()
Get the number of each particle type in the lattice.
Definition ByteLattice.cpp:495
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 ByteLattice.cpp:169
virtual void allocateMemory()
Definition ByteLattice.cpp:109
uint8_t * siteTypes
Definition ByteLattice.h:127
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 ByteLattice.cpp:151
static void nativeSerializeSites(void *destBuffer, void *lattice, size_t latticeSize)
Definition ByteLattice.cpp:358
static void copyNativeToRowMajorByte(void *destBuffer, void *sourceBuffer, lattice_size_t xSize, lattice_size_t ySize, lattice_size_t zSize, uint particlesPerSite, size_t bufferSize)
Definition ByteLattice.cpp:371
virtual particle_t getMaxParticle() const
Get the maximum number of particle types possible in the lattice.
Definition ByteLattice.cpp:54
friend class MpdRdmeSolver
Definition ByteLattice.h:58
virtual ~ByteLattice()
Definition ByteLattice.cpp:76
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