diff --git a/parmepy/new_ParMePy/Utils/GPUParticularSolver.py b/parmepy/new_ParMePy/Utils/GPUParticularSolver.py
index 2afe1243242185567bdbee02d1d9715aaa183c49..c9183718d1d8ff15022a93d0ced0a359c9001540 100644
--- a/parmepy/new_ParMePy/Utils/GPUParticularSolver.py
+++ b/parmepy/new_ParMePy/Utils/GPUParticularSolver.py
@@ -68,6 +68,7 @@ class GPUParticularSolver(ParticularSolver):
         self.gpu_used_mem = 0
 
         ## Allocation/copy grid velocity
+        self.gvelo.values = np.asarray(self.gvelo.values, dtype=np.float32)
         self.gvelo.gpu_mem_object = cl.Buffer(self.ctx,
             cl.mem_flags.READ_WRITE | cl.mem_flags.COPY_HOST_PTR,
             size=self.gvelo.values.nbytes, hostbuf=self.gvelo.values)
@@ -75,6 +76,7 @@ class GPUParticularSolver(ParticularSolver):
         print "Allocation grid velocity on gpu, size:", self.gvelo.gpu_mem_object.size, 'B'
 
         ## Allocation/copy grid scalar
+        self.gscal.values = np.asarray(self.gscal.values, dtype=np.float32)
         self.gscal.gpu_mem_object = cl.Buffer(self.ctx,
             cl.mem_flags.READ_WRITE | cl.mem_flags.COPY_HOST_PTR,
             size=self.gscal.values.nbytes, hostbuf=self.gscal.values)
@@ -82,6 +84,7 @@ class GPUParticularSolver(ParticularSolver):
         print "Allocation grid scalar on gpu, size:", self.gscal.gpu_mem_object.size, 'B'
 
         ## Allocation/copy particles positions
+        self.ppos.values = np.asarray(self.ppos.values, dtype=np.float32)
         self.ppos.gpu_mem_object = cl.Buffer(self.ctx,
             cl.mem_flags.READ_WRITE | cl.mem_flags.COPY_HOST_PTR,
             size=self.ppos.values.nbytes, hostbuf=self.ppos.values)
@@ -89,6 +92,7 @@ class GPUParticularSolver(ParticularSolver):
         print "Allocation particles positions on gpu, size:", self.ppos.gpu_mem_object.size, 'B'
 
         ## Allocation/copy particles scalar
+        self.pscal.values = np.asarray(self.pscal.values, dtype=np.float32)
         self.pscal.gpu_mem_object = cl.Buffer(self.ctx,
             cl.mem_flags.READ_WRITE | cl.mem_flags.COPY_HOST_PTR,
             size=self.pscal.values.nbytes, hostbuf=self.pscal.values)