From a31a7e6db7910bd208b6b556ae7227705fe20557 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Oberhuber?= <oberhuber.tomas@gmail.com>
Date: Sat, 5 Jan 2019 08:34:20 +0100
Subject: [PATCH] Refactoring of Grid 1D traverser.

---
 .../Meshes/GridDetails/GridTraverser_1D.hpp   | 26 ++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/src/TNL/Meshes/GridDetails/GridTraverser_1D.hpp b/src/TNL/Meshes/GridDetails/GridTraverser_1D.hpp
index 505f9c3d74..5b35d5be97 100644
--- a/src/TNL/Meshes/GridDetails/GridTraverser_1D.hpp
+++ b/src/TNL/Meshes/GridDetails/GridTraverser_1D.hpp
@@ -199,7 +199,31 @@ processEntities(
    }
    else
    {
-      dim3 cudaBlockSize( 256 );
+      dim3 blockSize( 256 ), blocksCount, gridsCount;
+      Devices::Cuda::setupThreads(
+         blockSize,
+         blocksCount,
+         gridsCount,
+         end.x() - begin.x() + 1 );
+      dim3 gridIdx;
+      for( gridIdx.x = 0; gridIdx.x < gridsCount.x; gridIdx.x++ )
+      {
+         dim3 gridSize;
+         Devices::Cuda::setupGrid(
+            blocksCount,
+            gridsCount,
+            gridIdx,
+            gridSize );
+         GridTraverser1D< Real, Index, GridEntity, UserData, EntitiesProcessor >
+            <<< blocksCount, blockSize, 0, s >>>
+            ( &gridPointer.template getData< Devices::Cuda >(),
+              userData,
+              begin,
+              end,
+              gridIdx.x );
+      }
+
+      /*dim3 cudaBlockSize( 256 );
       dim3 cudaBlocks;
       cudaBlocks.x = Devices::Cuda::getNumberOfBlocks( end.x() - begin.x() + 1, cudaBlockSize.x );
       const IndexType cudaXGrids = Devices::Cuda::getNumberOfGrids( cudaBlocks.x );
-- 
GitLab