From e120810cd7e31a417c38a7b4d8b7e84b3db213de Mon Sep 17 00:00:00 2001
From: Berenger Bramas <Berenger.Bramas@inria.fr>
Date: Tue, 17 Mar 2015 18:07:40 +0100
Subject: [PATCH] Move group file and update headers

---
 .../{ => Core}/FGroupAttachedLeaf.hpp         |  4 +-
 Src/GroupTree/{ => Core}/FGroupOfCells.hpp    |  8 ++--
 .../{ => Core}/FGroupOfParticles.hpp          |  8 ++--
 .../{ => Core}/FGroupSeqAlgorithm.hpp         | 12 +++---
 .../{ => Core}/FGroupTaskAlgorithm.hpp        | 12 +++---
 .../{ => Core}/FGroupTaskDepAlgorithm.hpp     | 12 +++---
 .../{ => Core}/FGroupTaskStarpuAlgorithm.hpp  | 34 ++++++++--------
 .../FGroupTaskStarpuMpiAlgorithm.hpp          | 40 +++++++++----------
 Src/GroupTree/{ => Core}/FGroupTree.hpp       |  8 ++--
 .../{ => Core}/FOutOfBlockInteraction.hpp     |  4 +-
 .../{ => Core}/FP2PGroupParticleContainer.hpp |  0
 Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp     |  2 +-
 Src/GroupTree/Cuda/FCudaEmptyCell.hpp         |  2 +-
 Src/GroupTree/Cuda/FCudaGroupOfCells.hpp      |  2 +-
 Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp  |  2 +-
 Src/GroupTree/Cuda/FCudaStructParams.hpp      |  2 +-
 Src/GroupTree/OpenCl/FEmptyOpenCLCode.hpp     |  2 +-
 Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp |  4 +-
 .../{ => StarPUUtils}/FStarPUCpuWrapper.hpp   | 24 +++++------
 .../{ => StarPUUtils}/FStarPUCudaWrapper.hpp  | 26 ++++++------
 .../{ => StarPUUtils}/FStarPUDefaultAlign.hpp |  0
 .../FStarPUKernelCapacities.hpp               |  0
 .../FStarPUOpenClWrapper.hpp                  | 24 +++++------
 .../{ => StarPUUtils}/FStarPUUtils.hpp        |  2 +-
 .../{Cuda => TestKernel}/FCudaTestKernels.hpp |  2 +-
 .../FGroupTestParticleContainer.hpp           |  2 +-
 .../{ => TestKernel}/FTestCellPOD.hpp         |  6 +--
 .../{OpenCl => TestKernel}/FTestKernel.cl     |  0
 .../FTestOpenCLCode.hpp                       |  4 +-
 Tests/noDist/testBlockedAlgorithm.cpp         | 16 ++++----
 Tests/noDist/testBlockedChebyshev.cpp         | 15 ++++---
 Tests/noDist/testBlockedMpiAlgorithm.cpp      | 11 +++--
 Tests/noDist/testBlockedMpiChebyshev.cpp      | 15 ++++---
 Tests/noDist/testBlockedRotation.cpp          | 15 ++++---
 Tests/noDist/testBlockedTree.cpp              | 14 +++----
 Tests/noDist/testBlockedWithCudaAlgorithm.cpp | 16 ++++----
 .../noDist/testBlockedWithOpenCLAlgorithm.cpp | 18 ++++-----
 37 files changed, 182 insertions(+), 186 deletions(-)
 rename Src/GroupTree/{ => Core}/FGroupAttachedLeaf.hpp (98%)
 rename Src/GroupTree/{ => Core}/FGroupOfCells.hpp (98%)
 rename Src/GroupTree/{ => Core}/FGroupOfParticles.hpp (98%)
 rename Src/GroupTree/{ => Core}/FGroupSeqAlgorithm.hpp (98%)
 rename Src/GroupTree/{ => Core}/FGroupTaskAlgorithm.hpp (99%)
 rename Src/GroupTree/{ => Core}/FGroupTaskDepAlgorithm.hpp (99%)
 rename Src/GroupTree/{ => Core}/FGroupTaskStarpuAlgorithm.hpp (98%)
 rename Src/GroupTree/{ => Core}/FGroupTaskStarpuMpiAlgorithm.hpp (99%)
 rename Src/GroupTree/{ => Core}/FGroupTree.hpp (99%)
 rename Src/GroupTree/{ => Core}/FOutOfBlockInteraction.hpp (82%)
 rename Src/GroupTree/{ => Core}/FP2PGroupParticleContainer.hpp (100%)
 rename Src/GroupTree/{ => StarPUUtils}/FStarPUCpuWrapper.hpp (98%)
 rename Src/GroupTree/{ => StarPUUtils}/FStarPUCudaWrapper.hpp (97%)
 rename Src/GroupTree/{ => StarPUUtils}/FStarPUDefaultAlign.hpp (100%)
 rename Src/GroupTree/{ => StarPUUtils}/FStarPUKernelCapacities.hpp (100%)
 rename Src/GroupTree/{ => StarPUUtils}/FStarPUOpenClWrapper.hpp (97%)
 rename Src/GroupTree/{ => StarPUUtils}/FStarPUUtils.hpp (98%)
 rename Src/GroupTree/{Cuda => TestKernel}/FCudaTestKernels.hpp (99%)
 rename Src/GroupTree/{ => TestKernel}/FGroupTestParticleContainer.hpp (95%)
 rename Src/GroupTree/{ => TestKernel}/FTestCellPOD.hpp (96%)
 rename Src/GroupTree/{OpenCl => TestKernel}/FTestKernel.cl (100%)
 rename Src/GroupTree/{OpenCl => TestKernel}/FTestOpenCLCode.hpp (93%)

