18#ifndef LM_PARTICLE_SIZE_MANAGER_H
19#define LM_PARTICLE_SIZE_MANAGER_H
93 particle_t newParticle, uint32_t maxCapacity)
const;
106 uint32_t maxCapacity)
const;
116 uint32_t maxCapacity)
const;
154 std::vector<uint32_t> particleSizes_;
155 uint32_t maxParticleTypes_;
uint32_t site_size_t
Definition ByteLatticeExtended.h:23
uint32_t particle_t
Definition ByteLatticeExtended.h:19
Exception(const char *message="")
Create an Exception.
Definition Exceptions.h:62
ParticleSizeException(const char *message)
Definition ParticleSizeManager.h:169
ParticleSizeException(const std::string &message)
Definition ParticleSizeManager.h:172
bool canAddParticles(const particle_t *particles, site_size_t count, const particle_t *newParticles, site_size_t newCount, uint32_t maxCapacity) const
Check if particles can be added without exceeding capacity.
Definition ParticleSizeManager.cpp:68
std::map< particle_t, uint32_t > getParticleSizesDict() const
Get particle sizes as a dictionary/map.
Definition ParticleSizeManager.cpp:127
const std::vector< uint32_t > & getParticleSizes() const
Get all configured particle sizes.
Definition ParticleSizeManager.cpp:100
uint32_t getMaxParticleCount(particle_t particleType, uint32_t currentOccupancy, uint32_t maxCapacity) const
Get maximum number of particles of a type that can fit.
Definition ParticleSizeManager.cpp:77
ParticleSizeManager(uint32_t maxParticleTypes=256)
Constructor with maximum particle types.
Definition ParticleSizeManager.cpp:16
void setParticleSizesFromDict(const std::map< particle_t, uint32_t > &sizeDict)
Set particle sizes from a dictionary/map.
Definition ParticleSizeManager.cpp:121
uint32_t getParticleSize(particle_t particleType) const
Get the size for a specific particle type.
Definition ParticleSizeManager.cpp:39
void validateConfiguration() const
Validate particle size configuration.
Definition ParticleSizeManager.cpp:90
size_t getConfiguredParticleCount() const
Get number of configured particle types.
Definition ParticleSizeManager.cpp:108
~ParticleSizeManager()=default
Destructor.
void setParticleSize(particle_t particleType, uint32_t size)
Set the size for a specific particle type.
Definition ParticleSizeManager.cpp:21
void clear()
Clear all particle size configurations.
Definition ParticleSizeManager.cpp:104
bool canAddParticle(const particle_t *particles, site_size_t count, particle_t newParticle, uint32_t maxCapacity) const
Check if adding a particle would exceed capacity.
Definition ParticleSizeManager.cpp:60
uint32_t calculateSiteOccupancy(const particle_t *particles, site_size_t count) const
Calculate total size of particles at a site.
Definition ParticleSizeManager.cpp:46
Definition SimulationParameters.h:51
Definition LatticeBuilder.h:60
Definition Capsule.cpp:46