aboutsummaryrefslogtreecommitdiff
path: root/boltzgas/initial_condition.py
diff options
context:
space:
mode:
authorAdrian Kummerlaender2020-03-26 21:30:05 +0100
committerAdrian Kummerlaender2020-03-26 21:30:05 +0100
commit18c27ca60bc364d5e6cb811f56ec8c4f72867ac9 (patch)
tree1ad7ba010272b9d04c822e33a00a28d48be19274 /boltzgas/initial_condition.py
parent2af16451f5119398c34ef9bd8626791e0498b9ab (diff)
downloadboltzgas-18c27ca60bc364d5e6cb811f56ec8c4f72867ac9.tar
boltzgas-18c27ca60bc364d5e6cb811f56ec8c4f72867ac9.tar.gz
boltzgas-18c27ca60bc364d5e6cb811f56ec8c4f72867ac9.tar.bz2
boltzgas-18c27ca60bc364d5e6cb811f56ec8c4f72867ac9.tar.lz
boltzgas-18c27ca60bc364d5e6cb811f56ec8c4f72867ac9.tar.xz
boltzgas-18c27ca60bc364d5e6cb811f56ec8c4f72867ac9.tar.zst
boltzgas-18c27ca60bc364d5e6cb811f56ec8c4f72867ac9.zip
Prototype port to 3D
What is it with OpenCL @ GPU and arrays of 3-dimensional vectors?! Luckily I vaguely remembered encountering this problem before when implementing my OpenCL LBM code but why on earth is the compiler not warning about this? I guess the underlying reason has to do with the data alignment requirements on the GPU but still...
Diffstat (limited to 'boltzgas/initial_condition.py')
-rw-r--r--boltzgas/initial_condition.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/boltzgas/initial_condition.py b/boltzgas/initial_condition.py
index 4d66263..2526566 100644
--- a/boltzgas/initial_condition.py
+++ b/boltzgas/initial_condition.py
@@ -1,15 +1,20 @@
import numpy as np
def grid_of_random_velocity_particles(width, radius, u_scale):
- np_position = np.ndarray((width**2, 2))
- np_velocity = np.ndarray((width**2, 2))
+ np_position = np.ndarray((width**3, 4))
+ np_velocity = np.ndarray((width**3, 4))
grid = np.meshgrid(np.linspace(2*radius, 1-2*radius, width),
+ np.linspace(2*radius, 1-2*radius, width),
np.linspace(2*radius, 1-2*radius, width))
np_position[:,0] = grid[0].flatten()
np_position[:,1] = grid[1].flatten()
+ np_position[:,2] = grid[2].flatten()
+ np_position[:,3] = 0
- np_velocity[:,0] = u_scale*(-0.5 + np.random.random_sample((width**2,)))
- np_velocity[:,1] = u_scale*(-0.5 + np.random.random_sample((width**2,)))
+ np_velocity[:,0] = u_scale*(-0.5 + np.random.random_sample((width**3,)))
+ np_velocity[:,1] = u_scale*(-0.5 + np.random.random_sample((width**3,)))
+ np_velocity[:,2] = u_scale*(-0.5 + np.random.random_sample((width**3,)))
+ np_velocity[:,3] = 0
return (np_position, np_velocity)