diff options
Diffstat (limited to 'simulation.py')
-rw-r--r-- | simulation.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/simulation.py b/simulation.py index 7ddeb45..a274be4 100644 --- a/simulation.py +++ b/simulation.py @@ -177,8 +177,12 @@ class Lattice: self.material = numpy.ndarray(shape=(self.memory.volume, 1), dtype=numpy.int32) def apply_material_map(self, material_map): - for indicator, material in material_map: - self.material[[indicator(*idx) for idx in self.memory.cells()]] = material + for primitive, material in material_map: + if callable(primitive): + self.material[[primitive(*idx) for idx in self.memory.cells()]] = material + else: + indicator = primitive.indicator() + self.material[[indicator(*idx) for idx in self.memory.cells()]] = material def sync_material(self): cl.enqueue_copy(self.queue, self.memory.cl_material, self.material).wait(); |