9#ifndef LM_RDME_BYTELATTICEEXTENDED_H_ 
   10#define LM_RDME_BYTELATTICEEXTENDED_H_ 
   45                       bool enableSizeChecking = 
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
uint32_t maxSiteCapacity_
Maximum site capacity.
Definition ByteLatticeExtended.h:186
void setSizeCheckingEnabled(bool enable)
Enable or disable size checking.
Definition ByteLatticeExtended.cpp:125
std::unique_ptr< ParticleSizeManager > sizeManager_
Particle size manager.
Definition ByteLatticeExtended.h:184
const ParticleSizeManager & getParticleSizeManager() const
Get the particle size manager.
Definition ByteLatticeExtended.cpp:134
site_size_t getParticlesAtSite(lattice_size_t subvolume, particle_t *particles, site_size_t maxCount) const
Get particles at a site for size calculation.
Definition ByteLatticeExtended.cpp:176
void validateSizeConstraints() const
Validate entire lattice for size constraints.
Definition ByteLatticeExtended.cpp:138
uint32_t getMaxParticleCount(lattice_size_t x, lattice_size_t y, lattice_size_t z, particle_t particleType) const
Get maximum number of particles of a type that can fit.
Definition ByteLatticeExtended.cpp:109
virtual ~ByteLatticeExtended()=default
Destructor.
uint32_t getSizeBasedOccupancy(lattice_size_t x, lattice_size_t y, lattice_size_t z) const
Get current occupancy considering particle sizes.
Definition ByteLatticeExtended.cpp:46
virtual void addParticleWithSizeCheck(lattice_size_t x, lattice_size_t y, lattice_size_t z, particle_t particle)
Add particle with size validation.
Definition ByteLatticeExtended.cpp:84
ByteLatticeExtended(lattice_coord_t size, si_dist_t spacing, uint particlesPerSite, bool enableSizeChecking=true)
Constructor with particle size support.
Definition ByteLatticeExtended.cpp:15
uint32_t getParticleSize(particle_t particleType) const
Get the size for a particle type.
Definition ByteLatticeExtended.cpp:42
bool isSizeCheckingEnabled() const
Check if size checking is enabled.
Definition ByteLatticeExtended.cpp:130
bool canAddParticle(lattice_size_t x, lattice_size_t y, lattice_size_t z, particle_t particle) const
Check if particle can be added without exceeding capacity.
Definition ByteLatticeExtended.cpp:65
bool sizeCheckingEnabled_
Enable size validation.
Definition ByteLatticeExtended.h:185
std::map< uint32_t, uint32_t > getSizeBasedOccupancyStats() const
Get occupancy statistics considering particle sizes.
Definition ByteLatticeExtended.cpp:164
void setParticleSize(particle_t particleType, uint32_t size)
Set the size for a particle type.
Definition ByteLatticeExtended.cpp:38
ByteLattice(lattice_coord_t size, si_dist_t spacing, uint particlesPerSite)
Definition ByteLattice.cpp:57
uint32_t * particles
Definition ByteLattice.h:126
lattice_coord_t size
Definition Lattice.h:256
si_dist_t spacing
Definition Lattice.h:258
Manages particle sizes and validates site occupancy constraints.
Definition ParticleSizeManager.h:48
Definition Capsule.cpp:46
Type to store a lattice coordinate.
Definition Lattice.h:59