diff --git a/Src/GroupTree/FGroupAttachedLeaf.hpp b/Src/GroupTree/Core/FGroupAttachedLeaf.hpp
similarity index 98%
rename from Src/GroupTree/FGroupAttachedLeaf.hpp
rename to Src/GroupTree/Core/FGroupAttachedLeaf.hpp
index 1e1736ed3..8b36a8b21 100644
--- a/Src/GroupTree/FGroupAttachedLeaf.hpp
+++ b/Src/GroupTree/Core/FGroupAttachedLeaf.hpp
@@ -4,8 +4,8 @@
 #ifndef FGROUPATTACHEDLEAF_HPP
 #define FGROUPATTACHEDLEAF_HPP
 
-#include "../Utils/FGlobal.hpp"
-#include "../Utils/FAssert.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Utils/FAssert.hpp"
 
 /**
  * This class is "attached" to a buffer.
diff --git a/Src/GroupTree/FGroupOfCells.hpp b/Src/GroupTree/Core/FGroupOfCells.hpp
similarity index 98%
rename from Src/GroupTree/FGroupOfCells.hpp
rename to Src/GroupTree/Core/FGroupOfCells.hpp
index 1bb25f149..8a3a3689c 100644
--- a/Src/GroupTree/FGroupOfCells.hpp
+++ b/Src/GroupTree/Core/FGroupOfCells.hpp
@@ -4,10 +4,10 @@
 #ifndef FGROUPOFCELLS_HPP
 #define FGROUPOFCELLS_HPP
 
-#include "../Utils/FAssert.hpp"
-#include "../Utils/FAlignedMemory.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "FStarPUDefaultAlign.hpp"
+#include "../../Utils/FAssert.hpp"
+#include "../../Utils/FAlignedMemory.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
 
 #include <list>
 #include <functional>
diff --git a/Src/GroupTree/FGroupOfParticles.hpp b/Src/GroupTree/Core/FGroupOfParticles.hpp
similarity index 98%
rename from Src/GroupTree/FGroupOfParticles.hpp
rename to Src/GroupTree/Core/FGroupOfParticles.hpp
index f442a2b05..d432ae08d 100644
--- a/Src/GroupTree/FGroupOfParticles.hpp
+++ b/Src/GroupTree/Core/FGroupOfParticles.hpp
@@ -5,10 +5,10 @@
 #define FGROUPOFPARTICLES_HPP
 
 
-#include "../Utils/FAssert.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "../Utils/FAlignedMemory.hpp"
-#include "FStarPUDefaultAlign.hpp"
+#include "../../Utils/FAssert.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../../Utils/FAlignedMemory.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
 
 #include <list>
 #include <functional>
diff --git a/Src/GroupTree/FGroupSeqAlgorithm.hpp b/Src/GroupTree/Core/FGroupSeqAlgorithm.hpp
similarity index 98%
rename from Src/GroupTree/FGroupSeqAlgorithm.hpp
rename to Src/GroupTree/Core/FGroupSeqAlgorithm.hpp
index 61b71deb4..35e03d9d3 100644
--- a/Src/GroupTree/FGroupSeqAlgorithm.hpp
+++ b/Src/GroupTree/Core/FGroupSeqAlgorithm.hpp
@@ -4,12 +4,12 @@
 #ifndef FGROUPSEQALGORITHM_HPP
 #define FGROUPSEQALGORITHM_HPP
 
-#include "../Utils/FGlobal.hpp"
-#include "../Core/FCoreCommon.hpp"
-#include "../Utils/FQuickSort.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "../Utils/FLog.hpp"
-#include "../Utils/FTic.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Core/FCoreCommon.hpp"
+#include "../../Utils/FQuickSort.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../../Utils/FLog.hpp"
+#include "../../Utils/FTic.hpp"
 
 #include "FOutOfBlockInteraction.hpp"
 
diff --git a/Src/GroupTree/FGroupTaskAlgorithm.hpp b/Src/GroupTree/Core/FGroupTaskAlgorithm.hpp
similarity index 99%
rename from Src/GroupTree/FGroupTaskAlgorithm.hpp
rename to Src/GroupTree/Core/FGroupTaskAlgorithm.hpp
index 2e9ef0c94..0972f7926 100644
--- a/Src/GroupTree/FGroupTaskAlgorithm.hpp
+++ b/Src/GroupTree/Core/FGroupTaskAlgorithm.hpp
@@ -4,12 +4,12 @@
 #ifndef FGROUPTASKALGORITHM_HPP
 #define FGROUPTASKALGORITHM_HPP
 
-#include "../Utils/FGlobal.hpp"
-#include "../Core/FCoreCommon.hpp"
-#include "../Utils/FQuickSort.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "../Utils/FLog.hpp"
-#include "../Utils/FTic.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Core/FCoreCommon.hpp"
+#include "../../Utils/FQuickSort.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../../Utils/FLog.hpp"
+#include "../../Utils/FTic.hpp"
 
 #include "FOutOfBlockInteraction.hpp"
 
diff --git a/Src/GroupTree/FGroupTaskDepAlgorithm.hpp b/Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp
similarity index 99%
rename from Src/GroupTree/FGroupTaskDepAlgorithm.hpp
rename to Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp
index a4e514ed0..a004ae8f4 100644
--- a/Src/GroupTree/FGroupTaskDepAlgorithm.hpp
+++ b/Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp
@@ -5,12 +5,12 @@
 #define FGROUPTASKDEPALGORITHM_HPP
 
 
-#include "../Utils/FGlobal.hpp"
-#include "../Core/FCoreCommon.hpp"
-#include "../Utils/FQuickSort.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "../Utils/FLog.hpp"
-#include "../Utils/FTic.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Core/FCoreCommon.hpp"
+#include "../../Utils/FQuickSort.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../../Utils/FLog.hpp"
+#include "../../Utils/FTic.hpp"
 
 #include "FOutOfBlockInteraction.hpp"
 
diff --git a/Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp b/Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp
similarity index 98%
rename from Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp
rename to Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp
index d4490b82a..a5cd0ec21 100644
--- a/Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp
+++ b/Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp
@@ -3,13 +3,13 @@
 #ifndef FGROUPTASKSTARPUALGORITHM_HPP
 #define FGROUPTASKSTARPUALGORITHM_HPP
 
-#include "../Utils/FGlobal.hpp"
-#include "../Core/FCoreCommon.hpp"
-#include "../Utils/FQuickSort.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "../Utils/FLog.hpp"
-#include "../Utils/FTic.hpp"
-#include "../Utils/FAssert.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Core/FCoreCommon.hpp"
+#include "../../Utils/FQuickSort.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../../Utils/FLog.hpp"
+#include "../../Utils/FTic.hpp"
+#include "../../Utils/FAssert.hpp"
 
 #include "FOutOfBlockInteraction.hpp"
 
@@ -19,22 +19,22 @@
 #include <omp.h>
 
 #include <starpu.h>
-#include "FStarPUUtils.hpp"
+#include "../StarPUUtils/FStarPUUtils.hpp"
 
 #ifdef STARPU_USE_CPU
-#include "FStarPUCpuWrapper.hpp"
+#include "../StarPUUtils/FStarPUCpuWrapper.hpp"
 #endif
 #ifdef ScalFMM_ENABLE_CUDA_KERNEL
-#include "FStarPUCudaWrapper.hpp"
-#include "Cuda/FCudaEmptyKernel.hpp"
-#include "Cuda/FCudaGroupAttachedLeaf.hpp"
-#include "Cuda/FCudaGroupOfParticles.hpp"
-#include "Cuda/FCudaGroupOfCells.hpp"
-#include "Cuda/FCudaEmptyCell.hpp"
+#include "../StarPUUtils/FStarPUCudaWrapper.hpp"
+#include "../Cuda/FCudaEmptyKernel.hpp"
+#include "../Cuda/FCudaGroupAttachedLeaf.hpp"
+#include "../Cuda/FCudaGroupOfParticles.hpp"
+#include "../Cuda/FCudaGroupOfCells.hpp"
+#include "../Cuda/FCudaEmptyCell.hpp"
 #endif
 #ifdef ScalFMM_ENABLE_OPENCL_KERNEL
-#include "FStarPUOpenClWrapper.hpp"
-#include "OpenCl/FOpenCLDeviceWrapper.hpp"
+#include "../StarPUUtils/FStarPUOpenClWrapper.hpp"
+#include "../OpenCl/FOpenCLDeviceWrapper.hpp"
 #endif
 
 
diff --git a/Src/GroupTree/FGroupTaskStarpuMpiAlgorithm.hpp b/Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp
similarity index 99%
rename from Src/GroupTree/FGroupTaskStarpuMpiAlgorithm.hpp
rename to Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp
index fd9f0fb21..b55e567fe 100644
--- a/Src/GroupTree/FGroupTaskStarpuMpiAlgorithm.hpp
+++ b/Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp
@@ -3,17 +3,17 @@
 #ifndef FGROUPTASKSTARPUMPIALGORITHM_HPP
 #define FGROUPTASKSTARPUMPIALGORITHM_HPP
 
-#include "../Utils/FGlobal.hpp"
-#include "../Core/FCoreCommon.hpp"
-#include "../Utils/FQuickSort.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "../Utils/FLog.hpp"
-#include "../Utils/FTic.hpp"
-#include "../Utils/FAssert.hpp"
-#include "../Utils/FAlignedMemory.hpp"
-#include "../Utils/FAssert.hpp"
-
-#include "../Utils/FMpi.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Core/FCoreCommon.hpp"
+#include "../../Utils/FQuickSort.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../../Utils/FLog.hpp"
+#include "../../Utils/FTic.hpp"
+#include "../../Utils/FAssert.hpp"
+#include "../../Utils/FAlignedMemory.hpp"
+#include "../../Utils/FAssert.hpp"
+
+#include "../../Utils/FMpi.hpp"
 
 #include "FOutOfBlockInteraction.hpp"
 
@@ -24,21 +24,21 @@
 
 #include <starpu.h>
 #include <starpu_mpi.h>
-#include "FStarPUUtils.hpp"
+#include "../StarPUUtils/FStarPUUtils.hpp"
 
 #ifdef STARPU_USE_CPU
-#include "FStarPUCpuWrapper.hpp"
+#include "../StarPUUtils/FStarPUCpuWrapper.hpp"
 #endif
 #ifdef ScalFMM_ENABLE_CUDA_KERNEL
-#include "FStarPUCudaWrapper.hpp"
-#include "Cuda/FCudaEmptyKernel.hpp"
-#include "Cuda/FCudaGroupAttachedLeaf.hpp"
-#include "Cuda/FCudaGroupOfParticles.hpp"
-#include "Cuda/FCudaGroupOfCells.hpp"
+#include "../StarPUUtils/FStarPUCudaWrapper.hpp"
+#include "../Cuda/FCudaEmptyKernel.hpp"
+#include "../Cuda/FCudaGroupAttachedLeaf.hpp"
+#include "../Cuda/FCudaGroupOfParticles.hpp"
+#include "../Cuda/FCudaGroupOfCells.hpp"
 #endif
 #ifdef ScalFMM_ENABLE_OPENCL_KERNEL
-#include "FStarPUOpenClWrapper.hpp"
-#include "OpenCl/FOpenCLDeviceWrapper.hpp"
+#include "../StarPUUtils/FStarPUOpenClWrapper.hpp"
+#include "../OpenCl/FOpenCLDeviceWrapper.hpp"
 #endif
 
 
diff --git a/Src/GroupTree/FGroupTree.hpp b/Src/GroupTree/Core/FGroupTree.hpp
similarity index 99%
rename from Src/GroupTree/FGroupTree.hpp
rename to Src/GroupTree/Core/FGroupTree.hpp
index e635941d1..e88e78557 100644
--- a/Src/GroupTree/FGroupTree.hpp
+++ b/Src/GroupTree/Core/FGroupTree.hpp
@@ -6,10 +6,10 @@
 #include <vector>
 #include <functional>
 
-#include "../Utils/FAssert.hpp"
-#include "../Utils/FPoint.hpp"
-#include "../Utils/FQuickSort.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
+#include "../../Utils/FAssert.hpp"
+#include "../../Utils/FPoint.hpp"
+#include "../../Utils/FQuickSort.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
 
 #include "FGroupOfCells.hpp"
 #include "FGroupOfParticles.hpp"
diff --git a/Src/GroupTree/FOutOfBlockInteraction.hpp b/Src/GroupTree/Core/FOutOfBlockInteraction.hpp
similarity index 82%
rename from Src/GroupTree/FOutOfBlockInteraction.hpp
rename to Src/GroupTree/Core/FOutOfBlockInteraction.hpp
index b3164d733..175773e39 100644
--- a/Src/GroupTree/FOutOfBlockInteraction.hpp
+++ b/Src/GroupTree/Core/FOutOfBlockInteraction.hpp
@@ -1,9 +1,9 @@
 #ifndef FOUTOFBLOCKINTERACTION_HPP
 #define FOUTOFBLOCKINTERACTION_HPP
 
-#include "../Utils/FGlobal.hpp"
+#include "../../Utils/FGlobal.hpp"
 
-#include "FStarPUDefaultAlign.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
 
 struct  alignas(FStarPUDefaultAlign::StructAlign) OutOfBlockInteraction{
     MortonIndex outIndex;
diff --git a/Src/GroupTree/FP2PGroupParticleContainer.hpp b/Src/GroupTree/Core/FP2PGroupParticleContainer.hpp
similarity index 100%
rename from Src/GroupTree/FP2PGroupParticleContainer.hpp
rename to Src/GroupTree/Core/FP2PGroupParticleContainer.hpp
diff --git a/Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp b/Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp
index a56fea94b..7efbaa5e0 100644
--- a/Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp
+++ b/Src/GroupTree/Cuda/FCudaDeviceWrapper.hpp
@@ -4,7 +4,7 @@
 
 
 #include "../../Utils/FGlobal.hpp"
-#include "../FOutOfBlockInteraction.hpp"
+#include "../Core/FOutOfBlockInteraction.hpp"
 #include "FCudaStructParams.hpp"
 
 template <class CellClass, class CellContainerClass, class ParticleContainerGroupClass, class ParticleGroupClass, class CudaKernelClass>
diff --git a/Src/GroupTree/Cuda/FCudaEmptyCell.hpp b/Src/GroupTree/Cuda/FCudaEmptyCell.hpp
index 7497b19c2..83834d504 100644
--- a/Src/GroupTree/Cuda/FCudaEmptyCell.hpp
+++ b/Src/GroupTree/Cuda/FCudaEmptyCell.hpp
@@ -3,7 +3,7 @@
 
 #include "../../Utils/FGlobal.hpp"
 #include "../../Containers/FTreeCoordinate.hpp"
-#include "../FStarPUDefaultAlign.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
 
 struct alignas(FStarPUDefaultAlign::StructAlign) FCudaEmptyCell {
     MortonIndex mortonIndex;
diff --git a/Src/GroupTree/Cuda/FCudaGroupOfCells.hpp b/Src/GroupTree/Cuda/FCudaGroupOfCells.hpp
index 8aa578b4b..c6d56210c 100644
--- a/Src/GroupTree/Cuda/FCudaGroupOfCells.hpp
+++ b/Src/GroupTree/Cuda/FCudaGroupOfCells.hpp
@@ -4,7 +4,7 @@
 
 #include "FCudaGlobal.hpp"
 
-#include "../FStarPUDefaultAlign.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
 
 /**
 * @brief The FCudaGroupOfCells class manages the cells in block allocation.
diff --git a/Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp b/Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp
index 65015ef12..b5ac906ae 100644
--- a/Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp
+++ b/Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp
@@ -3,7 +3,7 @@
 #define FCUDAGROUPOFPARTICLES_HPP
 
 #include "FCudaGlobal.hpp"
-#include "../FStarPUDefaultAlign.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
 
 template <unsigned NbAttributesPerParticle, class AttributeClass = FReal>
 class FCudaGroupOfParticles {
diff --git a/Src/GroupTree/Cuda/FCudaStructParams.hpp b/Src/GroupTree/Cuda/FCudaStructParams.hpp
index 86d78b00f..5d161565c 100644
--- a/Src/GroupTree/Cuda/FCudaStructParams.hpp
+++ b/Src/GroupTree/Cuda/FCudaStructParams.hpp
@@ -2,7 +2,7 @@
 #ifndef FCUDASTRUCTPARAMS_HPP
 #define FCUDASTRUCTPARAMS_HPP
 
-#include "../FStarPUDefaultAlign.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
 #include "FCudaGlobal.hpp"
 
 template <class ArrayType, const int Size>
diff --git a/Src/GroupTree/OpenCl/FEmptyOpenCLCode.hpp b/Src/GroupTree/OpenCl/FEmptyOpenCLCode.hpp
index a972e0ed0..fdec6da0c 100644
--- a/Src/GroupTree/OpenCl/FEmptyOpenCLCode.hpp
+++ b/Src/GroupTree/OpenCl/FEmptyOpenCLCode.hpp
@@ -4,7 +4,7 @@
 
 // Return the same thing as FEmptyKernel.cl
 
-#include "../FStarPUDefaultAlign.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
 
 class FEmptyOpenCLCode{
 
diff --git a/Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp b/Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp
index 72f168a0d..832f6fb48 100644
--- a/Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp
+++ b/Src/GroupTree/OpenCl/FOpenCLDeviceWrapper.hpp
@@ -12,11 +12,11 @@
 #include "../../Utils/FAlignedMemory.hpp"
 #include "../../Utils/FAssert.hpp"
 
-#include "../FOutOfBlockInteraction.hpp"
+#include "../Core/FOutOfBlockInteraction.hpp"
 
 #include "FEmptyOpenCLCode.hpp"
 
-#include "../FStarPUDefaultAlign.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
 
 #include <starpu.h>
 
diff --git a/Src/GroupTree/FStarPUCpuWrapper.hpp b/Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp
similarity index 98%
rename from Src/GroupTree/FStarPUCpuWrapper.hpp
rename to Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp
index 9910dbdc6..b56a69e26 100644
--- a/Src/GroupTree/FStarPUCpuWrapper.hpp
+++ b/Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp
@@ -4,20 +4,20 @@
 #define FSTARPUCPUWRAPPER_HPP
 
 
-#include "../Utils/FGlobal.hpp"
-#include "../Core/FCoreCommon.hpp"
-#include "../Utils/FQuickSort.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "../Utils/FLog.hpp"
-#include "../Utils/FTic.hpp"
-#include "../Utils/FAssert.hpp"
-#include "../Utils/FAlignedMemory.hpp"
-#include "../Utils/FAssert.hpp"
-
-#include "FOutOfBlockInteraction.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Core/FCoreCommon.hpp"
+#include "../../Utils/FQuickSort.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../../Utils/FLog.hpp"
+#include "../../Utils/FTic.hpp"
+#include "../../Utils/FAssert.hpp"
+#include "../../Utils/FAlignedMemory.hpp"
+#include "../../Utils/FAssert.hpp"
+
+#include "../Core/FOutOfBlockInteraction.hpp"
 
 #ifdef ScalFMM_USE_MPI
-#include "../Utils/FMpi.hpp"
+#include "../../Utils/FMpi.hpp"
 #endif
 
 #include <vector>
diff --git a/Src/GroupTree/FStarPUCudaWrapper.hpp b/Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp
similarity index 97%
rename from Src/GroupTree/FStarPUCudaWrapper.hpp
rename to Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp
index a6a954a27..ea56a4926 100644
--- a/Src/GroupTree/FStarPUCudaWrapper.hpp
+++ b/Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp
@@ -2,20 +2,20 @@
 #ifndef FSTARPUCUDAWRAPPER_HPP
 #define FSTARPUCUDAWRAPPER_HPP
 
-#include "../Utils/FGlobal.hpp"
-#include "../Core/FCoreCommon.hpp"
-#include "../Utils/FQuickSort.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "../Utils/FLog.hpp"
-#include "../Utils/FTic.hpp"
-#include "../Utils/FAssert.hpp"
-#include "../Utils/FAlignedMemory.hpp"
-#include "../Utils/FAssert.hpp"
-
-#include "FOutOfBlockInteraction.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Core/FCoreCommon.hpp"
+#include "../../Utils/FQuickSort.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../../Utils/FLog.hpp"
+#include "../../Utils/FTic.hpp"
+#include "../../Utils/FAssert.hpp"
+#include "../../Utils/FAlignedMemory.hpp"
+#include "../../Utils/FAssert.hpp"
+
+#include "../Core/FOutOfBlockInteraction.hpp"
 
 #ifdef ScalFMM_USE_MPI
-#include "../Utils/FMpi.hpp"
+#include "../../Utils/FMpi.hpp"
 #endif
 
 #include <vector>
@@ -29,7 +29,7 @@
 #include <starpu_mpi.h>
 #endif
 
-#include "Cuda/FCudaDeviceWrapper.hpp"
+#include "../Cuda/FCudaDeviceWrapper.hpp"
 
 #include "FStarPUUtils.hpp"
 
diff --git a/Src/GroupTree/FStarPUDefaultAlign.hpp b/Src/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp
similarity index 100%
rename from Src/GroupTree/FStarPUDefaultAlign.hpp
rename to Src/GroupTree/StarPUUtils/FStarPUDefaultAlign.hpp
diff --git a/Src/GroupTree/FStarPUKernelCapacities.hpp b/Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp
similarity index 100%
rename from Src/GroupTree/FStarPUKernelCapacities.hpp
rename to Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp
diff --git a/Src/GroupTree/FStarPUOpenClWrapper.hpp b/Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp
similarity index 97%
rename from Src/GroupTree/FStarPUOpenClWrapper.hpp
rename to Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp
index bd78954da..f77f0ba31 100644
--- a/Src/GroupTree/FStarPUOpenClWrapper.hpp
+++ b/Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp
@@ -5,20 +5,20 @@
 #define FSTARPUOPENCLWRAPPER_HPP
 
 
-#include "../Utils/FGlobal.hpp"
-#include "../Core/FCoreCommon.hpp"
-#include "../Utils/FQuickSort.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "../Utils/FLog.hpp"
-#include "../Utils/FTic.hpp"
-#include "../Utils/FAssert.hpp"
-#include "../Utils/FAlignedMemory.hpp"
-#include "../Utils/FAssert.hpp"
-
-#include "FOutOfBlockInteraction.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Core/FCoreCommon.hpp"
+#include "../../Utils/FQuickSort.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../../Utils/FLog.hpp"
+#include "../../Utils/FTic.hpp"
+#include "../../Utils/FAssert.hpp"
+#include "../../Utils/FAlignedMemory.hpp"
+#include "../../Utils/FAssert.hpp"
+
+#include "../Core/FOutOfBlockInteraction.hpp"
 
 #ifdef ScalFMM_USE_MPI
-#include "../Utils/FMpi.hpp"
+#include "../../Utils/FMpi.hpp"
 #endif
 
 #include <vector>
diff --git a/Src/GroupTree/FStarPUUtils.hpp b/Src/GroupTree/StarPUUtils/FStarPUUtils.hpp
similarity index 98%
rename from Src/GroupTree/FStarPUUtils.hpp
rename to Src/GroupTree/StarPUUtils/FStarPUUtils.hpp
index cc6ea017e..40e33e3f0 100644
--- a/Src/GroupTree/FStarPUUtils.hpp
+++ b/Src/GroupTree/StarPUUtils/FStarPUUtils.hpp
@@ -4,7 +4,7 @@
 #define FSTARPUUTILS_HPP
 
 /////////////////////////////////////////////////////
-#include "../Utils/FGlobal.hpp"
+#include "../../Utils/FGlobal.hpp"
 
 /////////////////////////////////////////////////////
 
diff --git a/Src/GroupTree/Cuda/FCudaTestKernels.hpp b/Src/GroupTree/TestKernel/FCudaTestKernels.hpp
similarity index 99%
rename from Src/GroupTree/Cuda/FCudaTestKernels.hpp
rename to Src/GroupTree/TestKernel/FCudaTestKernels.hpp
index ef4d9cd8c..1ffb5fcf1 100644
--- a/Src/GroupTree/Cuda/FCudaTestKernels.hpp
+++ b/Src/GroupTree/TestKernel/FCudaTestKernels.hpp
@@ -2,7 +2,7 @@
 #ifndef FCUDATESTKERNEL_HPP
 #define FCUDATESTKERNEL_HPP
 
-#include "FCudaGlobal.hpp"
+#include "../Cuda/FCudaGlobal.hpp"
 
 // We need to describe this cell
 #include "../../Components/FTestCell.hpp"
diff --git a/Src/GroupTree/FGroupTestParticleContainer.hpp b/Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp
similarity index 95%
rename from Src/GroupTree/FGroupTestParticleContainer.hpp
rename to Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp
index 1923eb64a..3c85dae64 100644
--- a/Src/GroupTree/FGroupTestParticleContainer.hpp
+++ b/Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp
@@ -4,7 +4,7 @@
 #ifndef FGROUPTESTPARTICLECONTAINER_HPP
 #define FGROUPTESTPARTICLECONTAINER_HPP
 
-#include "FGroupAttachedLeaf.hpp"
+#include "../Core/FGroupAttachedLeaf.hpp"
 
 class FGroupTestParticleContainer : public FGroupAttachedLeaf<2, long long int> {
     typedef FGroupAttachedLeaf<2, long long int> Parent;
diff --git a/Src/GroupTree/FTestCellPOD.hpp b/Src/GroupTree/TestKernel/FTestCellPOD.hpp
similarity index 96%
rename from Src/GroupTree/FTestCellPOD.hpp
rename to Src/GroupTree/TestKernel/FTestCellPOD.hpp
index c253dae55..3f88fa150 100644
--- a/Src/GroupTree/FTestCellPOD.hpp
+++ b/Src/GroupTree/TestKernel/FTestCellPOD.hpp
@@ -2,9 +2,9 @@
 #ifndef FTESTCELLPOD_HPP
 #define FTESTCELLPOD_HPP
 
-#include "../Utils/FGlobal.hpp"
-#include "../Containers/FTreeCoordinate.hpp"
-#include "FStarPUDefaultAlign.hpp"
+#include "../../Utils/FGlobal.hpp"
+#include "../../Containers/FTreeCoordinate.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
 
 struct alignas(FStarPUDefaultAlign::StructAlign) FTestCellPODCore {
     MortonIndex mortonIndex;
diff --git a/Src/GroupTree/OpenCl/FTestKernel.cl b/Src/GroupTree/TestKernel/FTestKernel.cl
similarity index 100%
rename from Src/GroupTree/OpenCl/FTestKernel.cl
rename to Src/GroupTree/TestKernel/FTestKernel.cl
diff --git a/Src/GroupTree/OpenCl/FTestOpenCLCode.hpp b/Src/GroupTree/TestKernel/FTestOpenCLCode.hpp
similarity index 93%
rename from Src/GroupTree/OpenCl/FTestOpenCLCode.hpp
rename to Src/GroupTree/TestKernel/FTestOpenCLCode.hpp
index 748c23369..45ad2036e 100644
--- a/Src/GroupTree/OpenCl/FTestOpenCLCode.hpp
+++ b/Src/GroupTree/TestKernel/FTestOpenCLCode.hpp
@@ -2,8 +2,8 @@
 #define FTESTOPENCLCODE_HPP
 
 #include "../../Utils/FGlobal.hpp"
-#include "../FStarPUDefaultAlign.hpp"
-#include "FTextReplacer.hpp"
+#include "../StarPUUtils/FStarPUDefaultAlign.hpp"
+#include "../OpenCl/FTextReplacer.hpp"
 
 // Initialize the types
 class FTestOpenCLCode{
diff --git a/Tests/noDist/testBlockedAlgorithm.cpp b/Tests/noDist/testBlockedAlgorithm.cpp
index 4468ebf33..05d458bd8 100644
--- a/Tests/noDist/testBlockedAlgorithm.cpp
+++ b/Tests/noDist/testBlockedAlgorithm.cpp
@@ -5,7 +5,7 @@
 
 #include "../../Src/Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/FGroupTree.hpp"
+#include "../../Src/GroupTree/Core/FGroupTree.hpp"
 
 #include "../../Src/Components/FSimpleLeaf.hpp"
 #include "../../Src/Containers/FVector.hpp"
@@ -18,23 +18,23 @@
 
 #include "../../Src/Files/FRandomLoader.hpp"
 
-#include "../../Src/GroupTree/FGroupSeqAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
 #ifdef ScalFMM_USE_OMP4
-#include "../../Src/GroupTree/FGroupTaskDepAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #endif
 #ifdef ScalFMM_USE_STARPU
-#include "../../Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 #endif
-#include "../../Src/GroupTree/FP2PGroupParticleContainer.hpp"
-#include "../../Src/GroupTree/FGroupTaskAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
 
 #include "../../Src/Utils/FParameterNames.hpp"
 
 #include "../../Src/Components/FTestParticleContainer.hpp"
 #include "../../Src/Components/FTestCell.hpp"
 #include "../../Src/Components/FTestKernels.hpp"
-#include "../../Src/GroupTree/FGroupTestParticleContainer.hpp"
+#include "../../Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp"
 
 #include "../../Src/Files/FFmaGenericLoader.hpp"
 #include "../../Src/Core/FFmmAlgorithm.hpp"
diff --git a/Tests/noDist/testBlockedChebyshev.cpp b/Tests/noDist/testBlockedChebyshev.cpp
index a610cc430..5d1fefbfd 100644
--- a/Tests/noDist/testBlockedChebyshev.cpp
+++ b/Tests/noDist/testBlockedChebyshev.cpp
@@ -7,7 +7,7 @@
 
 #include "../../Src/Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/FGroupTree.hpp"
+#include "../../Src/GroupTree/Core/FGroupTree.hpp"
 
 #include "../../Src/Components/FSimpleLeaf.hpp"
 #include "../../Src/Containers/FVector.hpp"
@@ -25,23 +25,22 @@
 #include "../../Src/Files/FRandomLoader.hpp"
 #include "../../Src/Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/FGroupSeqAlgorithm.hpp"
-#include "../../Src/GroupTree/FGroupTaskAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
 #ifdef ScalFMM_USE_OMP4
-#include "../../Src/GroupTree/FGroupTaskDepAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #endif
 #ifdef ScalFMM_USE_STARPU
-#include "../../Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 #endif
-#include "../../Src/GroupTree/FP2PGroupParticleContainer.hpp"
+#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
 
 #include "../../Src/Utils/FParameterNames.hpp"
 
 #include "../../Src/Components/FTestParticleContainer.hpp"
 #include "../../Src/Components/FTestCell.hpp"
 #include "../../Src/Components/FTestKernels.hpp"
-#include "../Src/GroupTree/FP2PGroupParticleContainer.hpp"
 
 #include "../../Src/Core/FFmmAlgorithm.hpp"
 
diff --git a/Tests/noDist/testBlockedMpiAlgorithm.cpp b/Tests/noDist/testBlockedMpiAlgorithm.cpp
index 45c12199b..483d1fa89 100644
--- a/Tests/noDist/testBlockedMpiAlgorithm.cpp
+++ b/Tests/noDist/testBlockedMpiAlgorithm.cpp
@@ -7,7 +7,7 @@
 #include "../../Src/Utils/FGlobal.hpp"
 #include "../../Src/Utils/FMpi.hpp"
 
-#include "../../Src/GroupTree/FGroupTree.hpp"
+#include "../../Src/GroupTree/Core/FGroupTree.hpp"
 
 #include "../../Src/Components/FSimpleLeaf.hpp"
 #include "../../Src/Containers/FVector.hpp"
@@ -20,24 +20,23 @@
 
 #include "../../Src/Files/FRandomLoader.hpp"
 
-#include "../../Src/GroupTree/FGroupTaskStarpuMpiAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp"
 
-#include "../../Src/GroupTree/FP2PGroupParticleContainer.hpp"
-#include "../../Src/GroupTree/FGroupTaskAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
 
 #include "../../Src/Utils/FParameterNames.hpp"
 
 #include "../../Src/Components/FTestParticleContainer.hpp"
 #include "../../Src/Components/FTestCell.hpp"
 #include "../../Src/Components/FTestKernels.hpp"
-#include "../Src/GroupTree/FGroupTestParticleContainer.hpp"
 
 #include "../../Src/BalanceTree/FLeafBalance.hpp"
 #include "../../Src/Files/FMpiTreeBuilder.hpp"
 
 #include "../../Src/Core/FFmmAlgorithm.hpp"
 
-#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
+#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 
 
 int getTreeCoordinate(const FReal inRelativePosition, const FReal boxWidth,
diff --git a/Tests/noDist/testBlockedMpiChebyshev.cpp b/Tests/noDist/testBlockedMpiChebyshev.cpp
index 3baaea502..8592549ed 100644
--- a/Tests/noDist/testBlockedMpiChebyshev.cpp
+++ b/Tests/noDist/testBlockedMpiChebyshev.cpp
@@ -9,7 +9,7 @@
 
 #include "../../Src/Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/FGroupTree.hpp"
+#include "../../Src/GroupTree/Core/FGroupTree.hpp"
 
 #include "../../Src/Components/FSimpleLeaf.hpp"
 #include "../../Src/Containers/FVector.hpp"
@@ -27,25 +27,24 @@
 #include "../../Src/Files/FRandomLoader.hpp"
 #include "../../Src/Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/FGroupSeqAlgorithm.hpp"
-#include "../../Src/GroupTree/FGroupTaskAlgorithm.hpp"
-#include "../../Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/FP2PGroupParticleContainer.hpp"
+#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
 
 #include "../../Src/Utils/FParameterNames.hpp"
 
 #include "../../Src/Components/FTestParticleContainer.hpp"
 #include "../../Src/Components/FTestCell.hpp"
 #include "../../Src/Components/FTestKernels.hpp"
-#include "../Src/GroupTree/FP2PGroupParticleContainer.hpp"
 
 #include "../../Src/Core/FFmmAlgorithmThreadProc.hpp"
 #include "../../Src/Files/FMpiTreeBuilder.hpp"
-#include "../../Src/GroupTree/FGroupTaskStarpuMpiAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp"
 
 #include "../../Src/Files/FMpiFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
+#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 
 #include <memory>
 
diff --git a/Tests/noDist/testBlockedRotation.cpp b/Tests/noDist/testBlockedRotation.cpp
index 5032adce3..d2630c3f5 100644
--- a/Tests/noDist/testBlockedRotation.cpp
+++ b/Tests/noDist/testBlockedRotation.cpp
@@ -4,7 +4,7 @@
 
 #include "../../Src/Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/FGroupTree.hpp"
+#include "../../Src/GroupTree/Core/FGroupTree.hpp"
 
 #include "../../Src/Components/FSimpleLeaf.hpp"
 #include "../../Src/Containers/FVector.hpp"
@@ -21,23 +21,22 @@
 #include "../../Src/Files/FRandomLoader.hpp"
 #include "../../Src/Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/FGroupSeqAlgorithm.hpp"
-#include "../../Src/GroupTree/FGroupTaskAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
 #ifdef ScalFMM_USE_OMP4
-#include "../../Src/GroupTree/FGroupTaskDepAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #endif
 #ifdef ScalFMM_USE_STARPU
-#include "../../Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 #endif
-#include "../../Src/GroupTree/FP2PGroupParticleContainer.hpp"
+#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
 
 #include "../../Src/Utils/FParameterNames.hpp"
 
 #include "../../Src/Components/FTestParticleContainer.hpp"
 #include "../../Src/Components/FTestCell.hpp"
 #include "../../Src/Components/FTestKernels.hpp"
-#include "../Src/GroupTree/FP2PGroupParticleContainer.hpp"
 
 #include "../../Src/Core/FFmmAlgorithm.hpp"
 
diff --git a/Tests/noDist/testBlockedTree.cpp b/Tests/noDist/testBlockedTree.cpp
index 1f3254a30..7e5337dcc 100644
--- a/Tests/noDist/testBlockedTree.cpp
+++ b/Tests/noDist/testBlockedTree.cpp
@@ -4,7 +4,7 @@
 
 #include "../../Src/Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/FGroupTree.hpp"
+#include "../../Src/GroupTree/Core/FGroupTree.hpp"
 
 #include "../../Src/Components/FSimpleLeaf.hpp"
 #include "../../Src/Containers/FVector.hpp"
@@ -28,16 +28,16 @@
 
 #include "../../Src/Files/FFmaGenericLoader.hpp"
 
-#include "../../Src/GroupTree/FGroupSeqAlgorithm.hpp"
-#include "../../Src/GroupTree/FGroupTaskAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
 #ifdef ScalFMM_USE_OMP4
-#include "../../Src/GroupTree/FGroupTaskDepAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskDepAlgorithm.hpp"
 #endif
 #ifdef ScalFMM_USE_STARPU
-#include "../../Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp"
-#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
+#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 #endif
-#include "../../Src/GroupTree/FP2PGroupParticleContainer.hpp"
+#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
 
 #include "../../Src/Utils/FParameterNames.hpp"
 
diff --git a/Tests/noDist/testBlockedWithCudaAlgorithm.cpp b/Tests/noDist/testBlockedWithCudaAlgorithm.cpp
index 83d33c512..e3b5ef160 100644
--- a/Tests/noDist/testBlockedWithCudaAlgorithm.cpp
+++ b/Tests/noDist/testBlockedWithCudaAlgorithm.cpp
@@ -7,7 +7,7 @@
 
 #include "../../Src/Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/FGroupTree.hpp"
+#include "../../Src/GroupTree/Core/FGroupTree.hpp"
 
 #include "../../Src/Components/FSimpleLeaf.hpp"
 #include "../../Src/Containers/FVector.hpp"
@@ -20,26 +20,26 @@
 
 #include "../../Src/Files/FRandomLoader.hpp"
 
-#include "../../Src/GroupTree/FGroupSeqAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
 
-#include "../../Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
 
-#include "../../Src/GroupTree/FP2PGroupParticleContainer.hpp"
-#include "../../Src/GroupTree/FGroupTaskAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
 
 #include "../../Src/Utils/FParameterNames.hpp"
 
 #include "../../Src/Components/FTestParticleContainer.hpp"
 #include "../../Src/Components/FTestCell.hpp"
 #include "../../Src/Components/FTestKernels.hpp"
-#include "../../Src/GroupTree/FGroupTestParticleContainer.hpp"
+#include "../../Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp"
 
 #include "../../Src/Files/FFmaGenericLoader.hpp"
 #include "../../Src/Core/FFmmAlgorithm.hpp"
 
-#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
+#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
 
-#include "../../Src/GroupTree/FTestCellPOD.hpp"
+#include "../../Src/GroupTree/TestKernel/FTestCellPOD.hpp"
 
 //#include "../../Src/GroupTree/Cuda/FCudaTestKernels.hpp"
 //#include "../../Src/GroupTree/Cuda/FCudaGroupOfParticles.hpp"
diff --git a/Tests/noDist/testBlockedWithOpenCLAlgorithm.cpp b/Tests/noDist/testBlockedWithOpenCLAlgorithm.cpp
index 7fd11b9c2..c5059dbdb 100644
--- a/Tests/noDist/testBlockedWithOpenCLAlgorithm.cpp
+++ b/Tests/noDist/testBlockedWithOpenCLAlgorithm.cpp
@@ -6,7 +6,7 @@
 
 #include "../../Src/Utils/FGlobal.hpp"
 
-#include "../../Src/GroupTree/FGroupTree.hpp"
+#include "../../Src/GroupTree/Core/FGroupTree.hpp"
 
 #include "../../Src/Components/FSimpleLeaf.hpp"
 #include "../../Src/Containers/FVector.hpp"
@@ -19,26 +19,26 @@
 
 #include "../../Src/Files/FRandomLoader.hpp"
 
-#include "../../Src/GroupTree/FGroupSeqAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupSeqAlgorithm.hpp"
 
-#include "../../Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp"
 
-#include "../../Src/GroupTree/FP2PGroupParticleContainer.hpp"
-#include "../../Src/GroupTree/FGroupTaskAlgorithm.hpp"
+#include "../../Src/GroupTree/Core/FP2PGroupParticleContainer.hpp"
+#include "../../Src/GroupTree/Core/FGroupTaskAlgorithm.hpp"
 
 #include "../../Src/Utils/FParameterNames.hpp"
 
 #include "../../Src/Components/FTestParticleContainer.hpp"
 #include "../../Src/Components/FTestCell.hpp"
 #include "../../Src/Components/FTestKernels.hpp"
-#include "../../Src/GroupTree/FGroupTestParticleContainer.hpp"
+#include "../../Src/GroupTree/TestKernel/FGroupTestParticleContainer.hpp"
 
 #include "../../Src/Files/FFmaGenericLoader.hpp"
 #include "../../Src/Core/FFmmAlgorithm.hpp"
 
-#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
-#include "../../Src/GroupTree/OpenCl/FTestOpenCLCode.hpp"
-#include "../../Src/GroupTree/FTestCellPOD.hpp"
+#include "../../Src/GroupTree/StarPUUtils/FStarPUKernelCapacities.hpp"
+#include "../../Src/GroupTree/TestKernel/FTestOpenCLCode.hpp"
+#include "../../Src/GroupTree/TestKernel/FTestCellPOD.hpp"
 
 
 int main(int argc, char* argv[]){
-- 
GitLab