aboutsummaryrefslogtreecommitdiff
path: root/simulation.py
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-06-22 19:59:36 +0200
committerAdrian Kummerlaender2019-06-22 19:59:36 +0200
commite096aca2a38141ff0f3e78f3ebadd7a58760f7a6 (patch)
treef503e577d8bfd2df0ad832d2140b8bb41472e970 /simulation.py
parent4df2d7678755c652f7af3d579a812dfc091a00e6 (diff)
downloadsymlbm_playground-e096aca2a38141ff0f3e78f3ebadd7a58760f7a6.tar
symlbm_playground-e096aca2a38141ff0f3e78f3ebadd7a58760f7a6.tar.gz
symlbm_playground-e096aca2a38141ff0f3e78f3ebadd7a58760f7a6.tar.bz2
symlbm_playground-e096aca2a38141ff0f3e78f3ebadd7a58760f7a6.tar.lz
symlbm_playground-e096aca2a38141ff0f3e78f3ebadd7a58760f7a6.tar.xz
symlbm_playground-e096aca2a38141ff0f3e78f3ebadd7a58760f7a6.tar.zst
symlbm_playground-e096aca2a38141ff0f3e78f3ebadd7a58760f7a6.zip
Add interactive 2D LDC notebook, fix material initialization
Diffstat (limited to 'simulation.py')
-rw-r--r--simulation.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/simulation.py b/simulation.py
index 20b87c8..74c59ac 100644
--- a/simulation.py
+++ b/simulation.py
@@ -68,8 +68,6 @@ class Lattice:
properties=[(cl.context_properties.PLATFORM, self.platform)])
self.queue = cl.CommandQueue(self.context)
- self.np_material = numpy.ndarray(shape=(self.geometry.volume, 1), dtype=numpy.int32)
-
self.pop_size = descriptor.q * self.geometry.volume * self.float_type[0](0).nbytes
self.moments_size = (descriptor.d+1) * self.geometry.volume * self.float_type[0](0).nbytes
@@ -85,7 +83,7 @@ class Lattice:
else:
self.cl_moments = cl.Buffer(self.context, mf.WRITE_ONLY, size=self.moments_size)
- self.cl_material = cl.Buffer(self.context, mf.READ_ONLY | mf.USE_HOST_PTR, hostbuf=self.np_material)
+ self.cl_material = cl.Buffer(self.context, mf.READ_ONLY, size=self.geometry.volume * numpy.int32(0).nbytes)
self.build_kernel()
@@ -105,10 +103,13 @@ class Lattice:
return z * (self.geometry.size_x*self.geometry.size_y) + y * self.geometry.size_x + x;
def setup_geometry(self, material_at):
+ material = numpy.ndarray(shape=(self.geometry.volume, 1), dtype=numpy.int32)
+ material[:,:] = 0
+
for idx in self.geometry.inner_cells():
- self.np_material[self.gid(*idx)] = material_at(self.geometry, *idx)
+ material[self.gid(*idx)] = material_at(self.geometry, *idx)
- cl.enqueue_copy(self.queue, self.cl_material, self.np_material).wait();
+ cl.enqueue_copy(self.queue, self.cl_material, material).wait();
def build_kernel(self):
program_src = Template(filename = str(Path(__file__).parent/'template/kernel.mako')).render(