From e31aa0fb31f6730978c421a24fe1091bc813f6fe Mon Sep 17 00:00:00 2001
From: berenger-bramas <berenger-bramas@2616d619-271b-44dc-8df4-d4a8f33a7222>
Date: Thu, 9 Feb 2012 13:43:11 +0000
Subject: [PATCH] Change the licence in top of all files. Add blas kernel. Add
 rotation kernel.

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/scalfmm/scalfmm/trunk@360 2616d619-271b-44dc-8df4-d4a8f33a7222
---
 CMakeLists.txt                                |   2 +-
 Data/test20k.bin.fma                          | Bin 0 -> 320028 bytes
 Licence.txt                                   |  10 +
 Src/Arranger/FOctreeArranger.hpp              |  21 +-
 Src/Arranger/FOctreeArrangerProc.hpp          |  21 +-
 Src/Components/FAbstractCell.hpp              |  21 +-
 Src/Components/FAbstractKernels.hpp           |  21 +-
 Src/Components/FAbstractLeaf.hpp              |  21 +-
 Src/Components/FAbstractParticle.hpp          |  21 +-
 Src/Components/FBasicCell.hpp                 |  21 +-
 Src/Components/FBasicKernels.hpp              |  21 +-
 Src/Components/FBasicParticle.hpp             |  21 +-
 Src/Components/FFmaParticle.hpp               |  21 +-
 Src/Components/FSimpleLeaf.hpp                |  21 +-
 Src/Components/FTestCell.hpp                  |  21 +-
 Src/Components/FTestKernels.hpp               |  21 +-
 Src/Components/FTestParticle.hpp              |  21 +-
 Src/Components/FTestPeriodicKernels.hpp       |  21 +-
 Src/Components/FTypedLeaf.hpp                 |  21 +-
 Src/Containers/FBoolArray.hpp                 |  21 +-
 Src/Containers/FLightOctree.hpp               |  21 +-
 Src/Containers/FList.hpp                      |  21 +-
 Src/Containers/FOctree.hpp                    |  21 +-
 Src/Containers/FSubOctree.hpp                 |  21 +-
 Src/Containers/FTreeCoordinate.hpp            |  21 +-
 Src/Containers/FVector.hpp                    |  21 +-
 Src/Core/FFmmAlgorithm.hpp                    |  21 +-
 Src/Core/FFmmAlgorithmPeriodic.hpp            |  21 +-
 Src/Core/FFmmAlgorithmTask.hpp                |  21 +-
 Src/Core/FFmmAlgorithmThread.hpp              |  21 +-
 Src/Core/FFmmAlgorithmThreadProc.hpp          |  50 +-
 Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp  |  21 +-
 Src/Core/FFmmAlgorithmThreadTsm.hpp           |  21 +-
 Src/Core/FFmmAlgorithmTsm.hpp                 |  21 +-
 Src/Extensions/FExtendCellType.hpp            |  21 +-
 Src/Extensions/FExtendCoordinate.hpp          |  21 +-
 Src/Extensions/FExtendForces.hpp              |  21 +-
 Src/Extensions/FExtendMortonIndex.hpp         |  21 +-
 Src/Extensions/FExtendParticleType.hpp        |  21 +-
 Src/Extensions/FExtendPhysicalValue.hpp       |  21 +-
 Src/Extensions/FExtendPosition.hpp            |  21 +-
 Src/Extensions/FExtendPotential.hpp           |  21 +-
 Src/Extensions/FExtendVelocity.hpp            |  21 +-
 Src/Files/FAbstractLoader.hpp                 |  21 +-
 Src/Files/FBasicLoader.hpp                    |  21 +-
 Src/Files/FEwalLoader.hpp                     |  21 +-
 Src/Files/FFmaBinLoader.hpp                   |  21 +-
 Src/Files/FFmaLoader.hpp                      |  21 +-
 Src/Files/FFmaScanfLoader.hpp                 |  24 +-
 Src/Files/FFmaTsmLoader.hpp                   |  21 +-
 Src/Files/FHLoader.hpp                        |  21 +-
 Src/Files/FMpiFmaLoader.hpp                   |  21 +-
 Src/Files/FMpiTreeBuilder.hpp                 |  21 +-
 Src/Files/FRandomLoader.hpp                   |  21 +-
 Src/Files/FTreeCsvSaver.hpp                   |  21 +-
 Src/Files/FTreeIO.hpp                         |  21 +-
 Src/Fmb/FExtendFmbCell.hpp                    |  21 +-
 Src/Fmb/FFmbComponents.hpp                    |  21 +-
 Src/Fmb/FFmbKernels.hpp                       |  21 +-
 Src/Fmb/FFmbKernelsBlas.hpp                   |  21 +-
 Src/Fmb/FFmbKernelsBlockBlas.hpp              |  21 +-
 ...rnels.hpp => FAbstractSphericalKernel.hpp} | 361 +------
 Src/Kernels/FComputeCell.hpp                  | 109 --
 Src/Kernels/FHarmonic.hpp                     |  29 +-
 Src/Kernels/FSphericalBlasKernel.hpp          | 214 ++++
 Src/Kernels/FSphericalCell.hpp                | 118 ++-
 Src/Kernels/FSphericalKernel.hpp              | 975 +-----------------
 Src/Kernels/FSphericalParticle.hpp            |  27 +
 Src/Kernels/FSphericalRotationKernel.hpp      | 612 +++++++++++
 Src/Utils/F3DPosition.hpp                     |  21 +-
 Src/Utils/FAbstractSendable.hpp               |  21 +-
 Src/Utils/FAssertable.hpp                     |  21 +-
 Src/Utils/FBitonicSort.hpp                    |  21 +-
 Src/Utils/FBlas.hpp                           |  21 +-
 Src/Utils/FComplexe.hpp                       |  28 +-
 Src/Utils/FDebug.cpp                          |  21 +-
 Src/Utils/FDebug.hpp                          |  21 +-
 Src/Utils/FGlobal.hpp                         |  21 +-
 Src/Utils/FMath.cpp                           |  21 +-
 Src/Utils/FMath.hpp                           |  21 +-
 Src/Utils/FMemStats.cpp                       |  21 +-
 Src/Utils/FMemStats.h                         |  21 +-
 Src/Utils/FMemUtils.hpp                       |  29 +-
 Src/Utils/FMpi.hpp                            |  21 +-
 Src/Utils/FNoCopyable.hpp                     |  21 +-
 Src/Utils/FOmpBarrier.hpp                     |  21 +-
 Src/Utils/FParameters.hpp                     |  21 +-
 Src/Utils/FQuickSort.hpp                      |  21 +-
 Src/Utils/FSpherical.hpp                      |  21 +-
 Src/Utils/FTic.cpp                            |  21 +-
 Src/Utils/FTic.hpp                            |  21 +-
 Src/Utils/FTrace.cpp                          |  21 +-
 Src/Utils/FTrace.hpp                          |  21 +-
 Tests/testDebug.cpp                           |  21 +-
 Tests/testFmbAlgorithm.cpp                    |  41 +-
 Tests/testFmbAlgorithmProc.cpp                |  53 +-
 Tests/testFmbBlasAlgorithm.cpp                |  44 +-
 Tests/testFmbEwalAlgorithm.cpp                |  30 +-
 Tests/testFmbGalaxyCsv.cpp                    |  30 +-
 Tests/testFmbRotation.cpp                     | 127 +++
 Tests/testFmbTsmAlgorithm.cpp                 |  40 +-
 Tests/testFmbTsmNoTsm.cpp                     |  53 +-
 Tests/testFmmAlgorithm.cpp                    |  21 +-
 Tests/testFmmAlgorithmPeriodic.cpp            |  21 +-
 Tests/testFmmAlgorithmProc.cpp                |  21 +-
 Tests/testFmmAlgorithmProcPeriodic.cpp        |  21 +-
 Tests/testFmmAlgorithmTsm.cpp                 |  21 +-
 Tests/testFmmDemonstration.cpp                |  21 +-
 Tests/testLoader.cpp                          |  21 +-
 Tests/testLoaderCreate.cpp                    |  21 +-
 Tests/testLoaderFMA.cpp                       |  21 +-
 Tests/testLoaderFMABinCreate.cpp              |  21 +-
 Tests/testLoaderFMACreate.cpp                 |  21 +-
 Tests/testLoaderFMACreateSphere.cpp           |  21 +-
 Tests/testLoaderFMATsm.cpp                    |  21 +-
 Tests/testLoaderFMATsmCreate.cpp              |  21 +-
 Tests/testMemStats.cpp                        |  21 +-
 Tests/testMortonIndex.cpp                     |  21 +-
 Tests/testOctree.cpp                          |  21 +-
 Tests/testOctreeIter.cpp                      |  21 +-
 Tests/testOctreePrintMorton.cpp               |  21 +-
 Tests/testOctreeRearrange.cpp                 |  21 +-
 Tests/testOctreeRearrangeProc.cpp             |  21 +-
 Tests/testStatsTree.cpp                       |  21 +-
 Tests/testTic.cpp                             |  21 +-
 Tests/testTreeIO.cpp                          |  21 +-
 UTests/FUTester.hpp                           |  21 +-
 UTests/utestBoolArray.cpp                     |  21 +-
 UTests/utestFmb.cpp                           |  43 +-
 UTests/utestFmbDirect.cpp                     |  34 +-
 UTests/utestFmbDirectPeriodic.cpp             |  36 +-
 UTests/utestList.cpp                          |  21 +-
 UTests/utestMorton.cpp                        |  21 +-
 UTests/utestOctree.cpp                        |  21 +-
 UTests/utestParameters.cpp                    |  21 +-
 UTests/utestQuicksort.cpp                     |  21 +-
 UTests/utestTest.cpp                          |  21 +-
 UTests/utestVector.cpp                        |  21 +-
 138 files changed, 2338 insertions(+), 3133 deletions(-)
 create mode 100644 Data/test20k.bin.fma
 rename Src/Kernels/{FElecForcesKernels.hpp => FAbstractSphericalKernel.hpp} (67%)
 delete mode 100644 Src/Kernels/FComputeCell.hpp
 create mode 100644 Src/Kernels/FSphericalBlasKernel.hpp
 create mode 100644 Src/Kernels/FSphericalParticle.hpp
 create mode 100644 Src/Kernels/FSphericalRotationKernel.hpp
 create mode 100644 Tests/testFmbRotation.cpp

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8b5bf385e..1d7a9fe50 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,7 +14,7 @@ project(scalfmm)
 ENABLE_LANGUAGE(CXX )
 
 # Options
-OPTION( SCALFMM_USE_CBLAS "Set to ON to build ScaFMM with BLAS" OFF )
+OPTION( SCALFMM_USE_CBLAS "Set to ON to build ScaFMM with BLAS" ON )
 OPTION( SCALFMM_USE_MPI "Set to ON to build ScaFMM with MPI" OFF )
 OPTION( SCALFMM_USE_TRACE "Set to ON to print trace or use itac trace" OFF )
 OPTION( SCALFMM_BUILD_TESTS "Set to ON to build fonctionnalities Tests" ON )
diff --git a/Data/test20k.bin.fma b/Data/test20k.bin.fma
new file mode 100644
index 0000000000000000000000000000000000000000..ea8824cc468a62dbdc75bad9dbc52620a504d7a0
GIT binary patch
literal 320028
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%0Do
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%0D{PZAA?d@-
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
CXgeSP

literal 0
HcmV?d00001

diff --git a/Licence.txt b/Licence.txt
index 671f482d3..5b1cb77af 100644
--- a/Licence.txt
+++ b/Licence.txt
@@ -1,3 +1,13 @@
+Logiciel initial: ScalFmm Version 0.5
+Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+Propriétaires : INRIA.
+Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+Initial software: ScalFmm Version 0.5
+Co-authors: Olivier Coulaud, Bérenger Bramas.
+Owners: INRIA.
+Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
+
+
 Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012. 
 Inria détient tous les droits de propriété sur le LOGICIEL, et  souhaite que la communauté scientifique l'utilise afin de le tester et de l'évaluer. 
 Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation dans un but lucratif ou à des fins commerciales est interdite sauf autorisation expresse et préalable d'Inria. 
diff --git a/Src/Arranger/FOctreeArranger.hpp b/Src/Arranger/FOctreeArranger.hpp
index bdb1229b5..205419597 100644
--- a/Src/Arranger/FOctreeArranger.hpp
+++ b/Src/Arranger/FOctreeArranger.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FOCTREEARRANGER_HPP
 #define FOCTREEARRANGER_HPP
diff --git a/Src/Arranger/FOctreeArrangerProc.hpp b/Src/Arranger/FOctreeArrangerProc.hpp
index f6b868aea..146927ee8 100644
--- a/Src/Arranger/FOctreeArrangerProc.hpp
+++ b/Src/Arranger/FOctreeArrangerProc.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FOCTREEARRANGERPROC_HPP
 #define FOCTREEARRANGERPROC_HPP
diff --git a/Src/Components/FAbstractCell.hpp b/Src/Components/FAbstractCell.hpp
index 224b12a19..93b2292c7 100644
--- a/Src/Components/FAbstractCell.hpp
+++ b/Src/Components/FAbstractCell.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FABSTRACTCELL_HPP
 #define FABSTRACTCELL_HPP
diff --git a/Src/Components/FAbstractKernels.hpp b/Src/Components/FAbstractKernels.hpp
index f1a03f2e6..cd89e9f76 100644
--- a/Src/Components/FAbstractKernels.hpp
+++ b/Src/Components/FAbstractKernels.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FABSTRACTKERNELS_HPP
 #define FABSTRACTKERNELS_HPP
diff --git a/Src/Components/FAbstractLeaf.hpp b/Src/Components/FAbstractLeaf.hpp
index 8f63ddb39..4466970df 100644
--- a/Src/Components/FAbstractLeaf.hpp
+++ b/Src/Components/FAbstractLeaf.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FABSTRACTLEAF_HPP
 #define FABSTRACTLEAF_HPP
diff --git a/Src/Components/FAbstractParticle.hpp b/Src/Components/FAbstractParticle.hpp
index 504bcf05d..01ef72448 100644
--- a/Src/Components/FAbstractParticle.hpp
+++ b/Src/Components/FAbstractParticle.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FABSTRACTPARTICLE_HPP
 #define FABSTRACTPARTICLE_HPP
diff --git a/Src/Components/FBasicCell.hpp b/Src/Components/FBasicCell.hpp
index b7d5cfe3f..c6b1885b0 100644
--- a/Src/Components/FBasicCell.hpp
+++ b/Src/Components/FBasicCell.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FBASICCELL_HPP
 #define FBASICCELL_HPP
diff --git a/Src/Components/FBasicKernels.hpp b/Src/Components/FBasicKernels.hpp
index d552e3755..8a8bf31d6 100644
--- a/Src/Components/FBasicKernels.hpp
+++ b/Src/Components/FBasicKernels.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FBASICKERNELS_HPP
 #define FBASICKERNELS_HPP
diff --git a/Src/Components/FBasicParticle.hpp b/Src/Components/FBasicParticle.hpp
index 046d8ca7b..a7d0b69e7 100644
--- a/Src/Components/FBasicParticle.hpp
+++ b/Src/Components/FBasicParticle.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FBASICPARTICLE_HPP
 #define FBASICPARTICLE_HPP
diff --git a/Src/Components/FFmaParticle.hpp b/Src/Components/FFmaParticle.hpp
index 04b2c0bcb..21b350070 100644
--- a/Src/Components/FFmaParticle.hpp
+++ b/Src/Components/FFmaParticle.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFmaPARTICLE_HPP
 #define FFmaPARTICLE_HPP
diff --git a/Src/Components/FSimpleLeaf.hpp b/Src/Components/FSimpleLeaf.hpp
index 8b044bca4..beb3895a9 100644
--- a/Src/Components/FSimpleLeaf.hpp
+++ b/Src/Components/FSimpleLeaf.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FSIMPLELEAF_HPP
 #define FSIMPLELEAF_HPP
diff --git a/Src/Components/FTestCell.hpp b/Src/Components/FTestCell.hpp
index fcff639a7..cfb6db2ed 100644
--- a/Src/Components/FTestCell.hpp
+++ b/Src/Components/FTestCell.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FTESTCELL_HPP
 #define FTESTCELL_HPP
diff --git a/Src/Components/FTestKernels.hpp b/Src/Components/FTestKernels.hpp
index b1f8d0655..611a2abd1 100644
--- a/Src/Components/FTestKernels.hpp
+++ b/Src/Components/FTestKernels.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FTESTKERNELS_HPP
 #define FTESTKERNELS_HPP
diff --git a/Src/Components/FTestParticle.hpp b/Src/Components/FTestParticle.hpp
index fb304810f..12c9bf3f7 100644
--- a/Src/Components/FTestParticle.hpp
+++ b/Src/Components/FTestParticle.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FTESTPARTICLE_HPP
 #define FTESTPARTICLE_HPP
diff --git a/Src/Components/FTestPeriodicKernels.hpp b/Src/Components/FTestPeriodicKernels.hpp
index adfe4a696..4da86c2a2 100644
--- a/Src/Components/FTestPeriodicKernels.hpp
+++ b/Src/Components/FTestPeriodicKernels.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FTESTPERIODICKERNELS_HPP
 #define FTESTPERIODICKERNELS_HPP
diff --git a/Src/Components/FTypedLeaf.hpp b/Src/Components/FTypedLeaf.hpp
index 3a31bc02d..0e0740e4f 100644
--- a/Src/Components/FTypedLeaf.hpp
+++ b/Src/Components/FTypedLeaf.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FTYPEDLEAF_HPP
 #define FTYPEDLEAF_HPP
diff --git a/Src/Containers/FBoolArray.hpp b/Src/Containers/FBoolArray.hpp
index 7a7c405bf..ef08d9875 100644
--- a/Src/Containers/FBoolArray.hpp
+++ b/Src/Containers/FBoolArray.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FBOOLARRAY_HPP
 #define FBOOLARRAY_HPP
diff --git a/Src/Containers/FLightOctree.hpp b/Src/Containers/FLightOctree.hpp
index c19fe4de0..42c3f99cf 100644
--- a/Src/Containers/FLightOctree.hpp
+++ b/Src/Containers/FLightOctree.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FLIGHTOCTREE_HPP
 #define FLIGHTOCTREE_HPP
diff --git a/Src/Containers/FList.hpp b/Src/Containers/FList.hpp
index a72ac353a..ea88ee0e8 100644
--- a/Src/Containers/FList.hpp
+++ b/Src/Containers/FList.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FLIST_HPP
 #define FLIST_HPP
diff --git a/Src/Containers/FOctree.hpp b/Src/Containers/FOctree.hpp
index 8cce218c0..c9c97b223 100644
--- a/Src/Containers/FOctree.hpp
+++ b/Src/Containers/FOctree.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FOCTREE_HPP
 #define FOCTREE_HPP
diff --git a/Src/Containers/FSubOctree.hpp b/Src/Containers/FSubOctree.hpp
index 6f2c4a0b1..687dfe648 100644
--- a/Src/Containers/FSubOctree.hpp
+++ b/Src/Containers/FSubOctree.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FSUBOCTREE_HPP
 #define FSUBOCTREE_HPP
diff --git a/Src/Containers/FTreeCoordinate.hpp b/Src/Containers/FTreeCoordinate.hpp
index 2f0480d14..ae459fd67 100644
--- a/Src/Containers/FTreeCoordinate.hpp
+++ b/Src/Containers/FTreeCoordinate.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FTREECOORDINATE_HPP
 #define FTREECOORDINATE_HPP
diff --git a/Src/Containers/FVector.hpp b/Src/Containers/FVector.hpp
index 3b05e1bb0..d7412b84e 100644
--- a/Src/Containers/FVector.hpp
+++ b/Src/Containers/FVector.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FVECTOR_HPP
 #define FVECTOR_HPP
diff --git a/Src/Core/FFmmAlgorithm.hpp b/Src/Core/FFmmAlgorithm.hpp
index 099ffdff7..90afff093 100644
--- a/Src/Core/FFmmAlgorithm.hpp
+++ b/Src/Core/FFmmAlgorithm.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMMALGORITHM_HPP
 #define FFMMALGORITHM_HPP
diff --git a/Src/Core/FFmmAlgorithmPeriodic.hpp b/Src/Core/FFmmAlgorithmPeriodic.hpp
index 0974ed766..f478866bd 100644
--- a/Src/Core/FFmmAlgorithmPeriodic.hpp
+++ b/Src/Core/FFmmAlgorithmPeriodic.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMMALGORITHMPERIODIC_HPP
 #define FFMMALGORITHMPERIODIC_HPP
diff --git a/Src/Core/FFmmAlgorithmTask.hpp b/Src/Core/FFmmAlgorithmTask.hpp
index daee348d8..72281b32e 100644
--- a/Src/Core/FFmmAlgorithmTask.hpp
+++ b/Src/Core/FFmmAlgorithmTask.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMMALGORITHMTASK_HPP
 #define FFMMALGORITHMTASK_HPP
diff --git a/Src/Core/FFmmAlgorithmThread.hpp b/Src/Core/FFmmAlgorithmThread.hpp
index f2dc8d562..d8b7fa74b 100644
--- a/Src/Core/FFmmAlgorithmThread.hpp
+++ b/Src/Core/FFmmAlgorithmThread.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMMALGORITHMTHREAD_HPP
 #define FFMMALGORITHMTHREAD_HPP
diff --git a/Src/Core/FFmmAlgorithmThreadProc.hpp b/Src/Core/FFmmAlgorithmThreadProc.hpp
index a0dea032c..60be53118 100644
--- a/Src/Core/FFmmAlgorithmThreadProc.hpp
+++ b/Src/Core/FFmmAlgorithmThreadProc.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMMALGORITHMTHREADPROC_HPP
 #define FFMMALGORITHMTHREADPROC_HPP
@@ -570,15 +565,12 @@ private:
             MPI_Status status[2 * nbProcess * OctreeHeight];
             int iterRequest = 0;
 
-            struct CellToSend{
-                MortonIndex index;
-                char data[CellClass::SerializedSizeUp];
-            };
+            const int SizeOfCellToSend = sizeof(MortonIndex) + CellClass::SerializedSizeUp;
 
-            CellToSend* sendBuffer[nbProcess * OctreeHeight];
+            char* sendBuffer[nbProcess * OctreeHeight];
             memset(sendBuffer, 0, sizeof(CellClass*) * nbProcess * OctreeHeight);
 
-            CellToSend* recvBuffer[nbProcess * OctreeHeight];
+            char* recvBuffer[nbProcess * OctreeHeight];
             memset(recvBuffer, 0, sizeof(CellClass*) * nbProcess * OctreeHeight);
 
 
@@ -586,22 +578,23 @@ private:
                 for(int idxProc = 0 ; idxProc < nbProcess ; ++idxProc){
                     const int toSendAtProcAtLevel = indexToSend[idxLevel * nbProcess + idxProc];
                     if(toSendAtProcAtLevel != 0){
-                        sendBuffer[idxLevel * nbProcess + idxProc] = new CellToSend[toSendAtProcAtLevel];
+                        sendBuffer[idxLevel * nbProcess + idxProc] = new char[toSendAtProcAtLevel * SizeOfCellToSend];
 
                         for(int idxLeaf = 0 ; idxLeaf < toSendAtProcAtLevel; ++idxLeaf){
-                            sendBuffer[idxLevel * nbProcess + idxProc][idxLeaf].index = toSend[idxLevel * nbProcess + idxProc][idxLeaf].getCurrentGlobalIndex();
-                            toSend[idxLevel * nbProcess + idxProc][idxLeaf].getCurrentCell()->serializeUp(sendBuffer[idxLevel * nbProcess + idxProc][idxLeaf].data);
+                            const MortonIndex cellIndex = toSend[idxLevel * nbProcess + idxProc][idxLeaf].getCurrentGlobalIndex();
+                            memcpy(&sendBuffer[idxLevel * nbProcess + idxProc][idxLeaf * SizeOfCellToSend],&cellIndex, sizeof(MortonIndex));
+                            toSend[idxLevel * nbProcess + idxProc][idxLeaf].getCurrentCell()->serializeUp(&sendBuffer[idxLevel * nbProcess + idxProc][idxLeaf * SizeOfCellToSend] + sizeof(MortonIndex));
                         }
 
-                        FMpi::MpiAssert( MPI_Isend( sendBuffer[idxLevel * nbProcess + idxProc], toSendAtProcAtLevel * int(sizeof(CellToSend)) , MPI_BYTE ,
+                        FMpi::MpiAssert( MPI_Isend( sendBuffer[idxLevel * nbProcess + idxProc], toSendAtProcAtLevel * SizeOfCellToSend , MPI_BYTE ,
                                              idxProc, FMpi::TagLast + idxLevel, MPI_COMM_WORLD, &requests[iterRequest++]) , __LINE__ );
                     }
 
                     const int toReceiveFromProcAtLevel = globalReceiveMap[(idxProc * nbProcess * OctreeHeight) + idxLevel * nbProcess + idProcess];
                     if(toReceiveFromProcAtLevel){
-                        recvBuffer[idxLevel * nbProcess + idxProc] = new CellToSend[toReceiveFromProcAtLevel];
+                        recvBuffer[idxLevel * nbProcess + idxProc] = new char[toReceiveFromProcAtLevel * SizeOfCellToSend];
 
-                        FMpi::MpiAssert( MPI_Irecv(recvBuffer[idxLevel * nbProcess + idxProc], toReceiveFromProcAtLevel * int(sizeof(CellToSend)), MPI_BYTE,
+                        FMpi::MpiAssert( MPI_Irecv(recvBuffer[idxLevel * nbProcess + idxProc], toReceiveFromProcAtLevel * SizeOfCellToSend, MPI_BYTE,
                                             idxProc, FMpi::TagLast + idxLevel, MPI_COMM_WORLD, &requests[iterRequest++]) , __LINE__ );
                     }
                 }
@@ -686,9 +679,12 @@ private:
                     FLightOctree tempTree;
                     for(int idxProc = 0 ; idxProc < nbProcess ; ++idxProc){
                         const int toReceiveFromProcAtLevel = globalReceiveMap[(idxProc * nbProcess * OctreeHeight) + idxLevel * nbProcess + idProcess];
-                        const CellToSend* const cells = recvBuffer[idxLevel * nbProcess + idxProc];
+                        const char* const cells = recvBuffer[idxLevel * nbProcess + idxProc];
                         for(int idxCell = 0 ; idxCell < toReceiveFromProcAtLevel ; ++idxCell){
-                            tempTree.insertCell(cells[idxCell].index, cells[idxCell].data, idxLevel);
+                            MortonIndex cellIndex = 0;
+                            memcpy(&cellIndex, &cells[idxCell * SizeOfCellToSend], sizeof(MortonIndex));
+                            const char* const cellData = &cells[idxCell * SizeOfCellToSend] + sizeof(MortonIndex);
+                            tempTree.insertCell(cellIndex, cellData, idxLevel);
                         }
                     }
 
diff --git a/Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp b/Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp
index 9aaec5aa5..31d980ebb 100644
--- a/Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp
+++ b/Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFmmAlgorithmThreadProcPeriodicPERIODIC_HPP
 #define FFmmAlgorithmThreadProcPeriodicPERIODIC_HPP
diff --git a/Src/Core/FFmmAlgorithmThreadTsm.hpp b/Src/Core/FFmmAlgorithmThreadTsm.hpp
index 4a189254b..7adce618f 100644
--- a/Src/Core/FFmmAlgorithmThreadTsm.hpp
+++ b/Src/Core/FFmmAlgorithmThreadTsm.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMMALGORITHMTHREADTSM_HPP
 #define FFMMALGORITHMTHREADTSM_HPP
diff --git a/Src/Core/FFmmAlgorithmTsm.hpp b/Src/Core/FFmmAlgorithmTsm.hpp
index c210031e0..7ca3ed235 100644
--- a/Src/Core/FFmmAlgorithmTsm.hpp
+++ b/Src/Core/FFmmAlgorithmTsm.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMMALGORITHMTSM_HPP
 #define FFMMALGORITHMTSM_HPP
diff --git a/Src/Extensions/FExtendCellType.hpp b/Src/Extensions/FExtendCellType.hpp
index 3db619be7..ff4fd7eb0 100644
--- a/Src/Extensions/FExtendCellType.hpp
+++ b/Src/Extensions/FExtendCellType.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FEXTENDCELLTYPE_HPP
 #define FEXTENDCELLTYPE_HPP
diff --git a/Src/Extensions/FExtendCoordinate.hpp b/Src/Extensions/FExtendCoordinate.hpp
index 212039f72..eba5d0e99 100644
--- a/Src/Extensions/FExtendCoordinate.hpp
+++ b/Src/Extensions/FExtendCoordinate.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FEXTENDCOORDINATE_HPP
 #define FEXTENDCOORDINATE_HPP
diff --git a/Src/Extensions/FExtendForces.hpp b/Src/Extensions/FExtendForces.hpp
index 0195eb2ce..324b9ee9e 100644
--- a/Src/Extensions/FExtendForces.hpp
+++ b/Src/Extensions/FExtendForces.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FEXTENDFORCES_HPP
 #define FEXTENDFORCES_HPP
diff --git a/Src/Extensions/FExtendMortonIndex.hpp b/Src/Extensions/FExtendMortonIndex.hpp
index 87da37325..90f9d6ce2 100644
--- a/Src/Extensions/FExtendMortonIndex.hpp
+++ b/Src/Extensions/FExtendMortonIndex.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FEXTENDMORTONINDEX_HPP
 #define FEXTENDMORTONINDEX_HPP
diff --git a/Src/Extensions/FExtendParticleType.hpp b/Src/Extensions/FExtendParticleType.hpp
index 0d4cbc8ed..fdb5792e9 100644
--- a/Src/Extensions/FExtendParticleType.hpp
+++ b/Src/Extensions/FExtendParticleType.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FEXTENDPARTICLETYPE_HPP
 #define FEXTENDPARTICLETYPE_HPP
diff --git a/Src/Extensions/FExtendPhysicalValue.hpp b/Src/Extensions/FExtendPhysicalValue.hpp
index be73349c0..82a81626f 100644
--- a/Src/Extensions/FExtendPhysicalValue.hpp
+++ b/Src/Extensions/FExtendPhysicalValue.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FExtendPhysicalValue_HPP
 #define FExtendPhysicalValue_HPP
diff --git a/Src/Extensions/FExtendPosition.hpp b/Src/Extensions/FExtendPosition.hpp
index d8668c8d2..ab4bcf807 100644
--- a/Src/Extensions/FExtendPosition.hpp
+++ b/Src/Extensions/FExtendPosition.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FEXTENDPOSITION_HPP
 #define FEXTENDPOSITION_HPP
diff --git a/Src/Extensions/FExtendPotential.hpp b/Src/Extensions/FExtendPotential.hpp
index 4ee2e700a..e8c85f4b2 100644
--- a/Src/Extensions/FExtendPotential.hpp
+++ b/Src/Extensions/FExtendPotential.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FEXTENDPOTENTIAL_HPP
 #define FEXTENDPOTENTIAL_HPP
diff --git a/Src/Extensions/FExtendVelocity.hpp b/Src/Extensions/FExtendVelocity.hpp
index 9f165a0fa..7e2f8e2ac 100644
--- a/Src/Extensions/FExtendVelocity.hpp
+++ b/Src/Extensions/FExtendVelocity.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FEXTENDVELOCITY_HPP
 #define FEXTENDVELOCITY_HPP
diff --git a/Src/Files/FAbstractLoader.hpp b/Src/Files/FAbstractLoader.hpp
index f241f53d0..6b8649789 100644
--- a/Src/Files/FAbstractLoader.hpp
+++ b/Src/Files/FAbstractLoader.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FABSTRACTLOADER_HPP
 #define FABSTRACTLOADER_HPP
diff --git a/Src/Files/FBasicLoader.hpp b/Src/Files/FBasicLoader.hpp
index 979e3d85d..577d68e07 100644
--- a/Src/Files/FBasicLoader.hpp
+++ b/Src/Files/FBasicLoader.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FBASICLOADER_HPP
 #define FBASICLOADER_HPP
diff --git a/Src/Files/FEwalLoader.hpp b/Src/Files/FEwalLoader.hpp
index e07a04b34..cbc2ec5ee 100644
--- a/Src/Files/FEwalLoader.hpp
+++ b/Src/Files/FEwalLoader.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMALOADER_HPP
 #define FFMALOADER_HPP
diff --git a/Src/Files/FFmaBinLoader.hpp b/Src/Files/FFmaBinLoader.hpp
index 5a8f5c47f..ffef46b08 100644
--- a/Src/Files/FFmaBinLoader.hpp
+++ b/Src/Files/FFmaBinLoader.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMABINLOADER_HPP
 #define FFMABINLOADER_HPP
diff --git a/Src/Files/FFmaLoader.hpp b/Src/Files/FFmaLoader.hpp
index 34c94d7c3..e75657d66 100644
--- a/Src/Files/FFmaLoader.hpp
+++ b/Src/Files/FFmaLoader.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMALOADER_HPP
 #define FFMALOADER_HPP
diff --git a/Src/Files/FFmaScanfLoader.hpp b/Src/Files/FFmaScanfLoader.hpp
index b5ddb4643..3106e2f16 100644
--- a/Src/Files/FFmaScanfLoader.hpp
+++ b/Src/Files/FFmaScanfLoader.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMASCANFLOADER_HPP
 #define FFMASCANFLOADER_HPP
@@ -72,9 +67,8 @@ public:
             float x,y,z, fBoxWidth;
             const int nbReadElements = fscanf(file,"%d %f %f %f %f",&this->nbParticles,&fBoxWidth,&x,&y,&z);
             if(nbReadElements == 5){
-                this->boxWidth = fBoxWidth;
+                this->boxWidth = fBoxWidth * 2;
                 this->centerOfBox.setPosition(x,y,z);
-                this->boxWidth *= 2;
             }
             else{
                 fclose(file);
diff --git a/Src/Files/FFmaTsmLoader.hpp b/Src/Files/FFmaTsmLoader.hpp
index 3a78500ca..8e1d892ae 100644
--- a/Src/Files/FFmaTsmLoader.hpp
+++ b/Src/Files/FFmaTsmLoader.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMATSMLOADER_HPP
 #define FFMATSMLOADER_HPP
diff --git a/Src/Files/FHLoader.hpp b/Src/Files/FHLoader.hpp
index 00dac32bd..4cea7882c 100644
--- a/Src/Files/FHLoader.hpp
+++ b/Src/Files/FHLoader.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FHLOADER_HPP
 #define FHLOADER_HPP
diff --git a/Src/Files/FMpiFmaLoader.hpp b/Src/Files/FMpiFmaLoader.hpp
index 9f81706be..cb28ce82d 100644
--- a/Src/Files/FMpiFmaLoader.hpp
+++ b/Src/Files/FMpiFmaLoader.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FMPIFMALOADER_HPP
 #define FMPIFMALOADER_HPP
diff --git a/Src/Files/FMpiTreeBuilder.hpp b/Src/Files/FMpiTreeBuilder.hpp
index d374b7aad..8fad26df6 100644
--- a/Src/Files/FMpiTreeBuilder.hpp
+++ b/Src/Files/FMpiTreeBuilder.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FMPITREEBUILDER_H
 #define FMPITREEBUILDER_H
diff --git a/Src/Files/FRandomLoader.hpp b/Src/Files/FRandomLoader.hpp
index cc6a26b18..867c1080d 100644
--- a/Src/Files/FRandomLoader.hpp
+++ b/Src/Files/FRandomLoader.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FHLOADER_HPP
 #define FHLOADER_HPP
diff --git a/Src/Files/FTreeCsvSaver.hpp b/Src/Files/FTreeCsvSaver.hpp
index bdd72a579..e5ccca7a8 100644
--- a/Src/Files/FTreeCsvSaver.hpp
+++ b/Src/Files/FTreeCsvSaver.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FTREECSVSAVER_HPP
 #define FTREECSVSAVER_HPP
diff --git a/Src/Files/FTreeIO.hpp b/Src/Files/FTreeIO.hpp
index a47e4387b..04a373921 100644
--- a/Src/Files/FTreeIO.hpp
+++ b/Src/Files/FTreeIO.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FTREEIO_HPP
 #define FTREEIO_HPP
diff --git a/Src/Fmb/FExtendFmbCell.hpp b/Src/Fmb/FExtendFmbCell.hpp
index ba8b1b0a7..e463a91a1 100644
--- a/Src/Fmb/FExtendFmbCell.hpp
+++ b/Src/Fmb/FExtendFmbCell.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FEXTENDFMBCELL_HPP
 #define FEXTENDFMBCELL_HPP
diff --git a/Src/Fmb/FFmbComponents.hpp b/Src/Fmb/FFmbComponents.hpp
index 4b8934d5c..865dcd9a9 100644
--- a/Src/Fmb/FFmbComponents.hpp
+++ b/Src/Fmb/FFmbComponents.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMBCOMPONENTS_HPP
 #define FFMBCOMPONENTS_HPP
diff --git a/Src/Fmb/FFmbKernels.hpp b/Src/Fmb/FFmbKernels.hpp
index e13135bb4..2ec13be01 100644
--- a/Src/Fmb/FFmbKernels.hpp
+++ b/Src/Fmb/FFmbKernels.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMBKERNELS_HPP
 #define FFMBKERNELS_HPP
diff --git a/Src/Fmb/FFmbKernelsBlas.hpp b/Src/Fmb/FFmbKernelsBlas.hpp
index fb7e31ed8..8a7231765 100644
--- a/Src/Fmb/FFmbKernelsBlas.hpp
+++ b/Src/Fmb/FFmbKernelsBlas.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMBKERNELSBLAS_HPP
 #define FFMBKERNELSBLAS_HPP
diff --git a/Src/Fmb/FFmbKernelsBlockBlas.hpp b/Src/Fmb/FFmbKernelsBlockBlas.hpp
index d08fa04e5..14b15a970 100644
--- a/Src/Fmb/FFmbKernelsBlockBlas.hpp
+++ b/Src/Fmb/FFmbKernelsBlockBlas.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FFMBKERNELSBLOCKBLAS_HPP
 #define FFMBKERNELSBLOCKBLAS_HPP
diff --git a/Src/Kernels/FElecForcesKernels.hpp b/Src/Kernels/FAbstractSphericalKernel.hpp
similarity index 67%
rename from Src/Kernels/FElecForcesKernels.hpp
rename to Src/Kernels/FAbstractSphericalKernel.hpp
index 3cba30175..3abc8133a 100644
--- a/Src/Kernels/FElecForcesKernels.hpp
+++ b/Src/Kernels/FAbstractSphericalKernel.hpp
@@ -1,20 +1,15 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
-#ifndef FELECBASICKERNELS_HPP
-#define FELECBASICKERNELS_HPP
+#ifndef FABSTRACTSPHERICALKERNEL_HPP
+#define FABSTRACTSPHERICALKERNEL_HPP
 
 #include "../Components/FAbstractKernels.hpp"
 
@@ -28,50 +23,36 @@
 
 /**
 * @author Berenger Bramas (berenger.bramas@inria.fr)
-* @brief
-* Please read the license
-*
+* This is the abstract spherical harmonic kernel
 */
 template< class ParticleClass, class CellClass, class ContainerClass>
-class FElecForcesKernels : public FAbstractKernels<ParticleClass,CellClass,ContainerClass> {
-    const int devP;           //< The P
-    const int devM2lP;        //< A secondary P
-    const FReal boxWidth;     //< the box width at leaf level
-    const int treeHeight;     //< The height of the tree
+class FAbstractSphericalKernel : public FAbstractKernels<ParticleClass,CellClass,ContainerClass> {
+protected:
+    const int   devP;           //< The P
+    const FReal boxWidth;       //< the box width at leaf level
+    const int   treeHeight;     //< The height of the tree
 
     const int periodicLevels; //< The number of levels above 1 used for periodicity
 
     FHarmonic harmonic; //< The harmonic computation class
 
     // For normal computation
-    FComplexe* preL2LTransitions; //< The pre-computation for the L2L based on the level
-    FComplexe* preM2MTransitions; //< The pre-computation for the M2M based on the level
+    FComplexe** preL2LTransitions; //< The pre-computation for the L2L based on the level
+    FComplexe** preM2MTransitions; //< The pre-computation for the M2M based on the level
 
-    FComplexe* preM2LTransitions; //< The pre-computation for the M2L based on the level and the 189 possibilities
-
-    // For harmonic computation
-    FComplexe* preL2LTransitionsPer; //< The pre-computation for the L2L based on the level
-    FComplexe* preM2MTransitionsPer; //< The pre-computation for the M2M based on the level
-
-    FComplexe* preM2LTransitionsPer; //< The pre-computation for the M2L based on the level and the 189 possibilities
-
-    /** To access te preL2L/preM2M right vector */
-    int indexTransition(const int level, const int child){
-        return level * 8 * harmonic.getExpSize() + child * harmonic.getExpSize();
-    }
-
-    /** To access te preM2L right vector */
-    int indexM2LTransition(const int idxLevel,const int idxX,const int idxY,const int idxZ){
-        return (idxLevel * 7 * 7 * 7 * devM2lP) + (((((idxX+3) * 7) + (idxY+3)) * 7 ) + (idxZ+3)) * devM2lP;
-    }
 
     /** Alloc and init pre-vectors*/
     void allocAndInit(){
-        preL2LTransitions = new FComplexe[treeHeight * 8 * harmonic.getExpSize()];
-        preM2MTransitions = new FComplexe[treeHeight * 8 * harmonic.getExpSize()];
+        preL2LTransitions = new FComplexe*[treeHeight + periodicLevels];
+        memset(preL2LTransitions, 0, (treeHeight + periodicLevels) * sizeof(FComplexe*));
+        preM2MTransitions = new FComplexe*[treeHeight + periodicLevels];
+        memset(preM2MTransitions, 0, (treeHeight + periodicLevels) * sizeof(FComplexe*));
+
+        FReal treeWidthAtLevel = (boxWidth * FReal(1 << periodicLevels))/2;
+        for(int idxLevel = -periodicLevels ; idxLevel < treeHeight - 1 ; ++idxLevel ){
+            preL2LTransitions[idxLevel + periodicLevels] = new FComplexe[ 8 * harmonic.getExpSize()];
+            preM2MTransitions[idxLevel + periodicLevels] = new FComplexe[ 8 * harmonic.getExpSize()];
 
-        FReal treeWidthAtLevel = boxWidth/2;
-        for(int idxLevel = 0 ; idxLevel < treeHeight - 1 ; ++idxLevel ){
             const F3DPosition father(treeWidthAtLevel,treeWidthAtLevel,treeWidthAtLevel);
             treeWidthAtLevel /= 2;
 
@@ -86,7 +67,7 @@ class FElecForcesKernels : public FAbstractKernels<ParticleClass,CellClass,Conta
                         );
 
                 harmonic.computeInner(FSpherical(M2MVector));
-                FMemUtils::copyall<FComplexe>(&preM2MTransitions[indexTransition(idxLevel,idxChild)], harmonic.result(), harmonic.getExpSize());
+                FMemUtils::copyall<FComplexe>(&preM2MTransitions[idxLevel + periodicLevels][harmonic.getExpSize() * idxChild], harmonic.result(), harmonic.getExpSize());
 
                 const F3DPosition L2LVector (
                         (treeWidthAtLevel * FReal(1 + (childBox.getX() * 2))) - father.getX(),
@@ -95,123 +76,42 @@ class FElecForcesKernels : public FAbstractKernels<ParticleClass,CellClass,Conta
                         );
 
                 harmonic.computeInner(FSpherical(L2LVector));
-                FMemUtils::copyall<FComplexe>(&preL2LTransitions[indexTransition(idxLevel,idxChild)], harmonic.result(), harmonic.getExpSize());
+                FMemUtils::copyall<FComplexe>(&preL2LTransitions[idxLevel + periodicLevels][harmonic.getExpSize() * idxChild], harmonic.result(), harmonic.getExpSize());
            }
         }
-
-        // M2L transfer, there is a maximum of 3 neighbors in each direction,
-        // so 6 in each dimension
-        treeWidthAtLevel = boxWidth;
-        preM2LTransitions = new FComplexe[treeHeight * (7 * 7 * 7) * devM2lP];
-        for(int idxLevel = 0 ; idxLevel < treeHeight ; ++idxLevel ){
-            for(int idxX = -3 ; idxX <= 3 ; ++idxX ){
-                for(int idxY = -3 ; idxY <= 3 ; ++idxY ){
-                    for(int idxZ = -3 ; idxZ <= 3 ; ++idxZ ){
-                        if(idxX || idxY || idxZ){
-                            const F3DPosition relativePos( FReal(idxX) * treeWidthAtLevel , FReal(idxY) * treeWidthAtLevel , FReal(idxZ) * treeWidthAtLevel );
-                            harmonic.computeOuter(FSpherical(relativePos));
-                            FMemUtils::copyall<FComplexe>(&preM2LTransitions[indexM2LTransition(idxLevel,idxX,idxY,idxZ)], harmonic.result(), harmonic.getExpSize());
-                        }
-                    }
-                }
-            }
-            treeWidthAtLevel /= 2;
-        }
-    }
-
-    void allocAndInitPer(){
-        if( periodicLevels ){
-            preL2LTransitionsPer = new FComplexe[periodicLevels * 8 * harmonic.getExpSize()];
-            preM2MTransitionsPer = new FComplexe[periodicLevels * 8 * harmonic.getExpSize()];
-
-            FReal treeWidthAtLevel = boxWidth;
-            for(int idxLevel = -1 ; idxLevel >= -periodicLevels ; --idxLevel ){
-                const F3DPosition father(treeWidthAtLevel,treeWidthAtLevel,treeWidthAtLevel);
-                treeWidthAtLevel *= 2;
-
-                for(int idxChild = 0 ; idxChild < 8 ; ++idxChild ){
-                    FTreeCoordinate childBox;
-                    childBox.setPositionFromMorton(idxChild,1);
-
-                    const F3DPosition M2MVector (
-                            father.getX() - (treeWidthAtLevel * FReal(1 + (childBox.getX() * 2))),
-                            father.getY() - (treeWidthAtLevel * FReal(1 + (childBox.getY() * 2))),
-                            father.getZ() - (treeWidthAtLevel * FReal(1 + (childBox.getZ() * 2)))
-                            );
-
-                    harmonic.computeInner(FSpherical(M2MVector));
-                    FMemUtils::copyall<FComplexe>(&preM2MTransitionsPer[indexTransition(-1-idxLevel,idxChild)], harmonic.result(), harmonic.getExpSize());
-
-                    const F3DPosition L2LVector (
-                            (treeWidthAtLevel * FReal(1 + (childBox.getX() * 2))) - father.getX(),
-                            (treeWidthAtLevel * FReal(1 + (childBox.getY() * 2))) - father.getY(),
-                            (treeWidthAtLevel * FReal(1 + (childBox.getZ() * 2))) - father.getZ()
-                            );
-
-                    harmonic.computeInner(FSpherical(L2LVector));
-                    FMemUtils::copyall<FComplexe>(&preL2LTransitionsPer[indexTransition(-1-idxLevel,idxChild)], harmonic.result(), harmonic.getExpSize());
-               }
-            }
-
-            // M2L transfer, there is a maximum of 3 neighbors in each direction,
-            // so 6 in each dimension
-            treeWidthAtLevel = boxWidth*2;
-            preM2LTransitionsPer = new FComplexe[periodicLevels * (7 * 7 * 7) * devM2lP];
-            for(int idxLevel = -1 ; idxLevel >= -periodicLevels ; --idxLevel ){
-                for(int idxX = -3 ; idxX <= 3 ; ++idxX ){
-                    for(int idxY = -3 ; idxY <= 3 ; ++idxY ){
-                        for(int idxZ = -3 ; idxZ <= 3 ; ++idxZ ){
-                            if(idxX || idxY || idxZ){
-                                const F3DPosition relativePos( FReal(idxX) * treeWidthAtLevel , FReal(idxY) * treeWidthAtLevel , FReal(idxZ) * treeWidthAtLevel );
-                                harmonic.computeOuter(FSpherical(relativePos));
-                                FMemUtils::copyall<FComplexe>(&preM2LTransitionsPer[indexM2LTransition(-1-idxLevel,idxX,idxY,idxZ)], harmonic.result(), harmonic.getExpSize());
-                            }
-                        }
-                    }
-                }
-                treeWidthAtLevel *= 2;
-            }
-        }
     }
 
 
 public:
     /** Kernel constructor */
-    FElecForcesKernels(const int inDevP, const int inTreeHeight, const FReal inBoxWidth, const int inPeriodicLevel = 0)
-        : devP(inDevP), devM2lP(int(((inDevP*2)+1) * ((inDevP*2)+2) * 0.5)), boxWidth(inBoxWidth),
+    FAbstractSphericalKernel(const int inDevP, const int inTreeHeight, const FReal inBoxWidth, const int inPeriodicLevel = 0)
+        : devP(inDevP), boxWidth(inBoxWidth),
           treeHeight(inTreeHeight), periodicLevels(inPeriodicLevel), harmonic(inDevP),
-          preL2LTransitions(0), preM2MTransitions(0), preM2LTransitions(0),
-          preL2LTransitionsPer(0), preM2MTransitionsPer(0), preM2LTransitionsPer(0) {
+          preL2LTransitions(0), preM2MTransitions(0) {
 
         allocAndInit();
-        allocAndInitPer();
     }
 
     /** Copy constructor */
-    FElecForcesKernels(const FElecForcesKernels& other)
-        : devP(other.devP), devM2lP(other.devM2lP), boxWidth(other.boxWidth),
+    FAbstractSphericalKernel(const FAbstractSphericalKernel& other)
+        : devP(other.devP), boxWidth(other.boxWidth),
           treeHeight(other.treeHeight), periodicLevels(other.periodicLevels), harmonic(other.devP),
-          preL2LTransitions(0), preM2MTransitions(0), preM2LTransitions(0),
-          preL2LTransitionsPer(0), preM2MTransitionsPer(0), preM2LTransitionsPer(0) {
+          preL2LTransitions(0), preM2MTransitions(0) {
 
         allocAndInit();
-        allocAndInitPer();
     }
 
     /** Default destructor */
-    ~FElecForcesKernels(){
+    virtual ~FAbstractSphericalKernel(){
+        FMemUtils::DeleteAll(preL2LTransitions, treeHeight + periodicLevels);
         delete[] preL2LTransitions;
+        FMemUtils::DeleteAll(preM2MTransitions, treeHeight + periodicLevels);
         delete[] preM2MTransitions;
-        delete[] preM2LTransitions;
-
-        delete[] preL2LTransitionsPer;
-        delete[] preM2MTransitionsPer;
-        delete[] preM2LTransitionsPer;
     }
 
     /** P2M with a cell and all its particles */
     void P2M(CellClass* const inPole, const ContainerClass* const inParticles) {
-        FComplexe* const cellMultiPole = inPole->getMultipole();
+        FComplexe* FRestrict const cellMultiPole = inPole->getMultipole();
         // Copying the position is faster than using cell position
         const F3DPosition polePosition = inPole->getPosition();
         // For all particles in the leaf box
@@ -225,68 +125,27 @@ public:
 
     /** M2M with a cell and all its child */
     void M2M(CellClass* const FRestrict inPole, const CellClass *const FRestrict *const FRestrict inChild, const int inLevel) {
-        FComplexe* const multipole_exp_target = inPole->getMultipole();
+        FComplexe* FRestrict const multipole_exp_target = inPole->getMultipole();
         // iter on each child and process M2M
-        if( inLevel >= 0){
-            for(int idxChild = 0 ; idxChild < 8 ; ++idxChild){
-                if(inChild[idxChild]){
-                    multipoleToMultipole(multipole_exp_target, inChild[idxChild]->getMultipole(), &preM2MTransitions[indexTransition(inLevel,idxChild)]);
-                }
-            }
-        }
-        else{
-            for(int idxChild = 0 ; idxChild < 8 ; ++idxChild){
-                if(inChild[idxChild]){
-                    multipoleToMultipole(multipole_exp_target, inChild[idxChild]->getMultipole(), &preM2MTransitionsPer[indexTransition(-1-inLevel,idxChild)]);
-                }
+        const FComplexe* FRestrict const preM2MTransitionsAtLevel = preM2MTransitions[inLevel + periodicLevels];
+        for(int idxChild = 0 ; idxChild < 8 ; ++idxChild){
+            if(inChild[idxChild]){
+                multipoleToMultipole(multipole_exp_target, inChild[idxChild]->getMultipole(), &preM2MTransitionsAtLevel[idxChild * harmonic.getExpSize()]);
             }
         }
     }
 
     /** M2L with a cell and all the existing neighbors */
-    void M2L(CellClass* const FRestrict pole, const CellClass* distantNeighbors[189],
-             const int size, const int inLevel) {
-        const FTreeCoordinate& coordCenter = pole->getCoordinate();
-        // For all neighbors compute M2L
-        if( inLevel >= 0){
-            for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
-                const FTreeCoordinate& coordNeighbors = distantNeighbors[idxNeigh]->getCoordinate();
-                const FComplexe* const transitionVector = &preM2LTransitions[indexM2LTransition(inLevel,
-                                                      (coordCenter.getX() - coordNeighbors.getX()),
-                                                      (coordCenter.getY() - coordNeighbors.getY()),
-                                                      (coordCenter.getZ() - coordNeighbors.getZ()))];
-
-                multipoleToLocal(pole->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
-            }
-        }
-        else {
-            for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
-                const FTreeCoordinate& coordNeighbors = distantNeighbors[idxNeigh]->getCoordinate();
-                const FComplexe* const transitionVector = &preM2LTransitionsPer[indexM2LTransition(-1-inLevel,
-                                                      (coordCenter.getX() - coordNeighbors.getX()),
-                                                      (coordCenter.getY() - coordNeighbors.getY()),
-                                                      (coordCenter.getZ() - coordNeighbors.getZ()))];
-
-                multipoleToLocal(pole->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
-            }
-        }
-    }
+    virtual void M2L(CellClass* const FRestrict pole, const CellClass* distantNeighbors[189],
+             const int size, const int inLevel) = 0;
 
     /** L2L with a cell and all its child */
     void L2L(const CellClass* const FRestrict pole, CellClass* FRestrict *const FRestrict child, const int inLevel) {
         // iter on each child and process L2L
-        if( inLevel >= 0){
-            for(int idxChild = 0 ; idxChild < 8 ; ++idxChild){
-                if(child[idxChild]){
-                    localToLocal(child[idxChild]->getLocal(), pole->getLocal(), &preL2LTransitions[indexTransition(inLevel,idxChild)]);
-                }
-            }
-        }
-        else{
-            for(int idxChild = 0 ; idxChild < 8 ; ++idxChild){
-                if(child[idxChild]){
-                    localToLocal(child[idxChild]->getLocal(), pole->getLocal(), &preL2LTransitionsPer[indexTransition(-1-inLevel,idxChild)]);
-                }
+        const FComplexe* FRestrict const preL2LTransitionsAtLevel = preL2LTransitions[inLevel + periodicLevels];
+        for(int idxChild = 0 ; idxChild < 8 ; ++idxChild){
+            if(child[idxChild]){
+                localToLocal(child[idxChild]->getLocal(), pole->getLocal(), &preL2LTransitionsAtLevel[idxChild * harmonic.getExpSize()]);
             }
         }
     }
@@ -412,19 +271,9 @@ public:
     ///////////////////////////////////////////////////////////////////////////////
 
     /** Before Downward */
-    void M2L(CellClass* const FRestrict local, const CellClass* distantNeighbors[189],
+    virtual void M2L(CellClass* const FRestrict local, const CellClass* distantNeighbors[189],
              const FTreeCoordinate neighborsRelativePositions[189],
-             const int size, const int inLevel) {
-        // For all neighbors compute M2L
-        for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
-            const FComplexe* const transitionVector = &preM2LTransitions[indexM2LTransition(inLevel,
-                                                        neighborsRelativePositions[idxNeigh].getX(),
-                                                        neighborsRelativePositions[idxNeigh].getY(),
-                                                        neighborsRelativePositions[idxNeigh].getZ())];
-
-            multipoleToLocal(local->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
-        }
-    }
+             const int size, const int inLevel) = 0;
 
 
     /** After Downward */
@@ -514,7 +363,7 @@ private:
     * Phi(x) = sum_{n=0}^{+} sum_{m=-n}^{n} M_n^m O_n^{-m} (x - *p_center)
     *
     */
-    void particleToMultiPole(FComplexe*const cellMultiPole, const F3DPosition& inPolePosition ,
+    void particleToMultiPole(FComplexe* const cellMultiPole, const F3DPosition& inPolePosition ,
                              const ParticleClass& particle){
 
         // Inner of Qi - Z0 => harmonic.result
@@ -530,7 +379,6 @@ private:
             for(int k = 0 ; k <= j ; ++k, ++index_j_k){
                 harmonic.result(index_j_k).mulRealAndImag( qParticle * minus_one_pow_j );
                 cellMultiPole[index_j_k] += harmonic.result(index_j_k);
-
             }
             // (-1)^J => -1 becomes 1 or 1 becomes -1
             minus_one_pow_j = -minus_one_pow_j;
@@ -641,107 +489,6 @@ private:
     }
 
 
-    /** M2L
-    *We compute the conversion of multipole_exp_src in *p_center_of_exp_src to
-    *a local expansion in *p_center_of_exp_target, and add the result to local_exp_target.
-    *
-    *O_n^l (with n=0..P, l=-n..n) being the former multipole expansion terms
-    *(whose center is *p_center_of_multipole_exp_src) we have for the new local
-    *expansion terms (whose center is *p_center_of_local_exp_target):
-    *
-    *L_j^k = sum{n=0..+}
-    *sum{l=-n..n}
-    *O_n^l Outer_{j+n}^{-k-l}(rho, alpha, beta)
-    *
-    *where (rho, alpha, beta) are the spherical coordinates of the vector :
-    *p_center_of_local_exp_src - *p_center_of_multipole_exp_target
-    *
-    *Remark: here we have always j+n >= |-k-l|
-      *
-      */
-    void multipoleToLocal(FComplexe*const FRestrict local_exp, const FComplexe* const FRestrict multipole_exp_src,
-                          const FComplexe* const FRestrict M2L_Outer_transfer){
-        int index_j_k = 0;
-
-        // L_j^k
-        // HPMSTART(51, "M2L computation (loops)");
-        // j from 0 to P
-        for (int j = 0 ; j <= devP ; ++j){
-            // (-1)^k
-            FReal pow_of_minus_1_for_k = 1.0;
-            //k from 0 to j
-            for (int k = 0 ; k <= j ; ++k, ++index_j_k){
-                // (-1)^n
-                FReal pow_of_minus_1_for_n = 1.0;
-
-                // work with a local variable
-                FComplexe L_j_k = local_exp[index_j_k];
-                // n from 0 to P
-                for (int n = 0 ; n <= /*devP or*/ devP-j ; ++n){
-                    // O_n^l : here points on the source multipole expansion term of degree n and order |l|
-                    const int index_n = harmonic.getPreExpRedirJ(n);
-
-                    // Outer_{j+n}^{-k-l} : here points on the M2L transfer function/expansion term of degree j+n and order |-k-l|
-                    const int index_n_j = harmonic.getPreExpRedirJ(n+j);
-
-                    FReal pow_of_minus_1_for_l = pow_of_minus_1_for_n; // (-1)^l
-
-                    // We start with l=n (and not l=-n) so that we always set p_Outer_term to a correct value in the first loop.
-                    int l = n;
-                    for(/* l = n */ ; l > 0 ; --l){ // we have -k-l<0 and l>0
-                        const FComplexe M_n_l = multipole_exp_src[index_n + l];
-                        const FComplexe O_n_j__k_l = M2L_Outer_transfer[index_n_j + k + l];
-
-                        L_j_k.incReal( pow_of_minus_1_for_l * pow_of_minus_1_for_k *
-                                                    ((M_n_l.getReal() * O_n_j__k_l.getReal()) +
-                                                     (M_n_l.getImag() * O_n_j__k_l.getImag())));
-                        L_j_k.incImag( pow_of_minus_1_for_l * pow_of_minus_1_for_k *
-                                                    ((M_n_l.getImag() * O_n_j__k_l.getReal()) -
-                                                     (M_n_l.getReal() * O_n_j__k_l.getImag())));
-
-                        pow_of_minus_1_for_l = -pow_of_minus_1_for_l;
-                    }
-
-                    for(/* l = 0 */; l >= -n &&  (-k-l) < 0 ; --l){ // we have -k-l<0 and l<=0
-                        const FComplexe M_n_l = multipole_exp_src[index_n - l];
-                        const FComplexe O_n_j__k_l = M2L_Outer_transfer[index_n_j + k + l];
-
-                        L_j_k.incReal( pow_of_minus_1_for_k *
-                                                    ((M_n_l.getReal() * O_n_j__k_l.getReal()) -
-                                                     (M_n_l.getImag() * O_n_j__k_l.getImag())));
-                        L_j_k.decImag(  pow_of_minus_1_for_k *
-                                                     ((M_n_l.getImag() * O_n_j__k_l.getReal()) +
-                                                      (M_n_l.getReal() * O_n_j__k_l.getImag())));
-
-                        pow_of_minus_1_for_l = -pow_of_minus_1_for_l;
-                    }
-
-                    for(/*l = -n-1 or l = -k-1 */; l >= -n ; --l){ // we have -k-l>=0 and l<=0
-                        const FComplexe M_n_l = multipole_exp_src[index_n - l];
-                        const FComplexe O_n_j__k_l = M2L_Outer_transfer[index_n_j - (k + l)];
-
-                        L_j_k.incReal( pow_of_minus_1_for_l *
-                                                    ((M_n_l.getReal() * O_n_j__k_l.getReal()) +
-                                                     (M_n_l.getImag() * O_n_j__k_l.getImag())));
-                        L_j_k.incImag( pow_of_minus_1_for_l *
-                                                    ((M_n_l.getReal() * O_n_j__k_l.getImag()) -
-                                                     (M_n_l.getImag() * O_n_j__k_l.getReal())));
-
-                        pow_of_minus_1_for_l = -pow_of_minus_1_for_l;
-                    }
-
-                    pow_of_minus_1_for_n = -pow_of_minus_1_for_n;
-                }//n
-
-                // put in the local vector
-                local_exp[index_j_k] = L_j_k;
-
-                pow_of_minus_1_for_k = -pow_of_minus_1_for_k;
-            }//k
-        }
-    }
-
-
     /** L2L
       *We compute the shift of local_exp_src from *p_center_of_exp_src to
       *p_center_of_exp_target, and set the result to local_exp_target.
@@ -1080,6 +827,6 @@ public:
 };
 
 
-#endif //FELECBASICKERNELS_HPP
+#endif //FABSTRACTSPHERICALKERNEL_HPP
 
 
diff --git a/Src/Kernels/FComputeCell.hpp b/Src/Kernels/FComputeCell.hpp
deleted file mode 100644
index f8ce0f1f0..000000000
--- a/Src/Kernels/FComputeCell.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-// ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
-// ===================================================================================
-#ifndef FCOMPUTECELL_HPP
-#define FCOMPUTECELL_HPP
-
-
-
-#include "../Utils/FComplexe.hpp"
-#include "../Utils/FMemUtils.hpp"
-
-#include "../Components/FBasicCell.hpp"
-
-/**
-* @author Berenger Bramas (berenger.bramas@inria.fr)
-* @class FComputeCell
-* Please read the license.
-*
-*/
-class FComputeCell : public FBasicCell {
-protected:
-    static int DevP;
-    static int ExpP;
-
-    FComplexe* multipole_exp; //< For multipole extenssion
-    FComplexe* local_exp;     //< For local extenssion
-
-public:
-    static void Init(const int inDevP){
-        DevP = inDevP;
-        ExpP = int((DevP+1) * (DevP+2) * 0.5);
-    }
-
-    static int GetP(){
-        return DevP;
-    }
-
-    static int GetExp(){
-        return ExpP;
-    }
-
-
-    /** Default constructor */
-    FComputeCell()
-        : multipole_exp(0), local_exp(0){
-        multipole_exp = new FComplexe[ExpP];
-        local_exp = new FComplexe[ExpP];
-    }
-
-    /** Constructor */
-    FComputeCell(const FComputeCell& other)
-        : multipole_exp(0), local_exp(0){
-        multipole_exp = new FComplexe[ExpP];
-        local_exp = new FComplexe[ExpP];
-        (*this) = other;
-    }
-
-    /** Default destructor */
-    virtual ~FComputeCell(){
-        delete[] multipole_exp;
-        delete[] local_exp;
-    }
-
-    /** Copy constructor */
-    FComputeCell& operator=(const FComputeCell& other) {
-        FMemUtils::copyall(multipole_exp, other.multipole_exp, ExpP);
-        FMemUtils::copyall(local_exp, other.local_exp, ExpP);
-        return *this;
-    }
-
-    /** Get Multipole */
-    const FComplexe* getMultipole() const {
-        return multipole_exp;
-    }
-    /** Get Local */
-    const FComplexe* getLocal() const {
-        return local_exp;
-    }
-
-    /** Get Multipole */
-    FComplexe* getMultipole() {
-        return multipole_exp;
-    }
-    /** Get Local */
-    FComplexe* getLocal() {
-        return local_exp;
-    }
-};
-
-
-int FComputeCell::DevP(-1);
-int FComputeCell::ExpP(-1);
-
-
-#endif //FCOMPUTECELL_HPP
-
-
diff --git a/Src/Kernels/FHarmonic.hpp b/Src/Kernels/FHarmonic.hpp
index 1d80a889d..a4ae5f094 100644
--- a/Src/Kernels/FHarmonic.hpp
+++ b/Src/Kernels/FHarmonic.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FHARMONIC_HPP
 #define FHARMONIC_HPP
@@ -28,6 +23,7 @@
 class FHarmonic : public FNoAssignement {
     const int devP;     //< P
     const int expSize;  //< Exponen Size
+    const int nExpSize; //<
 
     FComplexe* harmonic;//< Harmonic Result
     FComplexe* cosSin;  //< Cos/Sin precomputed values
@@ -135,6 +131,7 @@ public:
 
     explicit FHarmonic(const int inDevP)
         : devP(inDevP),expSize(int(((inDevP)+1) * ((inDevP)+2) * 0.5)),
+          nExpSize((inDevP + 1) * (inDevP + 1)),
           harmonic(0), cosSin(0), legendre(0), thetaDerivatedResult(0),
           sphereHarmoInnerCoef(0), sphereHarmoOuterCoef(0), preExpRedirJ(0)  {
 
@@ -142,7 +139,7 @@ public:
     }
 
     FHarmonic(const FHarmonic& other)
-        : devP(other.devP),expSize(int(((other.devP)+1) * ((other.devP)+2) * 0.5)),
+        : devP(other.devP),expSize(other.expSize), nExpSize(other.expSize),
           harmonic(0), cosSin(0), legendre(0), thetaDerivatedResult(0),
           sphereHarmoInnerCoef(0), sphereHarmoOuterCoef(0), preExpRedirJ(0)  {
 
@@ -163,6 +160,10 @@ public:
         return expSize;
     }
 
+    int getNExpSize() const{
+        return nExpSize;
+    }
+
     FComplexe* result(){
         return harmonic;
     }
diff --git a/Src/Kernels/FSphericalBlasKernel.hpp b/Src/Kernels/FSphericalBlasKernel.hpp
new file mode 100644
index 000000000..8a3c3d4a1
--- /dev/null
+++ b/Src/Kernels/FSphericalBlasKernel.hpp
@@ -0,0 +1,214 @@
+// ===================================================================================
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
+// ===================================================================================
+#ifndef FSPHERICALBLASKERNEL_HPP
+#define FSPHERICALBLASKERNEL_HPP
+
+#include "FAbstractSphericalKernel.hpp"
+
+#include "../Utils/FMemUtils.hpp"
+#include "../Utils/FBlas.hpp"
+
+/**
+* @author Berenger Bramas (berenger.bramas@inria.fr)
+* This class is a spherical harmonic kernels using blas
+*/
+template< class ParticleClass, class CellClass, class ContainerClass>
+class FSphericalBlasKernel : public FAbstractSphericalKernel<ParticleClass,CellClass,ContainerClass> {
+protected:
+    typedef FAbstractSphericalKernel<ParticleClass,CellClass,ContainerClass> Parent;
+
+    const int FF_MATRIX_ROW_DIM;     //< The blas matrix number of rows
+    const int FF_MATRIX_COLUMN_DIM;  //< The blas matrix number of columns
+    const int FF_MATRIX_SIZE;        //< The blas matrix size
+
+    FComplexe* temporaryMultiSource; //< To perform the M2L without allocating at each call
+    FComplexe** preM2LTransitions;   //< The pre-computation for the M2L based on the level and the 189 possibilities
+
+    /** To access te precomputed M2L transfer matrixes */
+    int indexM2LTransition(const int idxX,const int idxY,const int idxZ) const {
+        return (((((idxX+3) * 7) + (idxY+3)) * 7 ) + (idxZ+3)) * FF_MATRIX_SIZE;
+    }
+
+    /** Alloc and init pre-vectors*/
+    void allocAndInit(){
+        temporaryMultiSource = new FComplexe[FF_MATRIX_COLUMN_DIM];
+
+        FHarmonic blasHarmonic(Parent::devP * 2);
+
+        // M2L transfer, there is a maximum of 3 neighbors in each direction,
+        // so 6 in each dimension
+        FReal treeWidthAtLevel = Parent::boxWidth * FReal( 1 << Parent::periodicLevels);
+        preM2LTransitions = new FComplexe*[Parent::treeHeight + Parent::periodicLevels];
+        memset(preM2LTransitions, 0, sizeof(FComplexe*) * (Parent::treeHeight + Parent::periodicLevels));
+
+        for(int idxLevel = -Parent::periodicLevels ; idxLevel < Parent::treeHeight ; ++idxLevel ){
+            preM2LTransitions[idxLevel + Parent::periodicLevels] = new FComplexe[(7 * 7 * 7) * FF_MATRIX_SIZE];
+
+            for(int idxX = -3 ; idxX <= 3 ; ++idxX ){
+                for(int idxY = -3 ; idxY <= 3 ; ++idxY ){
+                    for(int idxZ = -3 ; idxZ <= 3 ; ++idxZ ){
+                        if(FMath::Abs(idxX) > 1 || FMath::Abs(idxY) > 1 || FMath::Abs(idxZ) > 1){
+                            const F3DPosition relativePos( FReal(idxX) * treeWidthAtLevel , FReal(idxY) * treeWidthAtLevel , FReal(idxZ) * treeWidthAtLevel );
+                            blasHarmonic.computeOuter(FSpherical(relativePos));
+
+                            FComplexe* FRestrict fillTransfer = &preM2LTransitions[idxLevel + Parent::periodicLevels][indexM2LTransition(idxX,idxY,idxZ)];
+
+                            for(int M = 0 ; M <= Parent::devP ; ++M){
+                                for (int m = 0 ;  m <= M ; ++m){
+                                    for (int N = 0 ; N <= Parent::devP ; ++N){
+                                        for (int n = 0 ; n <= 2*N ;  ++n, ++fillTransfer){
+                                            const int k = N-n-m;
+                                            if (k < 0){
+                                                const FReal pow_of_minus_1 = FReal((k&1) ? -1 : 1);
+                                                fillTransfer->setReal( pow_of_minus_1 * blasHarmonic.result()[blasHarmonic.getPreExpRedirJ(M+N)-k].getReal());
+                                                fillTransfer->setImag((-pow_of_minus_1) * blasHarmonic.result()[blasHarmonic.getPreExpRedirJ(M+N)-k].getImag());
+                                            }
+                                            else{
+                                                (*fillTransfer) = blasHarmonic.result()[blasHarmonic.getPreExpRedirJ(M+N)+k];
+                                            }
+
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            treeWidthAtLevel /= 2;
+        }
+    }
+
+
+public:
+    /** Constructor
+      * @param inDevP the polynomial degree
+      * @param inThreeHeight the height of the tree
+      * @param inBoxWidth the size of the simulation box
+      * @param inPeriodicLevel the number of level upper to 0 that will be requiried
+      */
+    FSphericalBlasKernel(const int inDevP, const int inTreeHeight, const FReal inBoxWidth, const int inPeriodicLevel = 0)
+        : Parent(inDevP, inTreeHeight, inBoxWidth, inPeriodicLevel),
+          FF_MATRIX_ROW_DIM(Parent::harmonic.getExpSize()), FF_MATRIX_COLUMN_DIM(Parent::harmonic.getNExpSize()),
+          FF_MATRIX_SIZE(FF_MATRIX_ROW_DIM * FF_MATRIX_COLUMN_DIM),
+          temporaryMultiSource(0), preM2LTransitions(0){
+        allocAndInit();
+    }
+
+    /** Copy constructor */
+    FSphericalBlasKernel(const FSphericalBlasKernel& other)
+        : Parent(other),
+          FF_MATRIX_ROW_DIM(other.FF_MATRIX_ROW_DIM), FF_MATRIX_COLUMN_DIM(other.FF_MATRIX_COLUMN_DIM),
+          FF_MATRIX_SIZE(other.FF_MATRIX_SIZE),
+          temporaryMultiSource(0), preM2LTransitions(0) {
+        allocAndInit();
+    }
+
+    /** Destructor */
+    ~FSphericalBlasKernel(){
+        delete[] temporaryMultiSource;
+        FMemUtils::DeleteAll(preM2LTransitions, Parent::treeHeight + Parent::periodicLevels);
+        delete[] preM2LTransitions;
+    }
+
+    /** M2L with a cell and all the existing neighbors */
+    void M2L(CellClass* const FRestrict pole, const CellClass* distantNeighbors[189],
+             const int size, const int inLevel) {
+        const FTreeCoordinate& coordCenter = pole->getCoordinate();
+        // For all neighbors compute M2L
+        for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
+            const FTreeCoordinate& coordNeighbors = distantNeighbors[idxNeigh]->getCoordinate();
+            const FComplexe* const transitionVector = &preM2LTransitions[inLevel + Parent::periodicLevels]
+                                                        [indexM2LTransition((coordCenter.getX() - coordNeighbors.getX()),
+                                                                                            (coordCenter.getY() - coordNeighbors.getY()),
+                                                                                            (coordCenter.getZ() - coordNeighbors.getZ()))];
+
+            multipoleToLocal(pole->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
+        }
+    }
+
+    /** Before Downward */
+    void M2L(CellClass* const FRestrict local, const CellClass* distantNeighbors[189],
+             const FTreeCoordinate neighborsRelativePositions[189],
+             const int size, const int inLevel) {
+        // For all neighbors compute M2L
+        for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
+            const FComplexe* const transitionVector = &preM2LTransitions[inLevel + Parent::periodicLevels]
+                                                                        [indexM2LTransition(neighborsRelativePositions[idxNeigh].getX(),
+                                                                                            neighborsRelativePositions[idxNeigh].getY(),
+                                                                                            neighborsRelativePositions[idxNeigh].getZ())];
+
+            multipoleToLocal(local->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
+        }
+    }
+
+
+    /** preExpNExp
+      * @param exp an exponent vector to create an computable vector
+      */
+    void preExpNExp(FComplexe* const exp) const {
+        for(int j = Parent::devP; j>= 0 ; --j){
+            // Position in 'exp':  (j*(j+1)*0.5) + k
+            // Position in 'nexp':  j*(j+1)      + k
+            const int j_j1       = j*(j+1);
+            const int j_j1_div_2 = int(j_j1 * 0.5);
+
+            // Positive (or null) orders:
+            for(int k = j ; k >= 0; --k){
+                exp[j_j1 + k] = exp[j_j1_div_2 + k];
+            }
+
+            // Negative orders:
+            FReal minus_1_pow_k = FReal( j&1 ? -1 : 1);
+            for(int k = -j ; k < 0 ; ++k ){
+                exp[j_j1 + k].setReal(minus_1_pow_k * exp[j_j1 + (-k)].getReal());
+                exp[j_j1 + k].setImag((-minus_1_pow_k) * exp[j_j1 + (-k)].getImag());
+                minus_1_pow_k = -minus_1_pow_k;
+            }
+        }
+    }
+
+    /** M2L
+    *We compute the conversion of multipole_exp_src in *p_center_of_exp_src to
+    *a local expansion in *p_center_of_exp_target, and add the result to local_exp_target.
+    *
+    *O_n^l (with n=0..P, l=-n..n) being the former multipole expansion terms
+    *(whose center is *p_center_of_multipole_exp_src) we have for the new local
+    *expansion terms (whose center is *p_center_of_local_exp_target):
+    *
+    *L_j^k = sum{n=0..+}
+    *sum{l=-n..n}
+    *O_n^l Outer_{j+n}^{-k-l}(rho, alpha, beta)
+    *
+    *where (rho, alpha, beta) are the spherical coordinates of the vector :
+    *p_center_of_local_exp_src - *p_center_of_multipole_exp_target
+    *
+    *Remark: here we have always j+n >= |-k-l|
+    *
+    */
+    void multipoleToLocal(FComplexe*const FRestrict local_exp, const FComplexe* const FRestrict multipole_exp_src,
+                          const FComplexe* const FRestrict M2L_Outer_transfer){
+        // Copy original vector and compute exp2nexp
+        FMemUtils::copyall<FComplexe>(temporaryMultiSource, multipole_exp_src, CellClass::GetPoleSize());
+        // Get a computable vector
+        preExpNExp(temporaryMultiSource);
+
+        FReal alpha_and_beta[2] = {1.0, 0.0};
+
+        cblas_gemv<FReal>(CblasColMajor, CblasTrans,
+                          FF_MATRIX_COLUMN_DIM, FF_MATRIX_ROW_DIM,
+                          alpha_and_beta, M2L_Outer_transfer,
+                          FF_MATRIX_COLUMN_DIM, temporaryMultiSource, 1,
+                          alpha_and_beta, local_exp, 1);
+    }
+};
+
+#endif // FSPHERICALBLASKERNEL_HPP
diff --git a/Src/Kernels/FSphericalCell.hpp b/Src/Kernels/FSphericalCell.hpp
index 4d27d82eb..f175b67af 100644
--- a/Src/Kernels/FSphericalCell.hpp
+++ b/Src/Kernels/FSphericalCell.hpp
@@ -1,68 +1,71 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FSPHERICALCELL_HPP
 #define FSPHERICALCELL_HPP
 
 
+#include "../Utils/FAbstractSendable.hpp"
 #include "../Utils/FComplexe.hpp"
 #include "../Utils/FMemUtils.hpp"
-
+#include "../Extensions/FExtendCellType.hpp"
 #include "../Components/FBasicCell.hpp"
 
 /**
 * @author Berenger Bramas (berenger.bramas@inria.fr)
-* @class FSphericalCell
-* Please read the license.
-*
 */
 class FSphericalCell : public FBasicCell {
 protected:
     static int DevP;
-    static int ExpP;
+    static int LocalSize;
+    static int PoleSize;
+    static bool UseBlas;
 
     FComplexe* multipole_exp; //< For multipole extenssion
     FComplexe* local_exp;     //< For local extenssion
 
 public:
-    static void Init(const int inDevP){
-        DevP = inDevP;
-        ExpP = int((DevP+1) * (DevP+2) * 0.5);
+    static void Init(const int inDevP, const bool inUseBlas = false){
+        DevP  = inDevP;
+        const int ExpP  = int((inDevP+1) * (inDevP+2) * 0.5);
+        const int NExpP = (inDevP+1) * (inDevP+1);
+
+        LocalSize = ExpP;
+        if(inUseBlas) {
+            PoleSize = NExpP;
+        }
+        else{
+            PoleSize = ExpP;
+        }
     }
 
-    static int GetP(){
-        return DevP;
+    static int GetLocalSize(){
+        return LocalSize;
     }
 
-    static int GetExp(){
-        return ExpP;
+    static int GetPoleSize(){
+        return PoleSize;
     }
 
-
     /** Default constructor */
     FSphericalCell()
         : multipole_exp(0), local_exp(0){
-        multipole_exp = new FComplexe[ExpP];
-        local_exp = new FComplexe[ExpP];
+        multipole_exp = new FComplexe[PoleSize];
+        local_exp = new FComplexe[LocalSize];
     }
 
     /** Constructor */
     FSphericalCell(const FSphericalCell& other)
         : multipole_exp(0), local_exp(0){
-        multipole_exp = new FComplexe[ExpP];
-        local_exp = new FComplexe[ExpP];
+        multipole_exp = new FComplexe[PoleSize];
+        local_exp = new FComplexe[LocalSize];
         (*this) = other;
     }
 
@@ -74,8 +77,8 @@ public:
 
     /** Copy constructor */
     FSphericalCell& operator=(const FSphericalCell& other) {
-        FMemUtils::copyall(multipole_exp, other.multipole_exp, ExpP);
-        FMemUtils::copyall(local_exp, other.local_exp, ExpP);
+        FMemUtils::copyall(multipole_exp, other.multipole_exp, PoleSize);
+        FMemUtils::copyall(local_exp, other.local_exp, LocalSize);
         return *this;
     }
 
@@ -98,10 +101,57 @@ public:
     }
 };
 
-
 int FSphericalCell::DevP(-1);
-int FSphericalCell::ExpP(-1);
+int FSphericalCell::LocalSize(-1);
+int FSphericalCell::PoleSize(-1);
+
+
+/**
+* @author Berenger Bramas (berenger.bramas@inria.fr)
+*/
+class FTypedSphericalCell : public FSphericalCell, public FExtendCellType {
+public:
+};
+
+
+/**
+* @author Berenger Bramas (berenger.bramas@inria.fr)
+*/
+class FSendableSphericalCell : public FSphericalCell , public FAbstractSendable {
+public:
+    static int SerializedSizeDown;
+    static int SerializedSizeUp;
+
+    static void Init(const int inDevP){
+        FSphericalCell::Init(inDevP);
+        SerializedSizeDown = PoleSize * sizeof(FComplexe) + sizeof(FBasicCell);
+        SerializedSizeUp = LocalSize * sizeof(FComplexe) + sizeof(FBasicCell);
+    }
+
+    ///////////////////////////////////////////////////////
+    // to extend FAbstractSendable
+    ///////////////////////////////////////////////////////
+    void serializeUp(void* const buffer) const {
+        memcpy(buffer, (FBasicCell*)this, sizeof(FBasicCell));
+        memcpy((char*)(buffer) + sizeof(FBasicCell), multipole_exp, sizeof(FComplexe)*PoleSize );
+    }
+    void deserializeUp(const void* const buffer){
+        memcpy((FBasicCell*)this, buffer, sizeof(FBasicCell));
+        memcpy(multipole_exp, (char*)(buffer) + sizeof(FBasicCell), sizeof(FComplexe)*PoleSize );
+    }
+
+    void serializeDown(void* const buffer) const {
+        memcpy(buffer, (FBasicCell*)this, sizeof(FBasicCell));
+        memcpy((char*)(buffer) + sizeof(FBasicCell), local_exp, sizeof(FComplexe)*LocalSize );
+    }
+    void deserializeDown(const void* const buffer){
+        memcpy((FBasicCell*)this, buffer, sizeof(FBasicCell));
+        memcpy(local_exp, (char*)(buffer) + sizeof(FBasicCell), sizeof(FComplexe)*LocalSize );
+    }
+};
 
+int FSendableSphericalCell::SerializedSizeDown(-1);
+int FSendableSphericalCell::SerializedSizeUp(-1);
 
 #endif //FSPHERICALCELL_HPP
 
diff --git a/Src/Kernels/FSphericalKernel.hpp b/Src/Kernels/FSphericalKernel.hpp
index cb7c37a68..7403f4c15 100644
--- a/Src/Kernels/FSphericalKernel.hpp
+++ b/Src/Kernels/FSphericalKernel.hpp
@@ -1,246 +1,89 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FSPHERICALKERNEL_HPP
 #define FSPHERICALKERNEL_HPP
 
-#include "../Components/FAbstractKernels.hpp"
-
-#include "../Utils/FGlobal.hpp"
-#include "../Utils/FTrace.hpp"
+#include "FAbstractSphericalKernel.hpp"
 #include "../Utils/FMemUtils.hpp"
 
-#include "../Containers/FTreeCoordinate.hpp"
-
-#include "FHarmonic.hpp"
-
 /**
 * @author Berenger Bramas (berenger.bramas@inria.fr)
-* @brief
-* Please read the license
-*
+* This class is the basic spherical harmonic kernel
 */
 template< class ParticleClass, class CellClass, class ContainerClass>
-class FSphericalKernel : public FAbstractKernels<ParticleClass,CellClass,ContainerClass> {
-    const int devP;           //< The P
-    const int devM2lP;        //< A secondary P
-    const FReal boxWidth;     //< the box width at leaf level
-    const int treeHeight;     //< The height of the tree
-
-    const int periodicLevels; //< The number of levels above 1 used for periodicity
-
-    FHarmonic harmonic; //< The harmonic computation class
+class FSphericalKernel : public FAbstractSphericalKernel<ParticleClass,CellClass,ContainerClass> {
+protected:
+    typedef FAbstractSphericalKernel<ParticleClass,CellClass,ContainerClass> Parent;
 
-    // For normal computation
-    FComplexe* preL2LTransitions; //< The pre-computation for the L2L based on the level
-    FComplexe* preM2MTransitions; //< The pre-computation for the M2M based on the level
+    const int devM2lP;               //< A secondary P
 
-    FComplexe* preM2LTransitions; //< The pre-computation for the M2L based on the level and the 189 possibilities
-
-    // For harmonic computation
-    FComplexe* preL2LTransitionsPer; //< The pre-computation for the L2L based on the level
-    FComplexe* preM2MTransitionsPer; //< The pre-computation for the M2M based on the level
-
-    FComplexe* preM2LTransitionsPer; //< The pre-computation for the M2L based on the level and the 189 possibilities
-
-    /** To access te preL2L/preM2M right vector */
-    int indexTransition(const int level, const int child){
-        return level * 8 * harmonic.getExpSize() + child * harmonic.getExpSize();
-    }
+    FComplexe** preM2LTransitions;   //< The pre-computation for the M2L based on the level and the 189 possibilities
 
-    /** To access te preM2L right vector */
-    int indexM2LTransition(const int idxLevel,const int idxX,const int idxY,const int idxZ){
-        return (idxLevel * 7 * 7 * 7 * devM2lP) + (((((idxX+3) * 7) + (idxY+3)) * 7 ) + (idxZ+3)) * devM2lP;
+    /** To access te pre computed M2L transfer vector */
+    int indexM2LTransition(const int idxX,const int idxY,const int idxZ) const {
+        return (((((idxX+3) * 7) + (idxY+3)) * 7 ) + (idxZ+3)) * devM2lP;
     }
 
     /** Alloc and init pre-vectors*/
     void allocAndInit(){
-        preL2LTransitions = new FComplexe[treeHeight * 8 * harmonic.getExpSize()];
-        preM2MTransitions = new FComplexe[treeHeight * 8 * harmonic.getExpSize()];
-
-        FReal treeWidthAtLevel = boxWidth/2;
-        for(int idxLevel = 0 ; idxLevel < treeHeight - 1 ; ++idxLevel ){
-            const F3DPosition father(treeWidthAtLevel,treeWidthAtLevel,treeWidthAtLevel);
-            treeWidthAtLevel /= 2;
-
-            for(int idxChild = 0 ; idxChild < 8 ; ++idxChild ){
-                FTreeCoordinate childBox;
-                childBox.setPositionFromMorton(idxChild,1);
-
-                const F3DPosition M2MVector (
-                        father.getX() - (treeWidthAtLevel * FReal(1 + (childBox.getX() * 2))),
-                        father.getY() - (treeWidthAtLevel * FReal(1 + (childBox.getY() * 2))),
-                        father.getZ() - (treeWidthAtLevel * FReal(1 + (childBox.getZ() * 2)))
-                        );
-
-                harmonic.computeInner(FSpherical(M2MVector));
-                FMemUtils::copyall<FComplexe>(&preM2MTransitions[indexTransition(idxLevel,idxChild)], harmonic.result(), harmonic.getExpSize());
-
-                const F3DPosition L2LVector (
-                        (treeWidthAtLevel * FReal(1 + (childBox.getX() * 2))) - father.getX(),
-                        (treeWidthAtLevel * FReal(1 + (childBox.getY() * 2))) - father.getY(),
-                        (treeWidthAtLevel * FReal(1 + (childBox.getZ() * 2))) - father.getZ()
-                        );
-
-                harmonic.computeInner(FSpherical(L2LVector));
-                FMemUtils::copyall<FComplexe>(&preL2LTransitions[indexTransition(idxLevel,idxChild)], harmonic.result(), harmonic.getExpSize());
-           }
-        }
-
         // M2L transfer, there is a maximum of 3 neighbors in each direction,
         // so 6 in each dimension
-        treeWidthAtLevel = boxWidth;
-        preM2LTransitions = new FComplexe[treeHeight * (7 * 7 * 7) * devM2lP];
-        for(int idxLevel = 0 ; idxLevel < treeHeight ; ++idxLevel ){
+        preM2LTransitions = new FComplexe*[Parent::treeHeight + Parent::periodicLevels];
+        memset(preM2LTransitions, 0, sizeof(FComplexe*) * (Parent::treeHeight + Parent::periodicLevels));
+        // We start from the higher level
+        FReal treeWidthAtLevel = Parent::boxWidth * FReal(1 << Parent::periodicLevels);
+        for(int idxLevel = -Parent::periodicLevels ; idxLevel < Parent::treeHeight ; ++idxLevel ){
+            // Allocate data for this level
+            preM2LTransitions[idxLevel + Parent::periodicLevels] = new FComplexe[(7 * 7 * 7) * devM2lP];
+            // Precompute transfer vector
             for(int idxX = -3 ; idxX <= 3 ; ++idxX ){
                 for(int idxY = -3 ; idxY <= 3 ; ++idxY ){
                     for(int idxZ = -3 ; idxZ <= 3 ; ++idxZ ){
                         if(FMath::Abs(idxX) > 1 || FMath::Abs(idxY) > 1 || FMath::Abs(idxZ) > 1){
                             const F3DPosition relativePos( FReal(idxX) * treeWidthAtLevel , FReal(idxY) * treeWidthAtLevel , FReal(idxZ) * treeWidthAtLevel );
-                            harmonic.computeOuter(FSpherical(relativePos));
-                            FMemUtils::copyall<FComplexe>(&preM2LTransitions[indexM2LTransition(idxLevel,idxX,idxY,idxZ)], harmonic.result(), harmonic.getExpSize());
+                            Parent::harmonic.computeOuter(FSpherical(relativePos));
+                            FMemUtils::copyall<FComplexe>(&preM2LTransitions[idxLevel + Parent::periodicLevels][indexM2LTransition(idxX,idxY,idxZ)], Parent::harmonic.result(), Parent::harmonic.getExpSize());
                         }
                     }
                 }
             }
+            // We divide the bow per 2 when we go down
             treeWidthAtLevel /= 2;
         }
     }
 
-    void allocAndInitPer(){
-        if( periodicLevels ){
-            preL2LTransitionsPer = new FComplexe[periodicLevels * 8 * harmonic.getExpSize()];
-            preM2MTransitionsPer = new FComplexe[periodicLevels * 8 * harmonic.getExpSize()];
-
-            FReal treeWidthAtLevel = boxWidth;
-            for(int idxLevel = 1 ; idxLevel <= periodicLevels ; ++idxLevel ){
-                const F3DPosition father(treeWidthAtLevel,treeWidthAtLevel,treeWidthAtLevel);
-                treeWidthAtLevel *= 2;
-
-                for(int idxChild = 0 ; idxChild < 8 ; ++idxChild ){
-                    FTreeCoordinate childBox;
-                    childBox.setPositionFromMorton(idxChild,1);
-
-                    const F3DPosition M2MVector (
-                            father.getX() - (treeWidthAtLevel * FReal(1 + (childBox.getX() * 2))),
-                            father.getY() - (treeWidthAtLevel * FReal(1 + (childBox.getY() * 2))),
-                            father.getZ() - (treeWidthAtLevel * FReal(1 + (childBox.getZ() * 2)))
-                            );
-
-                    harmonic.computeInner(FSpherical(M2MVector));
-                    FMemUtils::copyall<FComplexe>(&preM2MTransitionsPer[indexTransition(idxLevel-1,idxChild)], harmonic.result(), harmonic.getExpSize());
-
-                    const F3DPosition L2LVector (
-                            (treeWidthAtLevel * FReal(1 + (childBox.getX() * 2))) - father.getX(),
-                            (treeWidthAtLevel * FReal(1 + (childBox.getY() * 2))) - father.getY(),
-                            (treeWidthAtLevel * FReal(1 + (childBox.getZ() * 2))) - father.getZ()
-                            );
-
-                    harmonic.computeInner(FSpherical(L2LVector));
-                    FMemUtils::copyall<FComplexe>(&preL2LTransitionsPer[indexTransition(idxLevel-1,idxChild)], harmonic.result(), harmonic.getExpSize());
-               }
-            }
-
-            // M2L transfer, there is a maximum of 3 neighbors in each direction,
-            // so 6 in each dimension
-            treeWidthAtLevel = boxWidth*2;
-            preM2LTransitionsPer = new FComplexe[periodicLevels * (7 * 7 * 7) * devM2lP];
-            for(int idxLevel = 1 ; idxLevel <= periodicLevels ; ++idxLevel ){
-                for(int idxX = -3 ; idxX <= 3 ; ++idxX ){
-                    for(int idxY = -3 ; idxY <= 3 ; ++idxY ){
-                        for(int idxZ = -3 ; idxZ <= 3 ; ++idxZ ){
-                            if(FMath::Abs(idxX) > 1 || FMath::Abs(idxY) > 1 || FMath::Abs(idxZ) > 1){
-                                const F3DPosition relativePos( FReal(idxX) * treeWidthAtLevel , FReal(idxY) * treeWidthAtLevel , FReal(idxZ) * treeWidthAtLevel );
-                                harmonic.computeOuter(FSpherical(relativePos));
-                                FMemUtils::copyall<FComplexe>(&preM2LTransitionsPer[indexM2LTransition(idxLevel-1,idxX,idxY,idxZ)], harmonic.result(), harmonic.getExpSize());
-                            }
-                        }
-                    }
-                }
-                treeWidthAtLevel *= 2;
-            }
-        }
-    }
-
 
 public:
-    /** Kernel constructor */
+    /** Constructor
+      * @param inDevP the polynomial degree
+      * @param inThreeHeight the height of the tree
+      * @param inBoxWidth the size of the simulation box
+      * @param inPeriodicLevel the number of level upper to 0 that will be requiried
+      */
     FSphericalKernel(const int inDevP, const int inTreeHeight, const FReal inBoxWidth, const int inPeriodicLevel = 0)
-        : devP(inDevP), devM2lP(int(((inDevP*2)+1) * ((inDevP*2)+2) * 0.5)), boxWidth(inBoxWidth),
-          treeHeight(inTreeHeight), periodicLevels(inPeriodicLevel), harmonic(inDevP),
-          preL2LTransitions(0), preM2MTransitions(0), preM2LTransitions(0),
-          preL2LTransitionsPer(0), preM2MTransitionsPer(0), preM2LTransitionsPer(0) {
-
+        : Parent(inDevP, inTreeHeight, inBoxWidth, inPeriodicLevel),
+          devM2lP(int(((inDevP*2)+1) * ((inDevP*2)+2) * 0.5)), preM2LTransitions(0) {
         allocAndInit();
-        allocAndInitPer();
     }
 
     /** Copy constructor */
     FSphericalKernel(const FSphericalKernel& other)
-        : devP(other.devP), devM2lP(other.devM2lP), boxWidth(other.boxWidth),
-          treeHeight(other.treeHeight), periodicLevels(other.periodicLevels), harmonic(other.devP),
-          preL2LTransitions(0), preM2MTransitions(0), preM2LTransitions(0),
-          preL2LTransitionsPer(0), preM2MTransitionsPer(0), preM2LTransitionsPer(0) {
-
+        : Parent(other), devM2lP(other.devM2lP), preM2LTransitions(0) {
         allocAndInit();
-        allocAndInitPer();
     }
 
-    /** Default destructor */
+    /** Destructor */
     ~FSphericalKernel(){
-        delete[] preL2LTransitions;
-        delete[] preM2MTransitions;
+        FMemUtils::DeleteAll(preM2LTransitions, Parent::treeHeight + Parent::periodicLevels);
         delete[] preM2LTransitions;
-
-        delete[] preL2LTransitionsPer;
-        delete[] preM2MTransitionsPer;
-        delete[] preM2LTransitionsPer;
-    }
-
-    /** P2M with a cell and all its particles */
-    void P2M(CellClass* const inPole, const ContainerClass* const inParticles) {
-        FComplexe* const cellMultiPole = inPole->getMultipole();
-        // Copying the position is faster than using cell position
-        const F3DPosition polePosition = inPole->getPosition();
-        // For all particles in the leaf box
-        typename ContainerClass::ConstBasicIterator iterParticle(*inParticles);
-        while( iterParticle.hasNotFinished()){
-            // P2M
-            particleToMultiPole(cellMultiPole, polePosition, iterParticle.data());
-            iterParticle.gotoNext();
-        }
-    }
-
-    /** M2M with a cell and all its child */
-    void M2M(CellClass* const FRestrict inPole, const CellClass *const FRestrict *const FRestrict inChild, const int inLevel) {
-        FComplexe* const multipole_exp_target = inPole->getMultipole();
-        // iter on each child and process M2M
-        if( inLevel >= 0){
-            for(int idxChild = 0 ; idxChild < 8 ; ++idxChild){
-                if(inChild[idxChild]){
-                    multipoleToMultipole(multipole_exp_target, inChild[idxChild]->getMultipole(), &preM2MTransitions[indexTransition(inLevel,idxChild)]);
-                }
-            }
-        }
-        else{
-            for(int idxChild = 0 ; idxChild < 8 ; ++idxChild){
-                if(inChild[idxChild]){
-                    multipoleToMultipole(multipole_exp_target, inChild[idxChild]->getMultipole(), &preM2MTransitionsPer[indexTransition(-1-inLevel,idxChild)]);
-                }
-            }
-        }
     }
 
     /** M2L with a cell and all the existing neighbors */
@@ -248,399 +91,33 @@ public:
              const int size, const int inLevel) {
         const FTreeCoordinate& coordCenter = pole->getCoordinate();
         // For all neighbors compute M2L
-        if( inLevel >= 0){
-            for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
-                const FTreeCoordinate& coordNeighbors = distantNeighbors[idxNeigh]->getCoordinate();
-                const FComplexe* const transitionVector = &preM2LTransitions[indexM2LTransition(inLevel,
-                                                      (coordCenter.getX() - coordNeighbors.getX()),
-                                                      (coordCenter.getY() - coordNeighbors.getY()),
-                                                      (coordCenter.getZ() - coordNeighbors.getZ()))];
-
-                multipoleToLocal(pole->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
-            }
-        }
-        else {
-            for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
-                const FTreeCoordinate& coordNeighbors = distantNeighbors[idxNeigh]->getCoordinate();
-                const FComplexe* const transitionVector = &preM2LTransitionsPer[indexM2LTransition(-1-inLevel,
-                                                      (coordCenter.getX() - coordNeighbors.getX()),
-                                                      (coordCenter.getY() - coordNeighbors.getY()),
-                                                      (coordCenter.getZ() - coordNeighbors.getZ()))];
-
-                multipoleToLocal(pole->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
-            }
-        }
-    }
-
-    /** L2L with a cell and all its child */
-    void L2L(const CellClass* const FRestrict pole, CellClass* FRestrict *const FRestrict child, const int inLevel) {
-        // iter on each child and process L2L
-        if( inLevel >= 0){
-            for(int idxChild = 0 ; idxChild < 8 ; ++idxChild){
-                if(child[idxChild]){
-                    localToLocal(child[idxChild]->getLocal(), pole->getLocal(), &preL2LTransitions[indexTransition(inLevel,idxChild)]);
-                }
-            }
-        }
-        else{
-            for(int idxChild = 0 ; idxChild < 8 ; ++idxChild){
-                if(child[idxChild]){
-                    localToLocal(child[idxChild]->getLocal(), pole->getLocal(), &preL2LTransitionsPer[indexTransition(-1-inLevel,idxChild)]);
-                }
-            }
-        }
-    }
-
-    /** L2P with a cell and all its particles */
-    void L2P(const CellClass* const local, ContainerClass* const particles){
-        const FComplexe* const cellLocal = local->getLocal();
-        // Copying the position is faster than using cell position
-        const F3DPosition localPosition = local->getPosition();
-        // For all particles in the leaf box
-        typename ContainerClass::BasicIterator iterTarget(*particles);
-        while( iterTarget.hasNotFinished() ){
-            // L2P
-            localToParticle(&iterTarget.data(), localPosition, cellLocal);
-            iterTarget.gotoNext();
-        }
-    }
-
-    /** This P2P has to be used when target != sources
-      * It will proceed an direct interation no mutual
-      *
-      * It takes all the target particles from the current leaf,
-      * then it computes the sources/targets interaction in this leaf,
-      * then it computes the sources/targets inteactions between this leaf and the
-      * neighbors.
-      */
-    void P2P(ContainerClass* const FRestrict targets, const ContainerClass* const FRestrict sources,
-             const ContainerClass* const directNeighbors[26], const int size) {
-
-        { // Compute interaction in this leaf
-            typename ContainerClass::BasicIterator iterTarget(*targets);
-            while( iterTarget.hasNotFinished() ){
-                // We copy the target particle to work with a particle in the heap
-                ParticleClass target( iterTarget.data() );
-
-                // For all the source particles in the same leaf
-                typename ContainerClass::ConstBasicIterator iterSameBox(*sources);
-                while( iterSameBox.hasNotFinished() ){
-                    //(&iterSameBox.data() != &iterTarget.data())
-                    directInteraction(&target, iterSameBox.data());
-                    iterSameBox.gotoNext();
-                }
-                // Set data and progress
-                iterTarget.setData(target);
-                iterTarget.gotoNext();
-            }
-        }
-        { // Compute interactions with other leaves
-            // For all the neigbors leaves
-            for(int idxDirectNeighbors = 0 ; idxDirectNeighbors < size ; ++idxDirectNeighbors){
-                // For all particles in current leaf
-                typename ContainerClass::BasicIterator iterTarget(*targets);
-                while( iterTarget.hasNotFinished() ){
-                    ParticleClass target( iterTarget.data() );
-                    // For all the particles in the other leaf
-                    typename ContainerClass::ConstBasicIterator iterSource(*directNeighbors[idxDirectNeighbors]);
-                    while( iterSource.hasNotFinished() ){
-                        directInteraction(&target, iterSource.data());
-                        iterSource.gotoNext();
-                    }
-                    // Set data and progress
-                    iterTarget.setData(target);
-                    iterTarget.gotoNext();
-                }
-            }
-        }
-    }
-
-    /** This P2P has to be used when target == sources
-      * It will proceed a direct interation >> mutual
-      *
-      * It takes all the particles from the current leaf,
-      * then it computes the interactions in this leaf,
-      * then it computes the  inteactions between this leaf and the
-      * neighbors.
-      */
-    void P2P(const MortonIndex inCurrentIndex,
-             ContainerClass* const FRestrict targets, const ContainerClass* const FRestrict /*sources*/,
-             ContainerClass* const directNeighbors[26], const MortonIndex inNeighborsIndex[26], const int size){
-        { // Compute interaction in this leaf
-            typename ContainerClass::BasicIterator iterTarget(*targets);
-            while( iterTarget.hasNotFinished() ){
-                // We copy the target particle to work with a particle in the heap
-                ParticleClass target( iterTarget.data() );
+        for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
+            const FTreeCoordinate& coordNeighbors = distantNeighbors[idxNeigh]->getCoordinate();
+            const FComplexe* const transitionVector = &preM2LTransitions[inLevel + Parent::periodicLevels]
+                                                  [indexM2LTransition((coordCenter.getX() - coordNeighbors.getX()),
+                                                                      (coordCenter.getY() - coordNeighbors.getY()),
+                                                                      (coordCenter.getZ() - coordNeighbors.getZ()))];
 
-                // For all particles after the current one
-                typename ContainerClass::BasicIterator iterSameBox = iterTarget;
-                iterSameBox.gotoNext();
-                while( iterSameBox.hasNotFinished() ){
-                    directInteractionMutual(&target, &iterSameBox.data());
-                    iterSameBox.gotoNext();
-                }
-                // Set data and progress
-                iterTarget.setData(target);
-                iterTarget.gotoNext();
-            }
-        }
-        { // Compute interactions with other leaves
-            // For all the neigbors leaves
-            for(int idxDirectNeighbors = 0 ; idxDirectNeighbors < size ; ++idxDirectNeighbors){
-                if(inCurrentIndex < inNeighborsIndex[idxDirectNeighbors] ){
-                    // For all particles in current leaf
-                    typename ContainerClass::BasicIterator iterTarget(*targets);
-                    while( iterTarget.hasNotFinished() ){
-                        ParticleClass target( iterTarget.data() );
-                        // For all the particles in the other leaf
-                        typename ContainerClass::BasicIterator iterSource(*directNeighbors[idxDirectNeighbors]);
-                        while( iterSource.hasNotFinished() ){
-                            directInteractionMutual(&target, &iterSource.data());
-                            iterSource.gotoNext();
-                        }
-                        // Set data and progress
-                        iterTarget.setData(target);
-                        iterTarget.gotoNext();
-                    }
-                }
-            }
+            multipoleToLocal(pole->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
         }
     }
 
-    ///////////////////////////////////////////////////////////////////////////////
-    //                                  Periodic
-    ///////////////////////////////////////////////////////////////////////////////
-
     /** Before Downward */
     void M2L(CellClass* const FRestrict local, const CellClass* distantNeighbors[189],
              const FTreeCoordinate neighborsRelativePositions[189],
              const int size, const int inLevel) {
         // For all neighbors compute M2L
         for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
-            const FComplexe* const transitionVector = &preM2LTransitions[indexM2LTransition(inLevel,
-                                                        neighborsRelativePositions[idxNeigh].getX(),
-                                                        neighborsRelativePositions[idxNeigh].getY(),
-                                                        neighborsRelativePositions[idxNeigh].getZ())];
+            const FComplexe* const transitionVector = &preM2LTransitions[inLevel + Parent::periodicLevels]
+                                                        [indexM2LTransition(neighborsRelativePositions[idxNeigh].getX(),
+                                                                            neighborsRelativePositions[idxNeigh].getY(),
+                                                                            neighborsRelativePositions[idxNeigh].getZ())];
 
             multipoleToLocal(local->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
         }
     }
 
 
-    /** After Downward */
-    void P2P(const MortonIndex inCurrentIndex,
-             ContainerClass* const FRestrict targets, const ContainerClass* const FRestrict /*sources*/,
-             ContainerClass* const directNeighbors[26], const FTreeCoordinate neighborsRelativeOffset[26], const int size) {
-
-        { // Compute interaction in this leaf
-            typename ContainerClass::BasicIterator iterTarget(*targets);
-            while( iterTarget.hasNotFinished() ){
-                // We copy the target particle to work with a particle in the heap
-                ParticleClass target( iterTarget.data() );
-
-                // For all particles after the current one
-                typename ContainerClass::BasicIterator iterSameBox = iterTarget;
-                iterSameBox.gotoNext();
-                while( iterSameBox.hasNotFinished() ){
-                    directInteractionMutual(&target, &iterSameBox.data());
-                    iterSameBox.gotoNext();
-                }
-                // Set data and progress
-                iterTarget.setData(target);
-                iterTarget.gotoNext();
-            }
-        }
-        { // Compute interactions with other leaves
-            // For all the neigbors leaves
-            for(int idxDirectNeighbors = 0 ; idxDirectNeighbors < size ; ++idxDirectNeighbors){
-                // This box is not a real neighbor
-                if(neighborsRelativeOffset[idxDirectNeighbors].getX() || neighborsRelativeOffset[idxDirectNeighbors].getY()
-                        || neighborsRelativeOffset[idxDirectNeighbors].getZ() ){
-                    typename ContainerClass::BasicIterator iterTarget(*targets);
-                    while( iterTarget.hasNotFinished() ){
-                        ParticleClass target( iterTarget.data() );
-                        // For all the particles in the other leaf
-                        typename ContainerClass::BasicIterator iterSource(*directNeighbors[idxDirectNeighbors]);
-                        while( iterSource.hasNotFinished() ){
-                            directInteractionOffset(&target, iterSource.data(), neighborsRelativeOffset[idxDirectNeighbors]);
-                            iterSource.gotoNext();
-                        }
-                        // Set data and progress
-                        iterTarget.setData(target);
-                        iterTarget.gotoNext();
-                    }
-                }
-                // This is a real neighbor, we do as usual
-                else if(inCurrentIndex < neighborsRelativeOffset[idxDirectNeighbors].getMortonIndex(treeHeight) ){
-                    // For all particles in current leaf
-                    typename ContainerClass::BasicIterator iterTarget(*targets);
-                    while( iterTarget.hasNotFinished() ){
-                        ParticleClass target( iterTarget.data() );
-                        // For all the particles in the other leaf
-                        typename ContainerClass::BasicIterator iterSource(*directNeighbors[idxDirectNeighbors]);
-                        while( iterSource.hasNotFinished() ){
-                            directInteractionMutual(&target, &iterSource.data());
-                            iterSource.gotoNext();
-                        }
-                        // Set data and progress
-                        iterTarget.setData(target);
-                        iterTarget.gotoNext();
-                    }
-                }
-            }
-        }
-    }
-
-    ///////////////////////////////////////////////////////////////////////////////
-    //                                  Computation
-    ///////////////////////////////////////////////////////////////////////////////
-private:
-
-    /** P2M computation
-    * expansion_P2M_add
-    * Multipole expansion with m charges q_i in Q_i=(rho_i, alpha_i, beta_i)
-    *whose relative coordinates according to *p_center are:
-    *Q_i - *p_center = (rho'_i, alpha'_i, beta'_i);
-    *
-    *For j=0..P, k=-j..j, we have:
-    *
-    *M_j^k = (-1)^j { sum{i=1..m} q_i Inner_j^k(rho'_i, alpha'_i, beta'_i) }
-    *
-    *However the extern loop is over the bodies (i=1..m) in our code and as an
-    *intern loop we have: j=0..P, k=-j..j
-    *
-    *and the potential is then given by:
-    *
-    * Phi(x) = sum_{n=0}^{+} sum_{m=-n}^{n} M_n^m O_n^{-m} (x - *p_center)
-    *
-    */
-    void particleToMultiPole(FComplexe*const cellMultiPole, const F3DPosition& inPolePosition ,
-                             const ParticleClass& particle){
-
-        // Inner of Qi - Z0 => harmonic.result
-        harmonic.computeInner( FSpherical(particle.getPosition() - inPolePosition) );
-
-        FReal minus_one_pow_j = 1.0;    // (-1)^j => be in turn 1 and -1
-        const FReal qParticle = particle.getPhysicalValue(); // q in the formula
-        int index_j_k = 0; // p_exp_term & p_Y_term
-
-        // J from 0 to P
-        for(int j = 0 ; j <= devP ; ++j){
-            // k from 0 to J
-            for(int k = 0 ; k <= j ; ++k, ++index_j_k){
-                harmonic.result(index_j_k).mulRealAndImag( qParticle * minus_one_pow_j );
-                cellMultiPole[index_j_k] += harmonic.result(index_j_k);
-
-            }
-            // (-1)^J => -1 becomes 1 or 1 becomes -1
-            minus_one_pow_j = -minus_one_pow_j;
-        }
-    }
-
-    /* M2M
-    *We compute the translation of multipole_exp_src from *p_center_of_exp_src to
-    *p_center_of_exp_target, and add the result to multipole_exp_target.
-    *
-    * O_n^l (with n=0..P, l=-n..n) being the former multipole expansion terms
-    * (whose center is *p_center_of_multipole_exp_src) we have for the new multipole
-    * expansion terms (whose center is *p_center_of_multipole_exp_target):
-
-    * M_j^k = sum{n=0..j}
-    * sum{l=-n..n, |k-l|<=j-n}
-    * O_n^l Inner_{j-n}^{k-l}(rho, alpha, beta)
-    *
-    * where (rho, alpha, beta) are the spherical coordinates of the vector :
-    * p_center_of_multipole_exp_target - *p_center_of_multipole_exp_src
-    *
-    * Warning: if j-n < |k-l| we do nothing.
-     */
-    void multipoleToMultipole(FComplexe* const FRestrict multipole_exp_target,
-                              const FComplexe* const FRestrict multipole_exp_src,
-                              const FComplexe* const FRestrict M2M_Inner_transfer){
-
-        // n from 0 to P
-        for(int n = 0 ; n <= devP ; ++n ){
-            // l<0 // (-1)^l
-            FReal pow_of_minus_1_for_l = ( n & 1 ? FReal(-1.0) : FReal(1.0) );
-
-            // O_n^l : here points on the source multipole expansion term of degree n and order |l|
-            const int index_n = harmonic.getPreExpRedirJ(n);
-
-            // l from -n to <0
-            for(int l = -n ; l < 0 ; ++l){
-                const FComplexe M_n__n_l = multipole_exp_src[index_n -l];
-
-                // j from n to P
-                for(int j = n ; j <= devP ; ++j ){
-                    // M_j^k
-                    const int index_j = harmonic.getPreExpRedirJ(j);
-                    // Inner_{j-n}^{k-l} : here points on the M2M transfer function/expansion term of degree n-j and order |k-l|
-                    const int index_j_n = harmonic.getPreExpRedirJ(j-n); /* k==0 */
-
-                    // since n-j+l<0
-                    for(int k = 0 ; k <= (j-n+l) ; ++k ){ // l<0 && k>=0 => k-l>0
-                        const FComplexe I_j_n__k_l = M2M_Inner_transfer[index_j_n + k - l];
-
-                        multipole_exp_target[index_j + k].incReal( pow_of_minus_1_for_l *
-                                                    ((M_n__n_l.getReal() * I_j_n__k_l.getReal()) +
-                                                     (M_n__n_l.getImag() * I_j_n__k_l.getImag())));
-                        multipole_exp_target[index_j + k].incImag( pow_of_minus_1_for_l *
-                                                    ((M_n__n_l.getReal() * I_j_n__k_l.getImag()) -
-                                                     (M_n__n_l.getImag() * I_j_n__k_l.getReal())));
-
-                     } // for k
-                } // for j
-
-                pow_of_minus_1_for_l = -pow_of_minus_1_for_l;
-            } // for l
-
-            // l from 0 to n
-            for(int l = 0 ; l <= n ; ++l){
-                const FComplexe M_n__n_l = multipole_exp_src[index_n + l];
-
-                // j from n to P
-                for( int j = n ; j <= devP ; ++j ){
-                    const int first_k = FMath::Max(0,n-j+l);
-                    // (-1)^k
-                    FReal pow_of_minus_1_for_k = static_cast<FReal>( first_k&1 ? -1.0 : 1.0 );
-                    // M_j^k
-                    const int index_j = harmonic.getPreExpRedirJ(j);
-                    // Inner_{j-n}^{k-l} : here points on the M2M transfer function/expansion term of degree n-j and order |k-l|
-                    const int index_j_n = harmonic.getPreExpRedirJ(j-n);
-
-                    int k = first_k;
-                    for(; k <= (j-n+l) && k < l ; ++k){ /* l>=0 && k-l<0 */
-                        const FComplexe I_j_n__l_k = M2M_Inner_transfer[index_j_n + l - k];
-
-                        multipole_exp_target[index_j + k].incReal( pow_of_minus_1_for_k * pow_of_minus_1_for_l *
-                                                    ((M_n__n_l.getReal() * I_j_n__l_k.getReal()) +
-                                                     (M_n__n_l.getImag() * I_j_n__l_k.getImag())));
-                        multipole_exp_target[index_j + k].incImag(pow_of_minus_1_for_k * pow_of_minus_1_for_l *
-                                                   ((M_n__n_l.getImag() * I_j_n__l_k.getReal()) -
-                                                    (M_n__n_l.getReal() * I_j_n__l_k.getImag())));
-
-                        pow_of_minus_1_for_k = -pow_of_minus_1_for_k;
-                    } // for k
-
-                    for(/* k = l */; k <= (j - n + l) ; ++k){ // l>=0 && k-l>=0
-                        const FComplexe I_j_n__k_l = M2M_Inner_transfer[index_j_n + k - l];
-
-                        multipole_exp_target[index_j + k].incReal(
-                                (M_n__n_l.getReal() * I_j_n__k_l.getReal()) -
-                                (M_n__n_l.getImag() * I_j_n__k_l.getImag()));
-                        multipole_exp_target[index_j + k].incImag(
-                                (M_n__n_l.getImag() * I_j_n__k_l.getReal()) +
-                                (M_n__n_l.getReal() * I_j_n__k_l.getImag()));
-
-                    } // for k
-                } // for j
-
-                pow_of_minus_1_for_l = -pow_of_minus_1_for_l;
-            } // for l
-        } // for n
-    }
-
-
     /** M2L
     *We compute the conversion of multipole_exp_src in *p_center_of_exp_src to
     *a local expansion in *p_center_of_exp_target, and add the result to local_exp_target.
@@ -666,7 +143,7 @@ private:
         // L_j^k
         // HPMSTART(51, "M2L computation (loops)");
         // j from 0 to P
-        for (int j = 0 ; j <= devP ; ++j){
+        for (int j = 0 ; j <= Parent::devP ; ++j){
             // (-1)^k
             FReal pow_of_minus_1_for_k = 1.0;
             //k from 0 to j
@@ -677,12 +154,12 @@ private:
                 // work with a local variable
                 FComplexe L_j_k = local_exp[index_j_k];
                 // n from 0 to P
-                for (int n = 0 ; n <= /*devP or*/ devP-j ; ++n){
+                for (int n = 0 ; n <= /*devP or*/ Parent::devP-j ; ++n){
                     // O_n^l : here points on the source multipole expansion term of degree n and order |l|
-                    const int index_n = harmonic.getPreExpRedirJ(n);
+                    const int index_n = Parent::harmonic.getPreExpRedirJ(n);
 
                     // Outer_{j+n}^{-k-l} : here points on the M2L transfer function/expansion term of degree j+n and order |-k-l|
-                    const int index_n_j = harmonic.getPreExpRedirJ(n+j);
+                    const int index_n_j = Parent::harmonic.getPreExpRedirJ(n+j);
 
                     FReal pow_of_minus_1_for_l = pow_of_minus_1_for_n; // (-1)^l
 
@@ -740,346 +217,6 @@ private:
             }//k
         }
     }
-
-
-    /** L2L
-      *We compute the shift of local_exp_src from *p_center_of_exp_src to
-      *p_center_of_exp_target, and set the result to local_exp_target.
-      *
-      *O_n^l (with n=0..P, l=-n..n) being the former local expansion terms
-      *(whose center is *p_center_of_exp_src) we have for the new local
-      *expansion terms (whose center is *p_center_of_exp_target):
-      *
-      *L_j^k = sum{n=j..P}
-      *sum{l=-n..n}
-      *O_n^l Inner_{n-j}^{l-k}(rho, alpha, beta)
-      *
-      *where (rho, alpha, beta) are the spherical coordinates of the vector :
-      *p_center_of_exp_target - *p_center_of_exp_src
-      *
-      *Warning: if |l-k| > n-j, we do nothing.
-      */
-    void localToLocal(FComplexe* const FRestrict local_exp_target, const FComplexe* const FRestrict local_exp_src,
-                      const FComplexe* const FRestrict L2L_tranfer){
-        // L_j^k
-        int index_j_k = 0;
-
-        for (int j = 0 ; j <= devP ; ++j ){
-            // (-1)^k
-            FReal pow_of_minus_1_for_k = 1.0;
-
-            for (int k = 0 ; k <= j ; ++k, ++index_j_k ){
-                FComplexe L_j_k = local_exp_target[index_j_k];
-
-                for (int n=j; n <= devP;++n){
-                    // O_n^l : here points on the source multipole expansion term of degree n and order |l|
-                    const int index_n = harmonic.getPreExpRedirJ(n);
-
-                    int l = n - j + k;
-                    // Inner_{n-j}^{l-k} : here points on the L2L transfer function/expansion term of degree n-j and order |l-k|
-                    const int index_n_j = harmonic.getPreExpRedirJ(n-j);
-
-                    for(/*l = n - j + k*/ ; l-k > 0 ;  --l){ /* l>0 && l-k>0 */
-                        const FComplexe L_j_l = local_exp_src[index_n + l];
-                        const FComplexe I_l_j__l_k = L2L_tranfer[index_n_j  + l - k];
-
-                        L_j_k.incReal( (L_j_l.getReal() * I_l_j__l_k.getReal()) -
-                                                    (L_j_l.getImag() * I_l_j__l_k.getImag()));
-                        L_j_k.incImag( (L_j_l.getImag() * I_l_j__l_k.getReal()) +
-                                                    (L_j_l.getReal() * I_l_j__l_k.getImag()));
-
-                    }
-
-                    // (-1)^l
-                    FReal pow_of_minus_1_for_l = ((l&1) ? FReal(-1.0) : FReal(1.0));
-                    for(/*l = k*/; l>0 && l>=j-n+k; --l){ /* l>0 && l-k<=0 */
-                        const FComplexe L_j_l = local_exp_src[index_n + l];
-                        const FComplexe I_l_j__l_k = L2L_tranfer[index_n_j  - l + k];
-
-                        L_j_k.incReal( pow_of_minus_1_for_l * pow_of_minus_1_for_k *
-                                                    ((L_j_l.getReal() * I_l_j__l_k.getReal()) +
-                                                     (L_j_l.getImag() * I_l_j__l_k.getImag())));
-                        L_j_k.incImag( pow_of_minus_1_for_l * pow_of_minus_1_for_k *
-                                                    ((L_j_l.getImag() * I_l_j__l_k.getReal()) -
-                                                     (L_j_l.getReal() * I_l_j__l_k.getImag())));
-
-                        pow_of_minus_1_for_l = -pow_of_minus_1_for_l;
-                     }
-
-                    // l<=0 && l-k<=0
-                    for(/*l = 0 ou l = j-n+k-1*/; l>=j-n+k; --l){
-                        const FComplexe L_j_l = local_exp_src[index_n - l];
-                        const FComplexe I_l_j__l_k = L2L_tranfer[index_n_j  - l + k];
-
-                        L_j_k.incReal( pow_of_minus_1_for_k *
-                                                    ((L_j_l.getReal() * I_l_j__l_k.getReal()) -
-                                                     (L_j_l.getImag() * I_l_j__l_k.getImag())));
-                        L_j_k.decImag( pow_of_minus_1_for_k *
-                                                    ((L_j_l.getImag() * I_l_j__l_k.getReal()) +
-                                                     (L_j_l.getReal() * I_l_j__l_k.getImag())));
-
-                    }
-                }//n
-
-                local_exp_target[index_j_k] = L_j_k;
-
-                pow_of_minus_1_for_k = -pow_of_minus_1_for_k;
-            }//k
-        }//j
-    }
-
-    /** L2P
-      */
-    void localToParticle(ParticleClass*const particle, const F3DPosition& local_position,
-                         const FComplexe*const local_exp){
-        //--------------- Forces ----------------//
-
-        FReal force_vector_in_local_base_x = 0;
-        FReal force_vector_in_local_base_y = 0;
-        FReal force_vector_in_local_base_z = 0;
-
-        const FSpherical spherical(particle->getPosition() - local_position);
-        harmonic.computeInnerTheta( spherical );
-
-        int index_j_k = 1;
-
-        for (int j = 1 ; j <= devP ; ++j ){
-            {
-                // k=0:
-                // F_r:
-                const FReal exp_term_aux_real = ( (harmonic.result(index_j_k).getReal() * local_exp[index_j_k].getReal()) - (harmonic.result(index_j_k).getImag() * local_exp[index_j_k].getImag()) );
-                //const FReal exp_term_aux_imag = ( (harmonic.result(index_j_k).getReal() * local_exp[index_j_k].getImag()) + harmonic.result(index_j_k).getImag() * local_exp[index_j_k].getReal()) );
-                force_vector_in_local_base_x = ( force_vector_in_local_base_x  + FReal(j) * exp_term_aux_real );
-            }
-            {
-                // F_phi: k=0 => nothing to do for F_phi
-                // F_theta:
-                const FReal exp_term_aux_real = ( (harmonic.resultThetaDerivated(index_j_k).getReal() * local_exp[index_j_k].getReal()) - (harmonic.resultThetaDerivated(index_j_k).getImag() * local_exp[index_j_k].getImag()) );
-                //const FReal exp_term_aux_imag = ( (harmonic.resultThetaDerivated(index_j_k).getReal() * local_exp[index_j_k].getImag()) + (harmonic.resultThetaDerivated(index_j_k).getImag() * local_exp[index_j_k].getReal()) );
-                force_vector_in_local_base_y = ( force_vector_in_local_base_y + exp_term_aux_real );
-            }
-
-            ++index_j_k;
-
-            // k>0:
-            for (int k=1; k<=j ;++k, ++index_j_k){
-                {
-                    // F_r:
-                    const FReal exp_term_aux_real = ( (harmonic.result(index_j_k).getReal() * local_exp[index_j_k].getReal()) - (harmonic.result(index_j_k).getImag() * local_exp[index_j_k].getImag()) );
-                    const FReal exp_term_aux_imag = ( (harmonic.result(index_j_k).getReal() * local_exp[index_j_k].getImag()) + (harmonic.result(index_j_k).getImag() * local_exp[index_j_k].getReal()) );
-                    force_vector_in_local_base_x = (force_vector_in_local_base_x  + FReal(2 * j) * exp_term_aux_real );
-                    // F_phi:
-                    force_vector_in_local_base_z = ( force_vector_in_local_base_z - FReal(2 * k) * exp_term_aux_imag);
-                }
-                {
-                    // F_theta:
-                    const FReal exp_term_aux_real = ( (harmonic.resultThetaDerivated(index_j_k).getReal() * local_exp[index_j_k].getReal()) - (harmonic.resultThetaDerivated(index_j_k).getImag() * local_exp[index_j_k].getImag()) );
-                    //const FReal exp_term_aux_imag = ( (harmonic.resultThetaDerivated(index_j_k).getReal() * local_exp[index_j_k].getImag()) + (harmonic.resultThetaDerivated(index_j_k).getImag() * local_exp[index_j_k].getReal()) );
-                    force_vector_in_local_base_y = (force_vector_in_local_base_y + FReal(2.0) * exp_term_aux_real );
-                }
-
-            }
-
-        }
-        // We want: - gradient(POTENTIAL_SIGN potential).
-        // The -(- 1.0) computing is not the most efficient programming ...
-        const FReal signe = 1.0;
-        if( FMath::Epsilon < spherical.getR()){
-            force_vector_in_local_base_x = ( force_vector_in_local_base_x  * signe / spherical.getR());
-            force_vector_in_local_base_y = ( force_vector_in_local_base_y * signe / spherical.getR());
-            force_vector_in_local_base_z = ( force_vector_in_local_base_z * signe / (spherical.getR() * spherical.getSinTheta()));
-        }
-        /////////////////////////////////////////////////////////////////////
-
-        //spherical_position_Set_ph
-        //FMB_INLINE COORDINATES_T angle_Convert_in_MinusPi_Pi(COORDINATES_T a){
-        FReal ph = FMath::Fmod(spherical.getPhi(), FReal(2)*FMath::FPi);
-        if (ph > M_PI) ph -= FReal(2) * FMath::FPi;
-        if (ph < -M_PI + FMath::Epsilon)  ph += FReal(2) * FMath::Epsilon;
-
-        //spherical_position_Set_th
-        FReal th = FMath::Fmod(FMath::ACos(spherical.getCosTheta()), FReal(2) * FMath::FPi);
-        if (th < 0.0) th += 2*FMath::FPi;
-        if (th > FMath::FPi){
-            th = 2*FMath::FPi - th;
-            //spherical_position_Set_ph(p, spherical_position_Get_ph(p) + M_PI);
-            ph = FMath::Fmod(ph + FMath::FPi, 2*FMath::FPi);
-            if (ph > M_PI) ph -= 2*FMath::FPi;
-            if (ph < -M_PI + FMath::Epsilon)  ph += 2 * FMath::Epsilon;
-            th = FMath::Fmod(th, 2*FMath::FPi);
-            if (th > M_PI) th -= 2*FMath::FPi;
-            if (th < -M_PI + FMath::Epsilon)  th += 2 * FMath::Epsilon;
-        }
-        //spherical_position_Set_r
-        //FReal rh = spherical.r;
-        if (spherical.getR() < 0){
-            //rh = -spherical.r;
-            //spherical_position_Set_ph(p, M_PI - spherical_position_Get_th(p));
-            ph = FMath::Fmod(FMath::FPi - th, 2*FMath::FPi);
-            if (ph > M_PI) ph -= 2*FMath::FPi;
-            if (ph < -M_PI + FMath::Epsilon)  ph += 2 * FMath::Epsilon;
-            //spherical_position_Set_th(p, spherical_position_Get_th(p) + M_PI);
-            th = FMath::Fmod(th + FMath::FPi, 2*FMath::FPi);
-            if (th < 0.0) th += 2*FMath::FPi;
-            if (th > FMath::FPi){
-                th = 2*FMath::FPi - th;
-                //spherical_position_Set_ph(p, spherical_position_Get_ph(p) + M_PI);
-                ph = FMath::Fmod(ph + FMath::FPi, 2*FMath::FPi);
-                if (ph > M_PI) ph -= 2*FMath::FPi;
-                if (ph < -M_PI + FMath::Epsilon)  ph += 2 * FMath::Epsilon;
-                th = FMath::Fmod(th, 2*FMath::FPi);
-                if (th > M_PI) th -= 2*FMath::FPi;
-                if (th < -M_PI + FMath::Epsilon)  th += 2 * FMath::Epsilon;
-            }
-        }
-
-        const FReal cos_theta   = FMath::Cos(th);
-        const FReal cos_phi     = FMath::Cos(ph);
-        const FReal sin_theta   = FMath::Sin(th);
-        const FReal sin_phi     = FMath::Sin(ph);
-
-        FReal force_vector_tmp_x = (
-                cos_phi * sin_theta * force_vector_in_local_base_x  +
-                cos_phi * cos_theta * force_vector_in_local_base_y +
-                (-sin_phi) * force_vector_in_local_base_z);
-
-        FReal force_vector_tmp_y = (
-                sin_phi * sin_theta * force_vector_in_local_base_x  +
-                sin_phi * cos_theta * force_vector_in_local_base_y +
-                cos_phi * force_vector_in_local_base_z);
-
-        FReal force_vector_tmp_z = (
-                cos_theta * force_vector_in_local_base_x +
-                (-sin_theta) * force_vector_in_local_base_y);
-
-        const FReal physicalValue = particle->getPhysicalValue();
-        force_vector_tmp_x *= physicalValue;
-        force_vector_tmp_y *= physicalValue;
-        force_vector_tmp_z *= physicalValue;
-
-        particle->incForces( force_vector_tmp_x, force_vector_tmp_y, force_vector_tmp_z );
-
-        //--------------- Potential ----------------//
-
-        FReal result = 0.0;
-        index_j_k = 0;
-
-        for(int j = 0 ; j<= devP ; ++j){
-            // k=0
-            harmonic.result(index_j_k) *= local_exp[index_j_k];
-            result += harmonic.result(index_j_k).getReal();
-
-            ++index_j_k;            
-
-            // k>0
-            for (int k = 1 ; k <= j ; ++k, ++index_j_k){
-                harmonic.result(index_j_k) *= local_exp[index_j_k];
-                result += 2 * harmonic.result(index_j_k).getReal();
-            }
-        }
-
-        particle->incPotential(result /* * physicalValue*/);
-
-    }
-
-public:
-    /** P2P mutual interaction
-      * F = q * q' / r²
-      */
-    void directInteractionMutual(ParticleClass*const FRestrict target, ParticleClass*const FRestrict source){
-
-        FReal dx = -(target->getPosition().getX() - source->getPosition().getX());
-        FReal dy = -(target->getPosition().getY() - source->getPosition().getY());
-        FReal dz = -(target->getPosition().getZ() - source->getPosition().getZ());
-
-        FReal inv_square_distance = FReal(1.0) / (dx*dx + dy*dy + dz*dz);
-        FReal inv_distance = FMath::Sqrt(inv_square_distance);
-
-        inv_square_distance *= inv_distance;
-        inv_square_distance *= target->getPhysicalValue() * source->getPhysicalValue();
-
-        dx *= inv_square_distance;
-        dy *= inv_square_distance;
-        dz *= inv_square_distance;
-
-        target->incForces( dx, dy, dz);
-        target->incPotential( inv_distance * source->getPhysicalValue() );
-
-        source->incForces( (-dx), (-dy), (-dz));
-        source->incPotential( inv_distance * target->getPhysicalValue() );
-    }
-
-    /** P2P NO mutual interaction
-      * F = q * q' / r²
-      */
-    void directInteraction(ParticleClass*const FRestrict target, const ParticleClass& source){
-
-        FReal dx = -(target->getPosition().getX() - source.getPosition().getX());
-        FReal dy = -(target->getPosition().getY() - source.getPosition().getY());
-        FReal dz = -(target->getPosition().getZ() - source.getPosition().getZ());
-
-        FReal inv_square_distance = FReal(1.0) / (dx*dx + dy*dy + dz*dz);
-        FReal inv_distance = FMath::Sqrt(inv_square_distance);
-
-        inv_square_distance *= inv_distance;
-        inv_square_distance *= target->getPhysicalValue() * source.getPhysicalValue();
-
-        dx *= inv_square_distance;
-        dy *= inv_square_distance;
-        dz *= inv_square_distance;
-
-        target->incForces( dx, dy, dz);
-        target->incPotential( inv_distance  * source.getPhysicalValue() );
-    }
-
-    /** P2P NO mutual interaction with an offset
-      * F = q * q' / r²
-      */
-    void directInteractionOffset(ParticleClass*const FRestrict target, const ParticleClass& source, const FTreeCoordinate& offset){
-
-        FReal dx = -(target->getPosition().getX() - source.getPosition().getX()) + FReal(offset.getX()) * boxWidth;
-        FReal dy = -(target->getPosition().getY() - source.getPosition().getY()) + FReal(offset.getY()) * boxWidth;
-        FReal dz = -(target->getPosition().getZ() - source.getPosition().getZ()) + FReal(offset.getZ()) * boxWidth;
-
-        FReal inv_square_distance = FReal(1.0) / (dx*dx + dy*dy + dz*dz);
-        FReal inv_distance = FMath::Sqrt(inv_square_distance);
-
-        inv_square_distance *= inv_distance;
-        inv_square_distance *= target->getPhysicalValue() * source.getPhysicalValue();
-
-        dx *= inv_square_distance;
-        dy *= inv_square_distance;
-        dz *= inv_square_distance;
-
-        target->incForces( dx, dy, dz);
-        target->incPotential( inv_distance  * source.getPhysicalValue() );
-    }
-
-    /** Update a velocity of a particle
-      *
-      */
-    void computeVelocity(ParticleClass*const FRestrict target, const FReal DT){
-        const FReal physicalValue = target->getPhysicalValue();
-        // Coef = 1/m * time/2
-        const FReal coef = (FReal(1.0)/physicalValue) * (DT/FReal(2.0));
-
-        // velocity = velocity + forces * coef
-        F3DPosition forces_coef(target->getForces());
-        forces_coef *= coef;
-        target->incVelocity(forces_coef);
-    }
-
-    /** Update a position of a particle
-      *
-      */
-    void updatePosition(ParticleClass*const FRestrict target, const FReal DT){
-        F3DPosition velocity_dt( target->getVelocity() );
-        velocity_dt *= DT;
-        target->incPosition( velocity_dt );
-    }
 };
 
-
-#endif //FSPHERICALKERNEL_HPP
-
-
+#endif // FSPHERICALKERNEL_HPP
diff --git a/Src/Kernels/FSphericalParticle.hpp b/Src/Kernels/FSphericalParticle.hpp
new file mode 100644
index 000000000..b925392ac
--- /dev/null
+++ b/Src/Kernels/FSphericalParticle.hpp
@@ -0,0 +1,27 @@
+// ===================================================================================
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
+// ===================================================================================
+#ifndef FSPHERICALPARTICLE_HPP
+#define FSPHERICALPARTICLE_HPP
+
+#include "../Extensions/FExtendForces.hpp"
+#include "../Extensions/FExtendPotential.hpp"
+#include "../Extensions/FExtendParticleType.hpp"
+#include "../Components/FFmaParticle.hpp"
+
+class FSphericalParticle : public FExtendForces, public FFmaParticle, public FExtendPotential {
+public:
+};
+
+class FTypedSphericalParticle : public FSphericalParticle, public FExtendParticleType {
+public:
+};
+
+#endif // FSPHERICALPARTICLE_HPP
diff --git a/Src/Kernels/FSphericalRotationKernel.hpp b/Src/Kernels/FSphericalRotationKernel.hpp
new file mode 100644
index 000000000..e9ae4d660
--- /dev/null
+++ b/Src/Kernels/FSphericalRotationKernel.hpp
@@ -0,0 +1,612 @@
+// ===================================================================================
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
+// ===================================================================================
+#ifndef FSPHERICALROTATIONKERNEL_HPP
+#define FSPHERICALROTATIONKERNEL_HPP
+
+#include "FAbstractSphericalKernel.hpp"
+#include "../Utils/FMemUtils.hpp"
+
+/**
+* @author Berenger Bramas (berenger.bramas@inria.fr)
+* This class is the rotation spherical harmonic kernel
+*/
+template< class ParticleClass, class CellClass, class ContainerClass>
+class FSphericalRotationKernel : public FAbstractSphericalKernel<ParticleClass,CellClass,ContainerClass> {
+protected:
+    typedef FAbstractSphericalKernel<ParticleClass,CellClass,ContainerClass> Parent;
+
+    /** This class define some information to use rotation computation
+      */
+    struct RotationInfo{
+        FReal* rotation_a;
+        FReal* rotation_b;
+
+        FComplexe* p_rot_multipole_exp;
+        FComplexe* p_rot_local_exp;
+
+        /** Get z vector size */
+        static int ZAxisExpensionSize(const int inDevP){
+            return int( (inDevP&1) == 0 ? ((inDevP+1) + (inDevP*inDevP)*.25) : ((inDevP+1) + (inDevP*inDevP-1)*.25));
+        }
+
+        /** Constructor */
+        RotationInfo(const int inDevP){
+            rotation_a = new FReal[int( ((inDevP)+1) * ((inDevP)+2) * 0.5 )];
+            for(int n = 0 ; n <= inDevP ; ++n){
+                for(int m = 0 ; m <= n ; ++m){
+                    rotation_a[int(n*(n+1) * 0.5 + m)] = FMath::Sqrt( FReal((n+1+m)*(n+1-m)) / FReal(((2*n+1)*(2*n+3))) );
+                }
+            }
+            rotation_b = new FReal[(inDevP+1) * (inDevP+1)];
+            for(int n = 0 ; n <= inDevP ; ++n){
+                for(int m = -n ; m < 0 ; ++m){
+                    rotation_b[n*(n+1) + m] = -FMath::Sqrt( FReal((n-m-1)*(n-m)) / FReal(((2*n-1)*(2*n+1))) );
+                }
+                for(int m = 0 ; m <= n ; ++m){
+                    rotation_b[n*(n+1) + m] = FMath::Sqrt( FReal((n-m-1)*(n-m)) / FReal(((2*n-1)*(2*n+1))) );
+                }
+            }
+            const int z_size = ZAxisExpensionSize(inDevP);
+            p_rot_multipole_exp = new FComplexe[z_size];
+            p_rot_local_exp = new FComplexe[z_size];
+        }
+
+        /** Destructor */
+        ~RotationInfo(){
+            delete[] rotation_a;
+            delete[] rotation_b;
+            delete[] p_rot_multipole_exp;
+            delete[] p_rot_local_exp;
+        }
+    };
+
+
+    /** This class holds the data need to do a M2L by rotation
+      * it is precomputed at the beginning
+      */
+    struct RotationM2LTransfer {
+        const int devP;
+        const int expSize;
+        FComplexe** rcc_outer;
+        FComplexe** rcc_inner;
+        FReal* outer_array;
+
+        /** Constructor */
+        RotationM2LTransfer(const int inDevP, const int inDevM2lP, const int inExpSize)
+            : devP(inDevP), expSize(inExpSize){
+            rcc_outer = new FComplexe*[devP + 1];
+            rcc_inner = new FComplexe*[devP + 1];
+            for( int idxP = 0 ; idxP <= devP ; ++idxP){
+                const int rotationSize = ((idxP+1)*(2*idxP+1));
+                rcc_outer[idxP] = new FComplexe[rotationSize];
+                rcc_inner[idxP] = new FComplexe[rotationSize];
+            }
+            outer_array = new FReal[inDevM2lP + 1];
+        }
+
+        /** Used in the initialisation */
+        void spherical_harmonic_Outer_null_order_z_axis(const FReal r){
+            const FReal inv_r = FReal(1.0 / r);
+            FReal tmp = inv_r;
+
+            // l=0
+            outer_array[0] = tmp;
+
+            // l>0
+            for(int l = 1 ; l <= devP ; ++l){
+                tmp *= inv_r * FReal(l);
+                outer_array[l] = tmp;
+            }
+        }
+
+        /** Used in the initialisation */
+        void computeLegendre(const FReal inCosTheta, const FReal inSinTheta, FReal legendre[]){
+            const FReal invSinTheta = -inSinTheta;
+
+            legendre[0] = 1.0;        // P_0,0(cosTheta) = 1
+            legendre[1] = inCosTheta; // P_1,0(cosTheta) = cosTheta
+            legendre[2] = invSinTheta;// P_1,1(cosTheta) = -sinTheta
+
+            int idxCurrentLM  = 3; //current pointer on P_l,m
+            int idxCurrentL1M = 1; //pointer on P_{l-1},m => P_1,0
+            int idxCurrentL2M = 0; //pointer on P_{l-2},m => P_0,0
+            FReal fact = 3.0;
+
+            for(int l = 2; l <= devP ; ++l ){
+                // m from 0 to l - 2
+                for( int m = 0; m <= l - 2 ; ++m ){
+                    legendre[idxCurrentLM] = (inCosTheta * FReal( 2 * l - 1 ) * legendre[idxCurrentL1M]
+                                              - FReal( l + m - 1 ) * legendre[idxCurrentL2M] )
+                            / FReal( l - m );
+
+
+                    // progress
+                    ++idxCurrentLM;
+                    ++idxCurrentL1M;
+                    ++idxCurrentL2M;
+                }
+
+                // Compute P_l,{l-1}
+                legendre[idxCurrentLM++] = inCosTheta * FReal( 2 * l - 1 ) * legendre[idxCurrentL1M];
+
+                // Compute P_l,l
+                legendre[idxCurrentLM++] = fact * invSinTheta * legendre[idxCurrentL1M];
+
+                fact += FReal(2.0);
+                ++idxCurrentL1M;
+            }
+        }
+
+        /** Used in the initialisation */
+        static int getTranspRotationCoefP(const int n, const int nu, const int m){
+            return m*(2*n+1) + (nu+n);
+        }
+        /** Used in the initialisation */
+        static int getRotationCoefP(const int n, const int nu, const int m){
+            return (nu)*(2*(n)+1) + (m+n);
+        }
+        /** Used in the initialisation */
+        static int getRotationB(const int n, const int m){
+            return n*(n+1) + m;
+        }
+        /** Used in the initialisation */
+        static int getRotationA(const int n, const int m){
+            return int(n*(n+1) * 0.5 + (FMath::Abs(m)));
+        }
+
+        /** Used in the initialisation */
+        static FReal A_div_A(int n, int m, int nu){
+            m = FMath::Abs(m);
+            nu = FMath::Abs(nu);
+            const int min = FMath::Min(m, nu);
+            const int max = FMath::Max(m, nu);
+            const int i_stop = max - min - 1; /* = n-min - (n-max+1) = n+max - (n+min+1) */
+
+            FReal num = FReal(n-max+1);
+            FReal denom = FReal(n+min+1);
+            FReal A_min_max = 1;
+            for (int i=0; i<=i_stop; ++i, ++num, ++denom){
+                A_min_max *= (num/denom);
+            }
+
+            if (nu == min)
+                return FMath::Sqrt(A_min_max);
+            else
+                return 1/FMath::Sqrt(A_min_max);
+        }
+
+        /** Pre-Compute */
+        void rotation_coefficient_container_Fill(const FReal omega,
+                                                 const FReal cos_gamma, const FReal sin_gamma,
+                                                 const FReal chi, const RotationInfo& rotation_Info){
+
+            FComplexe** rcc_tmp_transposed = new FComplexe*[devP + 1];
+            for( int idxP = 0 ; idxP <= devP ; ++idxP){
+                const int rotationSize = ((idxP+1)*(2*idxP+1));
+                rcc_tmp_transposed[idxP] = new FComplexe[rotationSize];
+            }
+
+            FComplexe _pow_of_I_array[7];
+            _pow_of_I_array[0].setRealImag(0 , 1 ) /* I^{-3} */;
+            _pow_of_I_array[1].setRealImag(-1, 0 ) /* I^{-2} */;
+            _pow_of_I_array[2].setRealImag(0 , -1) /* I^{-1} */;
+            _pow_of_I_array[3].setRealImag(1 , 0 ) /* I^0 */;
+            _pow_of_I_array[4].setRealImag(0 , 1 ) /* I^1 */;
+            _pow_of_I_array[5].setRealImag(-1, 0 ) /* I^2 */;
+            _pow_of_I_array[6].setRealImag(0 , -1) /* I^3 */;
+
+            const FComplexe* pow_of_I_array = _pow_of_I_array + 3; /* points on I^0 */
+
+            FComplexe* const _precomputed_exp_I_chi_array = new FComplexe[2*devP + 1];
+            FComplexe* precomputed_exp_I_chi_array = _precomputed_exp_I_chi_array + devP;
+
+            FComplexe* const _precomputed_exp_I_omega_array  = new FComplexe[2*devP + 1];
+            FComplexe* precomputed_exp_I_omega_array = _precomputed_exp_I_omega_array + devP;
+
+
+            // cos(x) = sin(x + Pi/2)
+            for(int m = -devP ; m <= devP ; ++m){
+                precomputed_exp_I_chi_array[m].setReal(FMath::Sin(FReal(m)*chi + FMath::FPiDiv2));
+                precomputed_exp_I_chi_array[m].setImag(FMath::Sin(FReal(m)*chi));
+            }
+            for(int nu = -devP ; nu <= devP ; ++nu){
+                precomputed_exp_I_omega_array[nu].setReal(FMath::Sin(FReal(nu)*omega + FMath::FPiDiv2));
+                precomputed_exp_I_omega_array[nu].setImag(FMath::Sin(FReal(nu)*omega));
+            }
+
+            FReal*const ass_Legendre_func_Array = new FReal[expSize];
+            FReal* p_ass_Legendre_func_Array = ass_Legendre_func_Array;
+            computeLegendre(cos_gamma, sin_gamma, ass_Legendre_func_Array);
+
+            for(int n = 0 ; n <= devP ; ++n){
+                // nu == 0:
+                FReal c_n_nu = 1;
+                rcc_tmp_transposed[n][getTranspRotationCoefP(n,0,0)].setReal(c_n_nu * (*p_ass_Legendre_func_Array));
+
+                ++p_ass_Legendre_func_Array;
+
+                // nu > 0:
+                FReal minus_1_pow_nu = -1;
+                for(int nu = 1 ; nu <= n; ++nu){
+                    c_n_nu /= FMath::Sqrt(FReal((n-nu+1)*(n+nu)));
+                    rcc_tmp_transposed[n][getTranspRotationCoefP(n, nu, 0)].setReal(minus_1_pow_nu * c_n_nu * (*p_ass_Legendre_func_Array));
+                    rcc_tmp_transposed[n][getTranspRotationCoefP(n, -nu, 0)] = rcc_tmp_transposed[n][getTranspRotationCoefP(n, nu, 0)];
+                    minus_1_pow_nu = -minus_1_pow_nu;
+                    ++p_ass_Legendre_func_Array;
+                } // for nu
+
+                for(int m = 1 ; m <= n ; ++m){
+                    for(int nu = -m; nu <= m ; ++nu){
+                        const FReal H_nu_minus_1 = ( nu-1 <= -n ?
+                                             FReal(0.0) :
+                                             (cos_gamma +1) * rotation_Info.rotation_b[getRotationB(n, -nu)]
+                                             * rcc_tmp_transposed[n-1][getTranspRotationCoefP(n-1, nu-1, m-1)].getReal());
+                        const FReal H_nu_plus_1 = ( nu+1 >= n ?
+                                            FReal(0.0) :
+                                            (cos_gamma -1) * rotation_Info.rotation_b[getRotationB(n, nu)]
+                                            * rcc_tmp_transposed[n-1][getTranspRotationCoefP(n-1, nu+1, m-1)].getReal());
+
+                        const FReal H_nu  = ( FMath::Abs(nu) >= n ?
+                                      FReal(0.0) :
+                                      sin_gamma * rotation_Info.rotation_a[getRotationA(n-1, nu)]
+                                      * rcc_tmp_transposed[n-1][getTranspRotationCoefP(n-1, nu, m-1)].getReal() );
+
+
+                        rcc_tmp_transposed[n][getTranspRotationCoefP(n, nu, m)].setReal( (FReal(0.5) * (-H_nu_minus_1 - H_nu_plus_1) - H_nu)
+                                                                                         / rotation_Info.rotation_b[getRotationB(n, -m)]);
+                    } // for nu
+                } // for m
+
+                for(int m = 1 ; m <= n ; ++m){
+                    for(int nu = -n ; nu <= -m-1; ++nu){
+                        rcc_tmp_transposed[n][getTranspRotationCoefP(n, nu, m)] = rcc_tmp_transposed[n][getTranspRotationCoefP(n, -m, -nu)];
+                    } // for nu
+
+                    for(int nu = m+1 ; nu <= n; ++nu){
+                        rcc_tmp_transposed[n][getTranspRotationCoefP(n, nu, m)] = rcc_tmp_transposed[n][getTranspRotationCoefP(n, m, nu)];
+                    } // for nu
+                } // for m
+            } // for n
+
+            for(int n = 0 ; n <= devP ; ++n){
+                for(int nu = 0 ; nu <= n; ++nu){
+                    for(int m = -n; m <= n; ++m){
+                        FReal A_terms = A_div_A(n, m, nu); /*  A_n^m / A_n^nu */
+                        int abs_m_minus_abs_nu_mod4 = (FMath::Abs(m) - FMath::Abs(nu)) % 4; /* can be negative! */
+                        const FComplexe p_H_tmp = ( m >= 0 ?
+                                        rcc_tmp_transposed[n][getTranspRotationCoefP(n, nu, m)] :
+                                        rcc_tmp_transposed[n][getTranspRotationCoefP(n, -nu, -m)]) ;
+
+                        /*************** T_Outer_n^{nu, m}(omega, gamma, chi): ***************/
+                        rcc_outer[n][getRotationCoefP(n, nu, m)] = p_H_tmp;
+                        /* H_n^{nu, m}(gamma) => T_n^{nu, m}(omega, gamma, chi) */
+                        rcc_outer[n][getRotationCoefP(n, nu, m)] *= precomputed_exp_I_chi_array[ + m];
+                        rcc_outer[n][getRotationCoefP(n, nu, m)] *= precomputed_exp_I_omega_array[ - nu];
+                        /* T_Outer_j^{nu, k}(omega, gamma, chi) = i^{|k|-|nu|} (A_j^nu / A_j^k) T_j^{nu, k}(omega, gamma, chi)     (6) */
+                        rcc_outer[n][getRotationCoefP(n, nu, m)] *= pow_of_I_array[abs_m_minus_abs_nu_mod4];
+                        rcc_outer[n][getRotationCoefP(n, nu, m)] *= (FReal(1.0) / A_terms);
+
+
+                        /*************** T_Inner_n^{nu, m}(chi, gamma, omega): ***************/
+                        rcc_inner[n][getRotationCoefP(n, nu, m)] = p_H_tmp;
+                        /* H_n^{nu, m}(gamma) => T_n^{nu, m}(chi, gamma, omega) */
+                        rcc_inner[n][getRotationCoefP(n, nu, m)] *= precomputed_exp_I_omega_array[ + m];
+                        rcc_inner[n][getRotationCoefP(n, nu, m)] *= precomputed_exp_I_chi_array[ - nu];
+                        /* T_Inner_j^{nu, k}(omega, gamma, chi) = i^{|nu|-|k|} (A_j^k / A_j^nu) T_j^{nu, k}(omega, gamma, chi)    (7) */
+                        rcc_inner[n][getRotationCoefP(n, nu, m)] *= pow_of_I_array[- abs_m_minus_abs_nu_mod4];
+                        rcc_inner[n][getRotationCoefP(n, nu, m)] *= A_terms;
+
+                    }// for m
+                } // for nu
+            } // for n
+
+
+            delete[] (ass_Legendre_func_Array);
+            delete[] (_precomputed_exp_I_chi_array);
+            delete[] (_precomputed_exp_I_omega_array);
+            FMemUtils::DeleteAll( rcc_tmp_transposed, devP);
+            delete[] rcc_tmp_transposed;
+        }
+
+        /** Pre-compute */
+        void transfer_M2L_rotation_Fill(const FSpherical& inSphere, const RotationInfo& rotation_Info){
+
+            // Computes rotation coefficients:
+            rotation_coefficient_container_Fill(FMath::FPi, inSphere.getCosTheta(),
+                                                inSphere.getSinTheta(), inSphere.getPhi(), rotation_Info);
+
+            // Computes Outer terms:
+            spherical_harmonic_Outer_null_order_z_axis(inSphere.getR());
+
+
+        }
+
+        ~RotationM2LTransfer(){
+            FMemUtils::DeleteAll( rcc_outer, devP);
+            FMemUtils::DeleteAll( rcc_inner, devP);
+            delete[] rcc_outer;
+            delete[] rcc_inner;
+            delete[] outer_array;
+        }
+    };
+
+    const int devM2lP;               //< A secondary P
+
+    RotationM2LTransfer** preM2LTransitions;   //< The pre-computation for the M2L based on the level and the 189 possibilities
+    RotationInfo rotation_Info;
+
+    /** To access te pre computed M2L transfer vector */
+    int indexM2LTransition(const int idxX,const int idxY,const int idxZ) const {
+        return (((((idxX+3) * 7) + (idxY+3)) * 7 ) + (idxZ+3)) * devM2lP;
+    }
+
+    /** Alloc and init pre-vectors*/
+    void allocAndInit(){
+        // M2L transfer, there is a maximum of 3 neighbors in each direction,
+        // so 6 in each dimension
+        preM2LTransitions = new RotationM2LTransfer*[Parent::treeHeight + Parent::periodicLevels];
+        memset(preM2LTransitions, 0, sizeof(FComplexe*) * (Parent::treeHeight + Parent::periodicLevels));
+        // We start from the higher level
+        FReal treeWidthAtLevel = Parent::boxWidth * FReal(1 << Parent::periodicLevels);
+        for(int idxLevel = -Parent::periodicLevels ; idxLevel < Parent::treeHeight ; ++idxLevel ){
+            // Allocate data for this level
+            preM2LTransitions[idxLevel + Parent::periodicLevels] = reinterpret_cast<RotationM2LTransfer*>(new char[(7 * 7 * 7) * devM2lP * sizeof(RotationM2LTransfer)]);
+            // Precompute transfer vector
+            for(int idxX = -3 ; idxX <= 3 ; ++idxX ){
+                for(int idxY = -3 ; idxY <= 3 ; ++idxY ){
+                    for(int idxZ = -3 ; idxZ <= 3 ; ++idxZ ){
+                        new (&preM2LTransitions[idxLevel + Parent::periodicLevels][indexM2LTransition(idxX,idxY,idxZ)]) RotationM2LTransfer(Parent::devP,devM2lP,Parent::harmonic.getExpSize());
+
+                        if(FMath::Abs(idxX) > 1 || FMath::Abs(idxY) > 1 || FMath::Abs(idxZ) > 1){
+                            const F3DPosition relativePos( FReal(idxX) * treeWidthAtLevel , FReal(idxY) * treeWidthAtLevel , FReal(idxZ) * treeWidthAtLevel );
+                            preM2LTransitions[idxLevel + Parent::periodicLevels][indexM2LTransition(idxX,idxY,idxZ)].transfer_M2L_rotation_Fill(FSpherical(relativePos), rotation_Info);
+                        }
+                    }
+                }
+            }
+            // We divide the bow per 2 when we go down
+            treeWidthAtLevel /= 2;
+        }
+    }
+
+
+public:
+    /** Constructor
+      * @param inDevP the polynomial degree
+      * @param inThreeHeight the height of the tree
+      * @param inBoxWidth the size of the simulation box
+      * @param inPeriodicLevel the number of level upper to 0 that will be requiried
+      */
+    FSphericalRotationKernel(const int inDevP, const int inTreeHeight, const FReal inBoxWidth, const int inPeriodicLevel = 0)
+        : Parent(inDevP, inTreeHeight, inBoxWidth, inPeriodicLevel),
+          devM2lP(int(((inDevP*2)+1) * ((inDevP*2)+2) * 0.5)), preM2LTransitions(0), rotation_Info(inDevP) {
+        allocAndInit();
+    }
+
+    /** Copy constructor */
+    FSphericalRotationKernel(const FSphericalRotationKernel& other)
+        : Parent(other), devM2lP(other.devM2lP), preM2LTransitions(0), rotation_Info(other.devP) {
+        allocAndInit();
+    }
+
+    /** Destructor */
+    ~FSphericalRotationKernel(){
+        for(int idxLevel = -Parent::periodicLevels ; idxLevel < Parent::treeHeight ; ++idxLevel ){
+            for(int idx = 0 ; idx < 7*7*7 ; ++idx ){
+                preM2LTransitions[idxLevel + Parent::periodicLevels][idx].~RotationM2LTransfer();
+            }
+            delete[] reinterpret_cast<char*>(preM2LTransitions[idxLevel + Parent::periodicLevels]);
+        }
+        delete[] preM2LTransitions;
+    }
+
+    /** M2L with a cell and all the existing neighbors */
+    void M2L(CellClass* const FRestrict pole, const CellClass* distantNeighbors[189],
+             const int size, const int inLevel) {
+        const FTreeCoordinate& coordCenter = pole->getCoordinate();
+        // For all neighbors compute M2L
+        for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
+            const FTreeCoordinate& coordNeighbors = distantNeighbors[idxNeigh]->getCoordinate();
+            const RotationM2LTransfer& transitionVector = preM2LTransitions[inLevel + Parent::periodicLevels]
+                    [indexM2LTransition((coordCenter.getX() - coordNeighbors.getX()),
+                                        (coordCenter.getY() - coordNeighbors.getY()),
+                                        (coordCenter.getZ() - coordNeighbors.getZ()))];
+
+            multipoleToLocal(pole->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
+        }
+    }
+
+    /** Before Downward */
+    void M2L(CellClass* const FRestrict local, const CellClass* distantNeighbors[189],
+             const FTreeCoordinate neighborsRelativePositions[189],
+             const int size, const int inLevel) {
+        // For all neighbors compute M2L
+        for(int idxNeigh = 0 ; idxNeigh < size ; ++idxNeigh){
+            const RotationM2LTransfer& transitionVector = preM2LTransitions[inLevel + Parent::periodicLevels]
+                    [indexM2LTransition(neighborsRelativePositions[idxNeigh].getX(),
+                                        neighborsRelativePositions[idxNeigh].getY(),
+                                        neighborsRelativePositions[idxNeigh].getZ())];
+
+            multipoleToLocal(local->getLocal(), distantNeighbors[idxNeigh]->getMultipole(), transitionVector);
+        }
+    }
+
+
+    /** M2L With rotation
+      */
+    void multipoleToLocal(FComplexe*const FRestrict local_exp_target, const FComplexe* const FRestrict multipole_exp_src,
+                          const RotationM2LTransfer& transfer_M2L_rotation){
+
+        memset(rotation_Info.p_rot_multipole_exp, 0, RotationInfo::ZAxisExpensionSize(Parent::devP) * sizeof(FComplexe));
+        memset(rotation_Info.p_rot_local_exp, 0, RotationInfo::ZAxisExpensionSize(Parent::devP) * sizeof(FComplexe));
+
+        rotation_Rotate_multipole_expansion_terms(multipole_exp_src, transfer_M2L_rotation.rcc_outer, rotation_Info.p_rot_multipole_exp);
+
+        M2L_z_axis(rotation_Info.p_rot_local_exp, rotation_Info.p_rot_multipole_exp, transfer_M2L_rotation.outer_array);
+
+        rotation_Rotate_local_expansion_terms(rotation_Info.p_rot_local_exp, transfer_M2L_rotation.rcc_inner, local_exp_target);
+    }
+
+    /** Needed when doing the M2L */
+    void rotation_Rotate_multipole_expansion_terms(const FComplexe*const FRestrict multipole_exp,
+                                                   const FComplexe* const FRestrict * const FRestrict rcc_outer,
+                                                   FComplexe*const FRestrict rot_multipole_exp){
+
+        FComplexe* p_rot_multipole_exp = rot_multipole_exp;
+
+        for(int nu = 0 ; nu <= (Parent::devP/2) ; ++nu){
+            for(int j = nu; j <= (Parent::devP-nu) ; ++j){
+                const FComplexe* p_rcc_outer = &rcc_outer[j][RotationM2LTransfer::getRotationCoefP(j, nu, j)];
+                const FComplexe* p_multipole_exp = &multipole_exp[Parent::harmonic.getPreExpRedirJ(j) + j];
+                FReal minus_1_pow_k = FReal(j&1 ? -1 : 1);
+
+                for(int k = -j ; k < 0 ; ++k){ /* k < 0 */
+                    p_rot_multipole_exp->incReal( minus_1_pow_k *
+                                                  ((p_multipole_exp->getReal() * p_rcc_outer->getReal()) +
+                                                   (p_multipole_exp->getImag() * p_rcc_outer->getImag())) );
+                    p_rot_multipole_exp->incImag( minus_1_pow_k *
+                                                  ((p_multipole_exp->getReal() * p_rcc_outer->getImag()) -
+                                                   (p_multipole_exp->getImag() * p_rcc_outer->getReal())) );
+
+                    minus_1_pow_k = -minus_1_pow_k;
+                    --p_rcc_outer;
+                    --p_multipole_exp;
+                } /* for k */
+
+                for(int k = 0; k <= j ; ++k){ /* k >= 0 */
+                    p_rot_multipole_exp->incReal(
+                                ((p_multipole_exp->getReal() * p_rcc_outer->getReal()) -
+                                 (p_multipole_exp->getImag() * p_rcc_outer->getImag())) );
+                    p_rot_multipole_exp->incImag(
+                                ((p_multipole_exp->getReal() * p_rcc_outer->getImag()) +
+                                 (p_multipole_exp->getImag() * p_rcc_outer->getReal())) );
+
+                    --p_rcc_outer;
+                    ++p_multipole_exp;
+                } /* for k */
+
+                ++p_rot_multipole_exp;
+            } /* for j */
+        } /* for nu */
+    }
+
+    /** Needed when doing the M2L */
+    void M2L_z_axis(FComplexe* const FRestrict rot_local_exp,
+                    const FComplexe* const FRestrict rot_multipole_exp,
+                    const FReal* const outer_array){
+        FComplexe* p_rot_local_exp = rot_local_exp;
+
+        for(int j = 0 ; j <= Parent::devP; ++j){
+            const FReal* p_outer_array_j = outer_array + j;
+            const int stop_for_n = Parent::devP-j;
+            const int min_j = FMath::Min(j, stop_for_n);
+            for(int k = 0 ; k <= min_j ; ++k){
+                const FComplexe* p_rot_multipole_exp = rot_multipole_exp + k * (Parent::devP + 2 - k);
+                for(int n = k ; n <= stop_for_n ; ++n){
+                    p_rot_local_exp->incReal(p_rot_multipole_exp->getReal() * p_outer_array_j[n]);
+                    p_rot_local_exp->incImag(p_rot_multipole_exp->getImag() * p_outer_array_j[n]);
+                    ++p_rot_multipole_exp;
+                } /* for n */
+                ++p_rot_local_exp;
+            } /* for k */
+        } /* for j */
+    }
+
+    /** Needed when doing the M2L */
+    void rotation_Rotate_local_expansion_terms(const FComplexe*const rot_local_exp,
+                                               const FComplexe*const FRestrict *const FRestrict rcc_inner,
+                                               FComplexe*const FRestrict local_exp){
+        const int Q = Parent::devP/2;
+
+        FComplexe* FRestrict p_local_exp = local_exp;
+
+        for(int j = 0 ; j <= Q ; ++j){
+            const int min_j = j;
+            const FComplexe* const FRestrict p_rot_local_exp_j = &rot_local_exp[Parent::harmonic.getPreExpRedirJ(j) + j];
+
+            for (int nu = 0 ; nu <= j; ++nu){
+                const FComplexe* FRestrict p_rcc_inner = &rcc_inner[j][RotationM2LTransfer::getRotationCoefP(j, nu, -min_j)];
+                const FComplexe* FRestrict p_rot_local_exp = p_rot_local_exp_j;
+                FReal minus_1_pow_k = FReal(min_j&1 ? -1 : 1);
+
+                for(int k = -min_j ; k < 0 ; ++k){  /* k < 0 */
+                    p_local_exp->incReal( minus_1_pow_k *
+                                          ((p_rot_local_exp->getReal() * p_rcc_inner->getReal()) +
+                                           (p_rot_local_exp->getImag() * p_rcc_inner->getImag())));
+                            p_local_exp->incImag( minus_1_pow_k *
+                                                  ((p_rot_local_exp->getReal() * p_rcc_inner->getImag()) -
+                                                   (p_rot_local_exp->getImag() * p_rcc_inner->getReal())));
+
+                            minus_1_pow_k = -minus_1_pow_k;
+                    --p_rot_local_exp;
+                    ++p_rcc_inner;
+                } /* for k */
+
+                for(int k = 0; k <= min_j ; ++k){  /* k >= 0 */
+                    p_local_exp->incReal(
+                                ((p_rot_local_exp->getReal() * p_rcc_inner->getReal()) -
+                                 (p_rot_local_exp->getImag() * p_rcc_inner->getImag())));
+                            p_local_exp->incImag(
+                                ((p_rot_local_exp->getReal() * p_rcc_inner->getImag()) +
+                                 (p_rot_local_exp->getImag() * p_rcc_inner->getReal())));
+
+                            ++p_rot_local_exp;
+                    ++p_rcc_inner;
+                } /* for k */
+
+
+                ++p_local_exp;
+            } /* for nu */
+        } /* for j */
+
+        const FComplexe* FRestrict p_rot_local_exp_j = &rot_local_exp[Parent::harmonic.getPreExpRedirJ(Q) + Q];
+
+        for(int j = Q + 1; j <= Parent::devP ; ++j){
+            p_rot_local_exp_j += Parent::devP - j +1;
+            const int min_j = Parent::devP-j;
+
+            for(int nu = 0 ; nu <= j; ++nu){
+                const FComplexe* FRestrict p_rcc_inner = &rcc_inner[j][RotationM2LTransfer::getRotationCoefP(j, nu, -min_j)];
+                const FComplexe* FRestrict p_rot_local_exp = p_rot_local_exp_j;
+                FReal minus_1_pow_k = FReal(min_j&1 ? -1 : 1);
+
+                for(int k = -min_j ; k < 0; ++k){  /* k < 0 */
+                    p_local_exp->incReal( minus_1_pow_k *
+                                          ((p_rot_local_exp->getReal() * p_rcc_inner->getReal()) +
+                                           (p_rot_local_exp->getImag() * p_rcc_inner->getImag())));
+                            p_local_exp->incImag( minus_1_pow_k *
+                                                  ((p_rot_local_exp->getReal() * p_rcc_inner->getImag()) -
+                                                   (p_rot_local_exp->getImag() * p_rcc_inner->getReal())));
+
+                            minus_1_pow_k = -minus_1_pow_k;
+                    --p_rot_local_exp;
+                    ++p_rcc_inner;
+                } /* for k */
+                for(int k = 0; k<=min_j; ++k){  /* k >= 0 */
+                    p_local_exp->incReal(
+                                ((p_rot_local_exp->getReal() * p_rcc_inner->getReal()) -
+                                 (p_rot_local_exp->getImag() * p_rcc_inner->getImag())));
+                            p_local_exp->incImag(
+                                ((p_rot_local_exp->getReal() * p_rcc_inner->getImag()) +
+                                 (p_rot_local_exp->getImag() * p_rcc_inner->getReal())));
+
+                            ++p_rot_local_exp;
+                    ++p_rcc_inner;
+                } /* for k */
+                ++p_local_exp;
+            } /* for nu */
+        } /* for j */
+    }
+};
+
+
+
+#endif // FSPHERICALROTATIONKERNEL_HPP
diff --git a/Src/Utils/F3DPosition.hpp b/Src/Utils/F3DPosition.hpp
index 69349f2a4..b876a1b43 100644
--- a/Src/Utils/F3DPosition.hpp
+++ b/Src/Utils/F3DPosition.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef F3DPOSITION_HPP
 #define F3DPOSITION_HPP
diff --git a/Src/Utils/FAbstractSendable.hpp b/Src/Utils/FAbstractSendable.hpp
index 12c5a6360..e260c08f2 100644
--- a/Src/Utils/FAbstractSendable.hpp
+++ b/Src/Utils/FAbstractSendable.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FABSTRACTSENDABLE_HPP
 #define FABSTRACTSENDABLE_HPP
diff --git a/Src/Utils/FAssertable.hpp b/Src/Utils/FAssertable.hpp
index 7dd09fd85..884e41d59 100644
--- a/Src/Utils/FAssertable.hpp
+++ b/Src/Utils/FAssertable.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FASSERTABLE_HPP
 #define FASSERTABLE_HPP
diff --git a/Src/Utils/FBitonicSort.hpp b/Src/Utils/FBitonicSort.hpp
index 34f1d716c..775ca2561 100644
--- a/Src/Utils/FBitonicSort.hpp
+++ b/Src/Utils/FBitonicSort.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef BITONICSORT_HPP
 #define BITONICSORT_HPP
diff --git a/Src/Utils/FBlas.hpp b/Src/Utils/FBlas.hpp
index 908b59cc8..65c4add4a 100644
--- a/Src/Utils/FBlas.hpp
+++ b/Src/Utils/FBlas.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FBLAS_HPP
 #define FBLAS_HPP
diff --git a/Src/Utils/FComplexe.hpp b/Src/Utils/FComplexe.hpp
index 15acf6606..f183411a6 100644
--- a/Src/Utils/FComplexe.hpp
+++ b/Src/Utils/FComplexe.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FCOMPLEXE_HPP
 #define FCOMPLEXE_HPP
@@ -162,6 +157,13 @@ public:
         return *this;
     }
 
+    /** Mul a complexe by another "c*=c2" */
+    FComplexe& operator*=(const FReal& real){
+        this->complex[0] *= real;
+        this->complex[1] *= real;
+        return *this;
+    }
+
     /** Test if a complex is not a number */
     bool isNan() const {
         return FMath::IsNan(complex[1]) || FMath::IsNan(complex[0]);
diff --git a/Src/Utils/FDebug.cpp b/Src/Utils/FDebug.cpp
index 50683d257..d2bf1583c 100644
--- a/Src/Utils/FDebug.cpp
+++ b/Src/Utils/FDebug.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FDebug.hpp"
 #ifdef SCALFMM_USE_DEBUG
diff --git a/Src/Utils/FDebug.hpp b/Src/Utils/FDebug.hpp
index 2283d4574..42c7650f4 100644
--- a/Src/Utils/FDebug.hpp
+++ b/Src/Utils/FDebug.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FDEBUG_HPP
 #define FDEBUG_HPP
diff --git a/Src/Utils/FGlobal.hpp b/Src/Utils/FGlobal.hpp
index 216cf30fa..58a401101 100644
--- a/Src/Utils/FGlobal.hpp
+++ b/Src/Utils/FGlobal.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FGLOBAL_HPP
 #define FGLOBAL_HPP
diff --git a/Src/Utils/FMath.cpp b/Src/Utils/FMath.cpp
index 8e278984f..00c9bba74 100644
--- a/Src/Utils/FMath.cpp
+++ b/Src/Utils/FMath.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FMath.hpp"
 
diff --git a/Src/Utils/FMath.hpp b/Src/Utils/FMath.hpp
index 4f47105db..afed00ee7 100644
--- a/Src/Utils/FMath.hpp
+++ b/Src/Utils/FMath.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FMATH_HPP
 #define FMATH_HPP
diff --git a/Src/Utils/FMemStats.cpp b/Src/Utils/FMemStats.cpp
index 339e533c8..ff2c4205a 100644
--- a/Src/Utils/FMemStats.cpp
+++ b/Src/Utils/FMemStats.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FMemStats.h"
 
diff --git a/Src/Utils/FMemStats.h b/Src/Utils/FMemStats.h
index f4bcb84b6..b4dc2c4d9 100644
--- a/Src/Utils/FMemStats.h
+++ b/Src/Utils/FMemStats.h
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FMEMSTATS_H
 #define FMEMSTATS_H
diff --git a/Src/Utils/FMemUtils.hpp b/Src/Utils/FMemUtils.hpp
index 56b804a12..42dd1da2a 100644
--- a/Src/Utils/FMemUtils.hpp
+++ b/Src/Utils/FMemUtils.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FMEMUTILS_HPP
 #define FMEMUTILS_HPP
@@ -74,6 +69,14 @@ namespace FMemUtils {
             dest[idx] = source[idx];
         }
     }
+
+    /** Delete all */
+    template <class TypeClass>
+    void DeleteAll(TypeClass*const array[], const int size){
+        for(int idx = 0 ; idx < size ; ++idx){
+            delete[] array[idx];
+        }
+    }
 }
 
 #endif // FMEMUTILS_HPP
diff --git a/Src/Utils/FMpi.hpp b/Src/Utils/FMpi.hpp
index f360a9018..aad83ac0b 100644
--- a/Src/Utils/FMpi.hpp
+++ b/Src/Utils/FMpi.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FMPI_HPP
 #define FMPI_HPP
diff --git a/Src/Utils/FNoCopyable.hpp b/Src/Utils/FNoCopyable.hpp
index d524f0fbe..bb5ca6093 100644
--- a/Src/Utils/FNoCopyable.hpp
+++ b/Src/Utils/FNoCopyable.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FNOCOPYABLE_HPP
 #define FNOCOPYABLE_HPP
diff --git a/Src/Utils/FOmpBarrier.hpp b/Src/Utils/FOmpBarrier.hpp
index b46aca20d..7b5c4f7f4 100644
--- a/Src/Utils/FOmpBarrier.hpp
+++ b/Src/Utils/FOmpBarrier.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FOMPBARRIER_HPP
 #define FOMPBARRIER_HPP
diff --git a/Src/Utils/FParameters.hpp b/Src/Utils/FParameters.hpp
index 646b12b2c..d870d4622 100644
--- a/Src/Utils/FParameters.hpp
+++ b/Src/Utils/FParameters.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FPARAMETERS_H
 #define FPARAMETERS_H
diff --git a/Src/Utils/FQuickSort.hpp b/Src/Utils/FQuickSort.hpp
index 1aca9d1a6..f7c03f506 100644
--- a/Src/Utils/FQuickSort.hpp
+++ b/Src/Utils/FQuickSort.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FQUICKSORT_HPP
 #define FQUICKSORT_HPP
diff --git a/Src/Utils/FSpherical.hpp b/Src/Utils/FSpherical.hpp
index e1f452919..d62829832 100644
--- a/Src/Utils/FSpherical.hpp
+++ b/Src/Utils/FSpherical.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FSPHERICAL_HPP
 #define FSPHERICAL_HPP
diff --git a/Src/Utils/FTic.cpp b/Src/Utils/FTic.cpp
index 38801bd3f..b2e539297 100644
--- a/Src/Utils/FTic.cpp
+++ b/Src/Utils/FTic.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FTic.hpp"
 
diff --git a/Src/Utils/FTic.hpp b/Src/Utils/FTic.hpp
index 5315e9a3f..f32125aba 100644
--- a/Src/Utils/FTic.hpp
+++ b/Src/Utils/FTic.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FTIC_HPP
 #define FTIC_HPP
diff --git a/Src/Utils/FTrace.cpp b/Src/Utils/FTrace.cpp
index 58721ff29..2678308ab 100644
--- a/Src/Utils/FTrace.cpp
+++ b/Src/Utils/FTrace.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FTrace.hpp"
 #ifdef SCALFMM_USE_TRACE
diff --git a/Src/Utils/FTrace.hpp b/Src/Utils/FTrace.hpp
index bd59d5918..c43a482bb 100644
--- a/Src/Utils/FTrace.hpp
+++ b/Src/Utils/FTrace.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef FTRACE_HPP
 #define FTRACE_HPP
diff --git a/Tests/testDebug.cpp b/Tests/testDebug.cpp
index a3121d715..70df84f33 100644
--- a/Tests/testDebug.cpp
+++ b/Tests/testDebug.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "../Src/Utils/FDebug.hpp"
 
diff --git a/Tests/testFmbAlgorithm.cpp b/Tests/testFmbAlgorithm.cpp
index f3ceeb15e..c681a57c9 100644
--- a/Tests/testFmbAlgorithm.cpp
+++ b/Tests/testFmbAlgorithm.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
@@ -28,8 +23,10 @@
 #include "../Src/Core/FFmmAlgorithm.hpp"
 #include "../Src/Core/FFmmAlgorithmThread.hpp"
 
-#include "../Src/Fmb/FFmbKernels.hpp"
-#include "../Src/Fmb/FFmbComponents.hpp"
+#include "../Src/Kernels/FSphericalKernel.hpp"
+#include "../Src/Kernels/FSphericalCell.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
+#include "../Src/Components/FSimpleLeaf.hpp"
 
 #include "../Src/Files/FFmaLoader.hpp"
 
@@ -43,19 +40,19 @@
 
 // Simply create particles and try the kernels
 int main(int argc, char ** argv){
-    typedef FmbParticle             ParticleClass;
-    typedef FmbCell                 CellClass;
-    typedef FVector<ParticleClass>  ContainerClass;
+    typedef FSphericalParticle             ParticleClass;
+    typedef FSphericalCell                 CellClass;
+    typedef FVector<ParticleClass>         ContainerClass;
 
     typedef FSimpleLeaf<ParticleClass, ContainerClass >                     LeafClass;
     typedef FOctree<ParticleClass, CellClass, ContainerClass , LeafClass >  OctreeClass;
-    typedef FFmbKernels<ParticleClass, CellClass, ContainerClass >          KernelClass;
+    typedef FSphericalKernel<ParticleClass, CellClass, ContainerClass >     KernelClass;
 
     typedef FFmmAlgorithm<OctreeClass, ParticleClass, CellClass, ContainerClass, KernelClass, LeafClass > FmmClass;
     ///////////////////////What we do/////////////////////////////
     std::cout << ">> This executable has to be used to test fmb algorithm.\n";
     //////////////////////////////////////////////////////////////
-
+    const int DevP = FParameters::getValue(argc,argv,"-p", 8);
     const int NbLevels = FParameters::getValue(argc,argv,"-h", 5);
     const int SizeSubLevels = FParameters::getValue(argc,argv,"-sh", 3);
     FTic counter;
@@ -70,7 +67,7 @@ int main(int argc, char ** argv){
     }
 
     // -----------------------------------------------------
-
+    CellClass::Init(DevP);
     OctreeClass tree(NbLevels, SizeSubLevels, loader.getBoxWidth(), loader.getCenterOfBox());
 
     // -----------------------------------------------------
@@ -95,7 +92,7 @@ int main(int argc, char ** argv){
     std::cout << "Working on particles ..." << std::endl;
     counter.tic();
 
-    KernelClass kernels(NbLevels,loader.getBoxWidth());
+    KernelClass kernels(DevP, NbLevels,loader.getBoxWidth());
     FmmClass algo(&tree,&kernels);
     algo.execute();
 
diff --git a/Tests/testFmbAlgorithmProc.cpp b/Tests/testFmbAlgorithmProc.cpp
index 861487d6b..7b2d804a7 100644
--- a/Tests/testFmbAlgorithmProc.cpp
+++ b/Tests/testFmbAlgorithmProc.cpp
@@ -1,30 +1,24 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include "../Src/Utils/FTic.hpp"
 #include "../Src/Utils/FMpi.hpp"
-#include "../Src/Utils/FAbstractSendable.hpp"
 #include "../Src/Utils/FParameters.hpp"
 
 #include "../Src/Containers/FOctree.hpp"
 #include "../Src/Containers/FVector.hpp"
 
-#include "../Src/Fmb/FExtendFmbCell.hpp"
-#include "../Src/Fmb/FFmbComponents.hpp"
-#include "../Src/Fmb/FFmbKernels.hpp"
+#include "../Src/Kernels/FSphericalKernel.hpp"
+#include "../Src/Kernels/FSphericalCell.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
 
 #include "../Src/Core/FFmmAlgorithmThreadProc.hpp"
 #include "../Src/Core/FFmmAlgorithmThread.hpp"
@@ -53,11 +47,11 @@
 // to test equality between good and potentialy bad solution
 ///////////////////////////////////////////////////////
 /** To compare data */
-bool isEqualPole(const FmbSendableCell& me, const FmbSendableCell& other, FReal*const cumul){
+bool isEqualPole(const FSphericalCell& me, const FSphericalCell& other, FReal*const cumul){
     //return memcmp(multipole_exp, other.multipole_exp, sizeof(FComplexe)*MultipoleSize) == 0 &&
     //        memcmp(local_exp, other.local_exp, sizeof(FComplexe)*MultipoleSize) == 0;
     *cumul = 0.0;
-    for(int idx = 0; idx < FExtendFmbCell::MultipoleSize; ++idx){
+    for(int idx = 0; idx < FSphericalCell::GetPoleSize(); ++idx){
         *cumul += FMath::Abs( me.getMultipole()[idx].getImag() - other.getMultipole()[idx].getImag() );
         *cumul += FMath::Abs( me.getMultipole()[idx].getReal() - other.getMultipole()[idx].getReal() );
     }
@@ -66,11 +60,11 @@ bool isEqualPole(const FmbSendableCell& me, const FmbSendableCell& other, FReal*
 }
 
 /** To compare data */
-bool isEqualLocal(const FmbSendableCell& me, const FmbSendableCell& other, FReal*const cumul){
+bool isEqualLocal(const FSphericalCell& me, const FSphericalCell& other, FReal*const cumul){
     //return memcmp(multipole_exp, other.multipole_exp, sizeof(FComplexe)*MultipoleSize) == 0 &&
     //        memcmp(local_exp, other.local_exp, sizeof(FComplexe)*MultipoleSize) == 0;
     *cumul = 0.0;
-    for(int idx = 0; idx < FExtendFmbCell::MultipoleSize; ++idx){
+    for(int idx = 0; idx < FSphericalCell::GetLocalSize(); ++idx){
         *cumul += FMath::Abs( me.getLocal()[idx].getImag() - other.getLocal()[idx].getImag() );
         *cumul += FMath::Abs( me.getLocal()[idx].getReal() - other.getLocal()[idx].getReal() );
     }
@@ -103,10 +97,10 @@ void ValidateFMMAlgoProc(OctreeClass* const badTree,
                 }
                 else{
                     FReal cumul;
-                    if( !octreeIterator.getCurrentCell()->isEqualPole(*octreeIteratorValide.getCurrentCell(),&cumul) ){
+                    if( !isEqualPole(*octreeIterator.getCurrentCell(),*octreeIteratorValide.getCurrentCell(),&cumul) ){
                         std::cout << "Pole Data are different." << " Cumul " << cumul << std::endl;
                     }
-                    if( !octreeIterator.getCurrentCell()->isEqualLocal(*octreeIteratorValide.getCurrentCell(),&cumul) ){
+                    if( !isEqualLocal(*octreeIterator.getCurrentCell(),*octreeIteratorValide.getCurrentCell(),&cumul) ){
                         std::cout << "Local Data are different." << " Cumul " << cumul << std::endl;
                     }
                 }
@@ -175,13 +169,13 @@ void ValidateFMMAlgoProc(OctreeClass* const badTree,
 
 // Simply create particles and try the kernels
 int main(int argc, char ** argv){
-    typedef FmbParticle             ParticleClass;
-    typedef FmbSendableCell                 CellClass;
-    typedef FVector<ParticleClass>  ContainerClass;
+    typedef FSphericalParticle             ParticleClass;
+    typedef FSendableSphericalCell         CellClass;
+    typedef FVector<ParticleClass>         ContainerClass;
 
     typedef FSimpleLeaf<ParticleClass, ContainerClass >                     LeafClass;
     typedef FOctree<ParticleClass, CellClass, ContainerClass , LeafClass >  OctreeClass;
-    typedef FFmbKernels<ParticleClass, CellClass, ContainerClass >          KernelClass;
+    typedef FSphericalKernel<ParticleClass, CellClass, ContainerClass >          KernelClass;
 
     typedef FFmmAlgorithmThreadProc<OctreeClass, ParticleClass, CellClass, ContainerClass, KernelClass, LeafClass > FmmClass;
     typedef FFmmAlgorithmThread<OctreeClass, ParticleClass, CellClass, ContainerClass, KernelClass, LeafClass > FmmClassNoProc;
@@ -191,6 +185,7 @@ int main(int argc, char ** argv){
 
     FMpi app( argc, argv);
 
+    const int DevP = FParameters::getValue(argc,argv,"-p", 8);
     const int NbLevels = FParameters::getValue(argc,argv,"-h", 5);
     const int SizeSubLevels = FParameters::getValue(argc,argv,"-sh", 3);
     FTic counter;
@@ -205,7 +200,7 @@ int main(int argc, char ** argv){
     }
 
     // -----------------------------------------------------
-
+    CellClass::Init(DevP);
     OctreeClass tree(NbLevels, SizeSubLevels,loader.getBoxWidth(),loader.getCenterOfBox());
 
     // -----------------------------------------------------
@@ -244,7 +239,7 @@ int main(int argc, char ** argv){
     std::cout << "Working on particles ..." << std::endl;
     counter.tic();
 
-    KernelClass kernels(NbLevels,loader.getBoxWidth());
+    KernelClass kernels(DevP, NbLevels,loader.getBoxWidth());
     FmmClass algo(app.global(),&tree,&kernels);
     algo.execute();
 
diff --git a/Tests/testFmbBlasAlgorithm.cpp b/Tests/testFmbBlasAlgorithm.cpp
index 2427e3160..793b16f72 100644
--- a/Tests/testFmbBlasAlgorithm.cpp
+++ b/Tests/testFmbBlasAlgorithm.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
@@ -30,11 +25,10 @@
 
 #include "../Src/Components/FSimpleLeaf.hpp"
 
-#include "../Src/Fmb/FFmbKernelsBlockBlas.hpp"
-#include "../Src/Fmb/FFmbKernelsBlas.hpp"
-#include "../Src/Fmb/FFmbKernels.hpp"
-#include "../Src/Fmb/FFmbComponents.hpp"
-#include "../Src/Fmb/FFmbComponents.hpp"
+#include "../Src/Kernels/FSphericalKernel.hpp"
+#include "../Src/Kernels/FSphericalBlasKernel.hpp"
+#include "../Src/Kernels/FSphericalCell.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
 
 #include "../Src/Files/FFmaScanfLoader.hpp"
 
@@ -47,19 +41,19 @@
 
 // Simply create particles and try the kernels
 int main(int argc, char ** argv){
-    typedef FmbParticle             ParticleClass;
-    typedef FmbCell                 CellClass;
-    typedef FVector<ParticleClass>  ContainerClass;
+    typedef FSphericalParticle             ParticleClass;
+    typedef FSphericalCell                 CellClass;
+    typedef FVector<ParticleClass>         ContainerClass;
 
     typedef FSimpleLeaf<ParticleClass, ContainerClass >                     LeafClass;
     typedef FOctree<ParticleClass, CellClass, ContainerClass , LeafClass >  OctreeClass;
-    typedef FFmbKernelsBlockBlas<ParticleClass, CellClass, ContainerClass > KernelClass;
+    typedef FSphericalBlasKernel<ParticleClass, CellClass, ContainerClass > KernelClass;
 
     typedef FFmmAlgorithm<OctreeClass, ParticleClass, CellClass, ContainerClass, KernelClass, LeafClass > FmmClass;
     ///////////////////////What we do/////////////////////////////
     std::cout << ">> This executable has to be used to test fmb algorithm.\n";
     //////////////////////////////////////////////////////////////
-
+    const int DevP = FParameters::getValue(argc,argv,"-p", 8);
     const int NbLevels = FParameters::getValue(argc,argv,"-h", 5);
     const int SizeSubLevels = FParameters::getValue(argc,argv,"-sh", 3);
     FTic counter;
@@ -74,7 +68,7 @@ int main(int argc, char ** argv){
     }
 
     // -----------------------------------------------------
-
+    CellClass::Init(DevP);
     OctreeClass tree(NbLevels, SizeSubLevels,loader.getBoxWidth(),loader.getCenterOfBox());
 
     // -----------------------------------------------------
@@ -99,7 +93,7 @@ int main(int argc, char ** argv){
     std::cout << "Working on particles ..." << std::endl;
     counter.tic();
 
-    KernelClass kernels(NbLevels,loader.getBoxWidth());
+    KernelClass kernels(DevP, NbLevels, loader.getBoxWidth());
 
     FmmClass algo(&tree,&kernels);
     algo.execute();
diff --git a/Tests/testFmbEwalAlgorithm.cpp b/Tests/testFmbEwalAlgorithm.cpp
index ef558d327..4c1352b40 100644
--- a/Tests/testFmbEwalAlgorithm.cpp
+++ b/Tests/testFmbEwalAlgorithm.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
@@ -27,16 +22,17 @@
 
 #include "../Src/Core/FFmmAlgorithmPeriodic.hpp"
 
-#include "../Src/Kernels/FSphericalCell.hpp"
 #include "../Src/Kernels/FSphericalKernel.hpp"
-#include "../Src/Fmb/FFmbComponents.hpp"
+#include "../Src/Kernels/FSphericalCell.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
 
 #include "../Src/Files/FEwalLoader.hpp"
+#include "../Src/Components/FSimpleLeaf.hpp"
 
 /** Ewal particle is used in the gadget program
   * here we try to make the same simulation
   */
-class EwalParticle : public FmbParticle {
+class EwalParticle : public FSphericalParticle {
 public:
     // Type of particle
     enum Type{
@@ -75,7 +71,7 @@ public:
 // Simply create particles and try the kernels
 int main(int argc, char ** argv){
     typedef EwalParticle            ParticleClass;
-    typedef FSphericalCell            CellClass;
+    typedef FSphericalCell          CellClass;
     typedef FVector<ParticleClass>  ContainerClass;
 
     typedef FSimpleLeaf<ParticleClass, ContainerClass >                     LeafClass;
diff --git a/Tests/testFmbGalaxyCsv.cpp b/Tests/testFmbGalaxyCsv.cpp
index 8b9b66a7f..284835ee9 100644
--- a/Tests/testFmbGalaxyCsv.cpp
+++ b/Tests/testFmbGalaxyCsv.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
@@ -30,7 +25,7 @@
 
 #include "../Src/Kernels/FSphericalKernel.hpp"
 #include "../Src/Kernels/FSphericalCell.hpp"
-#include "../Src/Fmb/FFmbComponents.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
 
 #include "../Src/Extensions/FExtendVelocity.hpp"
 
@@ -38,8 +33,9 @@
 #include "../Src/Files/FFmaLoader.hpp"
 #include "../Src/Arranger/FOctreeArranger.hpp"
 
+#include "../Src/Components/FSimpleLeaf.hpp"
 
-class FmbVeloParticle : public FmbParticle, public FExtendVelocity {
+class FmmVeloParticle : public FSphericalParticle, public FExtendVelocity {
 };
 
 template <class ParticleClass>
@@ -72,8 +68,8 @@ public:
 
 // Simply create particles and try the kernels
 int main(int argc, char ** argv){
-    typedef FmbVeloParticle         ParticleClass;
-    typedef FSphericalCell            CellClass;
+    typedef FmmVeloParticle         ParticleClass;
+    typedef FSphericalCell          CellClass;
     typedef FVector<ParticleClass>  ContainerClass;
 
     typedef FSimpleLeaf<ParticleClass, ContainerClass >                     LeafClass;
diff --git a/Tests/testFmbRotation.cpp b/Tests/testFmbRotation.cpp
new file mode 100644
index 000000000..0a6ac6d76
--- /dev/null
+++ b/Tests/testFmbRotation.cpp
@@ -0,0 +1,127 @@
+// ===================================================================================
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
+// ===================================================================================
+
+#include <iostream>
+
+#include <cstdio>
+#include <cstdlib>
+
+#include "../Src/Utils/FTic.hpp"
+#include "../Src/Utils/FParameters.hpp"
+
+#include "../Src/Containers/FOctree.hpp"
+#include "../Src/Containers/FVector.hpp"
+
+#include "../Src/Core/FFmmAlgorithm.hpp"
+#include "../Src/Core/FFmmAlgorithmThread.hpp"
+
+#include "../Src/Components/FSimpleLeaf.hpp"
+
+#include "../Src/Kernels/FSphericalRotationKernel.hpp"
+#include "../Src/Kernels/FSphericalCell.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
+
+#include "../Src/Files/FFmaScanfLoader.hpp"
+
+/** This program show an example of use of
+  * the fmm basic algo
+  * it also check that eachh particles is little or longer
+  * related that each other
+  */
+
+
+// Simply create particles and try the kernels
+int main(int argc, char ** argv){
+    typedef FSphericalParticle             ParticleClass;
+    typedef FSphericalCell                 CellClass;
+    typedef FVector<ParticleClass>         ContainerClass;
+
+    typedef FSimpleLeaf<ParticleClass, ContainerClass >                     LeafClass;
+    typedef FOctree<ParticleClass, CellClass, ContainerClass , LeafClass >  OctreeClass;
+    typedef FSphericalRotationKernel<ParticleClass, CellClass, ContainerClass > KernelClass;
+
+    typedef FFmmAlgorithm<OctreeClass, ParticleClass, CellClass, ContainerClass, KernelClass, LeafClass > FmmClass;
+    ///////////////////////What we do/////////////////////////////
+    std::cout << ">> This executable has to be used to test fmb algorithm.\n";
+    //////////////////////////////////////////////////////////////
+    const int DevP = FParameters::getValue(argc,argv,"-p", 8);
+    const int NbLevels = FParameters::getValue(argc,argv,"-h", 5);
+    const int SizeSubLevels = FParameters::getValue(argc,argv,"-sh", 3);
+    FTic counter;
+
+    const char* const filename = FParameters::getStr(argc,argv,"-f", "../Data/test20k.fma");
+    std::cout << "Opening : " << filename << "\n";
+
+    FFmaScanfLoader<ParticleClass> loader(filename);
+    if(!loader.isOpen()){
+        std::cout << "Loader Error, " << filename << " is missing\n";
+        return 1;
+    }
+
+    // -----------------------------------------------------
+    CellClass::Init(DevP);
+    OctreeClass tree(NbLevels, SizeSubLevels,loader.getBoxWidth(),loader.getCenterOfBox());
+
+    // -----------------------------------------------------
+
+    std::cout << "Creating & Inserting " << loader.getNumberOfParticles() << " particles ..." << std::endl;
+    std::cout << "\tHeight : " << NbLevels << " \t sub-height : " << SizeSubLevels << std::endl;
+    counter.tic();
+
+    {
+        ParticleClass particleToFill;
+        for(int idxPart = 0 ; idxPart < loader.getNumberOfParticles() ; ++idxPart){
+            loader.fillParticle(particleToFill);
+            tree.insert(particleToFill);
+        }
+    }
+
+    counter.tac();
+    std::cout << "Done  " << "(@Creating and Inserting Particles = " << counter.elapsed() << "s)." << std::endl;
+
+    // -----------------------------------------------------
+
+    std::cout << "Working on particles ..." << std::endl;
+    counter.tic();
+
+    KernelClass kernels(DevP, NbLevels, loader.getBoxWidth());
+
+    FmmClass algo(&tree,&kernels);
+    algo.execute();
+
+    counter.tac();
+    std::cout << "Done  " << "(@Algorithm = " << counter.elapsed() << "s)." << std::endl;
+
+    { // get sum forces&potential
+        FReal potential = 0;
+        F3DPosition forces;
+        typename OctreeClass::Iterator octreeIterator(&tree);
+        octreeIterator.gotoBottomLeft();
+        do{
+            typename ContainerClass::ConstBasicIterator iter(*octreeIterator.getCurrentListTargets());
+            while( iter.hasNotFinished() ){
+                potential += iter.data().getPotential() * iter.data().getPhysicalValue();
+                forces += iter.data().getForces();
+
+                iter.gotoNext();
+            }
+        } while(octreeIterator.moveRight());
+
+        std::cout << "Foces Sum  x = " << forces.getX() << " y = " << forces.getY() << " z = " << forces.getZ() << std::endl;
+        std::cout << "Potential = " << potential << std::endl;
+    }
+
+    return 0;
+}
+
+
+
+
diff --git a/Tests/testFmbTsmAlgorithm.cpp b/Tests/testFmbTsmAlgorithm.cpp
index e4f0cdd69..4cba5ca4a 100644
--- a/Tests/testFmbTsmAlgorithm.cpp
+++ b/Tests/testFmbTsmAlgorithm.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
@@ -29,8 +24,9 @@
 
 #include "../Src/Core/FFmmAlgorithmTsm.hpp"
 
-#include "../Src/Fmb/FFmbKernels.hpp"
-#include "../Src/Fmb/FFmbComponents.hpp"
+#include "../Src/Kernels/FSphericalKernel.hpp"
+#include "../Src/Kernels/FSphericalCell.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
 
 #include "../Src/Files/FFmaTsmLoader.hpp"
 
@@ -43,19 +39,19 @@
 
 // Simply create particles and try the kernels
 int main(int argc, char ** argv){
-    typedef FmbTypedParticle        ParticleClass;
-    typedef FmbTypedCell            CellClass;
-    typedef FVector<ParticleClass>  ContainerClass;
+    typedef FTypedSphericalParticle        ParticleClass;
+    typedef FTypedSphericalCell            CellClass;
+    typedef FVector<ParticleClass>         ContainerClass;
 
     typedef FTypedLeaf<ParticleClass, ContainerClass >                      LeafClass;
     typedef FOctree<ParticleClass, CellClass, ContainerClass , LeafClass >  OctreeClass;
-    typedef FFmbKernels<ParticleClass, CellClass, ContainerClass >          KernelClass;
+    typedef FSphericalKernel<ParticleClass, CellClass, ContainerClass >          KernelClass;
 
     typedef FFmmAlgorithmTsm<OctreeClass, ParticleClass, CellClass, ContainerClass, KernelClass, LeafClass > FmmClass;
     ///////////////////////What we do/////////////////////////////
     std::cout << ">> This executable has to be used to test Fmb on a Tsm system.\n";
     //////////////////////////////////////////////////////////////
-
+    const int DevP = FParameters::getValue(argc,argv,"-p", 8);
     const int NbLevels = FParameters::getValue(argc,argv,"-h", 5);
     const int SizeSubLevels = FParameters::getValue(argc,argv,"-sh", 3);
     FTic counter;
@@ -70,7 +66,7 @@ int main(int argc, char ** argv){
     }
 
     // -----------------------------------------------------
-
+    CellClass::Init(DevP);
     OctreeClass tree(NbLevels, SizeSubLevels,loader.getBoxWidth(),loader.getCenterOfBox());
 
     // -----------------------------------------------------
@@ -95,7 +91,7 @@ int main(int argc, char ** argv){
     std::cout << "Working on particles ..." << std::endl;
     counter.tic();
 
-    KernelClass kernels(NbLevels,loader.getBoxWidth());
+    KernelClass kernels(DevP, NbLevels, loader.getBoxWidth());
 
     FmmClass algo(&tree,&kernels);
     algo.execute();
diff --git a/Tests/testFmbTsmNoTsm.cpp b/Tests/testFmbTsmNoTsm.cpp
index b30b0d2d0..01f43ad70 100644
--- a/Tests/testFmbTsmNoTsm.cpp
+++ b/Tests/testFmbTsmNoTsm.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
@@ -25,9 +20,9 @@
 #include "../Src/Containers/FOctree.hpp"
 #include "../Src/Containers/FVector.hpp"
 
-#include "../Src/Fmb/FExtendFmbCell.hpp"
-#include "../Src/Fmb/FFmbComponents.hpp"
-#include "../Src/Fmb/FFmbKernels.hpp"
+#include "../Src/Kernels/FSphericalKernel.hpp"
+#include "../Src/Kernels/FSphericalCell.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
 
 #include "../Src/Core/FFmmAlgorithm.hpp"
 #include "../Src/Core/FFmmAlgorithmTsm.hpp"
@@ -47,23 +42,23 @@
 
 // Simply create particles and try the kernels
 int main(int argc, char ** argv){
-    typedef FmbParticle             ParticleClass;
-    typedef FmbCell                 CellClass;
-    typedef FVector<ParticleClass>  ContainerClass;
+    typedef FSphericalParticle             ParticleClass;
+    typedef FSphericalCell                 CellClass;
+    typedef FVector<ParticleClass>         ContainerClass;
 
     typedef FSimpleLeaf<ParticleClass, ContainerClass >                      LeafClass;
     typedef FOctree<ParticleClass, CellClass, ContainerClass , LeafClass >  OctreeClass;
-    typedef FFmbKernels<ParticleClass, CellClass, ContainerClass >          KernelClass;
+    typedef FSphericalKernel<ParticleClass, CellClass, ContainerClass >          KernelClass;
 
     typedef FFmmAlgorithmThread<OctreeClass, ParticleClass, CellClass, ContainerClass, KernelClass, LeafClass > FmmClass;
 
-    typedef FmbTypedParticle             ParticleClassTyped;
-    typedef FmbTypedCell                 CellClassTyped;
+    typedef FTypedSphericalParticle             ParticleClassTyped;
+    typedef FTypedSphericalCell                 CellClassTyped;
     typedef FVector<ParticleClassTyped>  ContainerClassTyped;
 
     typedef FTypedLeaf<ParticleClassTyped, ContainerClassTyped >                      LeafClassTyped;
     typedef FOctree<ParticleClassTyped, CellClassTyped, ContainerClassTyped , LeafClassTyped >  OctreeClassTyped;
-    typedef FFmbKernels<ParticleClassTyped, CellClassTyped, ContainerClassTyped >          KernelClassTyped;
+    typedef FSphericalKernel<ParticleClassTyped, CellClassTyped, ContainerClassTyped >          KernelClassTyped;
 
     typedef FFmmAlgorithmThreadTsm<OctreeClassTyped, ParticleClassTyped, CellClassTyped, ContainerClassTyped, KernelClassTyped, LeafClassTyped > FmmClassTyped;
 
@@ -71,7 +66,7 @@ int main(int argc, char ** argv){
     std::cout << ">> This executable has to be used to test Fmb on a Tsm system.\n";
     std::cout << ">> It compares the results between Tms and no Tms (except P2P & L2P).\n";
     //////////////////////////////////////////////////////////////
-
+    const int DevP = FParameters::getValue(argc,argv,"-p", 8);
     const int NbLevels = FParameters::getValue(argc,argv,"-h", 5);
     const int SizeSubLevels = FParameters::getValue(argc,argv,"-sh", 3);
     FTic counter;
@@ -82,6 +77,8 @@ int main(int argc, char ** argv){
 
 
     // -----------------------------------------------------
+    CellClass::Init(DevP);
+
     OctreeClass tree(NbLevels, SizeSubLevels,BoxWidth,CenterOfBox);
     OctreeClassTyped treeTyped(NbLevels, SizeSubLevels,BoxWidth,CenterOfBox);
 
@@ -123,8 +120,8 @@ int main(int argc, char ** argv){
     std::cout << "Working on particles ..." << std::endl;
     counter.tic();
 
-    KernelClass kernels(NbLevels,BoxWidth);
-    KernelClassTyped kernelsTyped(NbLevels,BoxWidth);
+    KernelClass kernels(DevP, NbLevels, BoxWidth);
+    KernelClassTyped kernelsTyped(DevP, NbLevels, BoxWidth);
 
     FmmClass algo(&tree,&kernels);
     FmmClassTyped algoTyped(&treeTyped,&kernelsTyped);
@@ -153,7 +150,7 @@ int main(int argc, char ** argv){
             do{
                 bool poleDiff = false;
                 bool localDiff = false;
-                for(int idxValues = 0 ; idxValues < FExtendFmbCell::MultipoleSize && !(poleDiff && localDiff); ++idxValues){
+                for(int idxValues = 0 ; idxValues < FSphericalCell::GetPoleSize() && !(poleDiff && localDiff); ++idxValues){
                     const FComplexe pole = octreeIterator.getCurrentCell()->getMultipole()[idxValues];
                     const FComplexe poleTyped = octreeIteratorTyped.getCurrentCell()->getMultipole()[idxValues];
                     if(!FMath::LookEqual(pole.getImag(),poleTyped.getImag()) || !FMath::LookEqual(pole.getReal(),poleTyped.getReal())){
@@ -161,6 +158,8 @@ int main(int argc, char ** argv){
                         printf("Pole diff imag( %.15e , %.15e ) real( %.15e , %.15e)\n",
                                pole.getImag(),poleTyped.getImag(),pole.getReal(),poleTyped.getReal());
                     }
+                }
+                for(int idxValues = 0 ; idxValues < FSphericalCell::GetPoleSize() && !(poleDiff && localDiff); ++idxValues){
                     const FComplexe local = octreeIterator.getCurrentCell()->getLocal()[idxValues];
                     const FComplexe localTyped = octreeIteratorTyped.getCurrentCell()->getLocal()[idxValues];
                     if(!FMath::LookEqual(local.getImag(),localTyped.getImag()) || !FMath::LookEqual(local.getReal(),localTyped.getReal())){
diff --git a/Tests/testFmmAlgorithm.cpp b/Tests/testFmmAlgorithm.cpp
index 64fbb48ca..84ea8dea5 100644
--- a/Tests/testFmmAlgorithm.cpp
+++ b/Tests/testFmmAlgorithm.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testFmmAlgorithmPeriodic.cpp b/Tests/testFmmAlgorithmPeriodic.cpp
index 298ebf568..c43c71aab 100644
--- a/Tests/testFmmAlgorithmPeriodic.cpp
+++ b/Tests/testFmmAlgorithmPeriodic.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 
diff --git a/Tests/testFmmAlgorithmProc.cpp b/Tests/testFmmAlgorithmProc.cpp
index 9e885ff76..90472cd0f 100644
--- a/Tests/testFmmAlgorithmProc.cpp
+++ b/Tests/testFmmAlgorithmProc.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include "../Src/Utils/FMpi.hpp"
diff --git a/Tests/testFmmAlgorithmProcPeriodic.cpp b/Tests/testFmmAlgorithmProcPeriodic.cpp
index a581f3785..880f88afa 100644
--- a/Tests/testFmmAlgorithmProcPeriodic.cpp
+++ b/Tests/testFmmAlgorithmProcPeriodic.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 
diff --git a/Tests/testFmmAlgorithmTsm.cpp b/Tests/testFmmAlgorithmTsm.cpp
index 31d2d8450..ab4baccb7 100644
--- a/Tests/testFmmAlgorithmTsm.cpp
+++ b/Tests/testFmmAlgorithmTsm.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testFmmDemonstration.cpp b/Tests/testFmmDemonstration.cpp
index ed79da83a..40f5cd117 100644
--- a/Tests/testFmmDemonstration.cpp
+++ b/Tests/testFmmDemonstration.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testLoader.cpp b/Tests/testLoader.cpp
index 24a4e3a00..8fb4adac2 100644
--- a/Tests/testLoader.cpp
+++ b/Tests/testLoader.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testLoaderCreate.cpp b/Tests/testLoaderCreate.cpp
index e776c7e92..168c1f2d6 100644
--- a/Tests/testLoaderCreate.cpp
+++ b/Tests/testLoaderCreate.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testLoaderFMA.cpp b/Tests/testLoaderFMA.cpp
index e417a6c6d..d02f7b578 100644
--- a/Tests/testLoaderFMA.cpp
+++ b/Tests/testLoaderFMA.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testLoaderFMABinCreate.cpp b/Tests/testLoaderFMABinCreate.cpp
index 7c043fa0a..2b6ba72db 100644
--- a/Tests/testLoaderFMABinCreate.cpp
+++ b/Tests/testLoaderFMABinCreate.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testLoaderFMACreate.cpp b/Tests/testLoaderFMACreate.cpp
index 5e9b8dfaf..ac4a1eae8 100644
--- a/Tests/testLoaderFMACreate.cpp
+++ b/Tests/testLoaderFMACreate.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testLoaderFMACreateSphere.cpp b/Tests/testLoaderFMACreateSphere.cpp
index 06ec55c74..a67aa7a65 100644
--- a/Tests/testLoaderFMACreateSphere.cpp
+++ b/Tests/testLoaderFMACreateSphere.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testLoaderFMATsm.cpp b/Tests/testLoaderFMATsm.cpp
index bf4ab675e..599ee4186 100644
--- a/Tests/testLoaderFMATsm.cpp
+++ b/Tests/testLoaderFMATsm.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testLoaderFMATsmCreate.cpp b/Tests/testLoaderFMATsmCreate.cpp
index b9f2e3eb5..5e51c9292 100644
--- a/Tests/testLoaderFMATsmCreate.cpp
+++ b/Tests/testLoaderFMATsmCreate.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testMemStats.cpp b/Tests/testMemStats.cpp
index bf2e91622..f58a4a7a2 100644
--- a/Tests/testMemStats.cpp
+++ b/Tests/testMemStats.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testMortonIndex.cpp b/Tests/testMortonIndex.cpp
index 84b5f055d..8f78f7163 100644
--- a/Tests/testMortonIndex.cpp
+++ b/Tests/testMortonIndex.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testOctree.cpp b/Tests/testOctree.cpp
index f276a8be0..139c093e6 100644
--- a/Tests/testOctree.cpp
+++ b/Tests/testOctree.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testOctreeIter.cpp b/Tests/testOctreeIter.cpp
index 7d7c8173d..50d5d918f 100644
--- a/Tests/testOctreeIter.cpp
+++ b/Tests/testOctreeIter.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testOctreePrintMorton.cpp b/Tests/testOctreePrintMorton.cpp
index 25ee82033..eca795ee1 100644
--- a/Tests/testOctreePrintMorton.cpp
+++ b/Tests/testOctreePrintMorton.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testOctreeRearrange.cpp b/Tests/testOctreeRearrange.cpp
index a6a805ffe..b3a5bb90b 100644
--- a/Tests/testOctreeRearrange.cpp
+++ b/Tests/testOctreeRearrange.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testOctreeRearrangeProc.cpp b/Tests/testOctreeRearrangeProc.cpp
index 50dc14366..9011a9221 100644
--- a/Tests/testOctreeRearrangeProc.cpp
+++ b/Tests/testOctreeRearrangeProc.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testStatsTree.cpp b/Tests/testStatsTree.cpp
index 8b1101081..bb199b8b3 100644
--- a/Tests/testStatsTree.cpp
+++ b/Tests/testStatsTree.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/Tests/testTic.cpp b/Tests/testTic.cpp
index 27e165b90..525892311 100644
--- a/Tests/testTic.cpp
+++ b/Tests/testTic.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include <iostream>
 #include "../Src/Utils/FTic.hpp"
diff --git a/Tests/testTreeIO.cpp b/Tests/testTreeIO.cpp
index 27012041f..5303f5c79 100644
--- a/Tests/testTreeIO.cpp
+++ b/Tests/testTreeIO.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 
 #include <iostream>
diff --git a/UTests/FUTester.hpp b/UTests/FUTester.hpp
index a4ee9adf3..4424e9aca 100644
--- a/UTests/FUTester.hpp
+++ b/UTests/FUTester.hpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #ifndef UTESTER_HPP
 #define UTESTER_HPP
diff --git a/UTests/utestBoolArray.cpp b/UTests/utestBoolArray.cpp
index 49be6dc93..f7b2e2f07 100644
--- a/UTests/utestBoolArray.cpp
+++ b/UTests/utestBoolArray.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FUTester.hpp"
 
diff --git a/UTests/utestFmb.cpp b/UTests/utestFmb.cpp
index 22e09aabb..11a1ee18d 100644
--- a/UTests/utestFmb.cpp
+++ b/UTests/utestFmb.cpp
@@ -1,26 +1,20 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "../Src/Containers/FOctree.hpp"
 #include "../Src/Containers/FVector.hpp"
 
 #include "../Src/Kernels/FSphericalCell.hpp"
 #include "../Src/Kernels/FSphericalKernel.hpp"
-
-#include "../Src/Fmb/FFmbKernels.hpp"
-#include "../Src/Fmb/FFmbComponents.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
+#include "../Src/Components/FSimpleLeaf.hpp"
 
 #include "../Src/Files/FFmaBinLoader.hpp"
 #include "../Src/Files/FTreeIO.hpp"
@@ -35,7 +29,7 @@
   */
 
 /** The result of a previous simulation has been saved and will be oponed */
-class FmbParticleSerial : public FmbParticle, public FTreeIO::FAbstractSerial {
+class ParticleSerial : public FSphericalParticle, public FTreeIO::FAbstractSerial {
 public:
     void write(std::ofstream*const stream) const{
         save(stream, getPosition().getX());
@@ -68,21 +62,20 @@ public:
 class ComputeCellSerial : public FSphericalCell, public FTreeIO::FAbstractSerial {
 public:
     void write(std::ofstream*const stream) const{
-        saveArray(stream, FSphericalCell::getMultipole(), FSphericalCell::ExpP);
-        saveArray(stream, FSphericalCell::getLocal(), FSphericalCell::ExpP);
+        saveArray(stream, FSphericalCell::getMultipole(), FSphericalCell::GetPoleSize());
+        saveArray(stream, FSphericalCell::getLocal(), FSphericalCell::GetLocalSize());
     }
 
     void read(std::ifstream*const stream){
-        restoreArray(stream, FSphericalCell::getMultipole(), FSphericalCell::ExpP);
-        restoreArray(stream, FSphericalCell::getLocal(), FSphericalCell::ExpP);
+        restoreArray(stream, FSphericalCell::getMultipole(), FSphericalCell::GetPoleSize());
+        restoreArray(stream, FSphericalCell::getLocal(), FSphericalCell::GetLocalSize());
     }
 };
 
-typedef FmbParticleSerial       ParticleClass;
+typedef ParticleSerial       ParticleClass;
 typedef ComputeCellSerial             CellClass;
 typedef FVector<ParticleClass>  ContainerClass;
 
-//typedef FFmbKernels<ParticleClass, CellClass, ContainerClass >          KernelClass;
 typedef FSphericalKernel<ParticleClass, CellClass, ContainerClass >          KernelClass;
 
 typedef FSimpleLeaf<ParticleClass, ContainerClass >                     LeafClass;
@@ -193,10 +186,10 @@ class TestFmb : public FUTester<TestFmb> {
                     }
 
                     assert( memcmp(testOctreeIterator.getCurrentCell()->getLocal(),
-                                   goodOctreeIterator.getCurrentCell()->getLocal(), CellClass::GetExp() * sizeof(FComplexe)) == 0);
+                                   goodOctreeIterator.getCurrentCell()->getLocal(), CellClass::GetLocalSize() * sizeof(FComplexe)) == 0);
 
                     assert( memcmp(testOctreeIterator.getCurrentCell()->getMultipole(),
-                                   goodOctreeIterator.getCurrentCell()->getMultipole(),CellClass::GetExp() * sizeof(FComplexe)) == 0);
+                                   goodOctreeIterator.getCurrentCell()->getMultipole(),CellClass::GetPoleSize() * sizeof(FComplexe)) == 0);
 
                     if(!testOctreeIterator.moveRight()){
                         if(goodOctreeIterator.moveRight()){
diff --git a/UTests/utestFmbDirect.cpp b/UTests/utestFmbDirect.cpp
index ee4af0e20..2684f05a2 100644
--- a/UTests/utestFmbDirect.cpp
+++ b/UTests/utestFmbDirect.cpp
@@ -1,27 +1,22 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "../Src/Containers/FOctree.hpp"
 #include "../Src/Containers/FVector.hpp"
 
-#include "../Src/Fmb/FFmbKernels.hpp"
-#include "../Src/Fmb/FFmbComponents.hpp"
-
 #include "../Src/Kernels/FSphericalCell.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
 
+#include "../Src/Components/FSimpleLeaf.hpp"
 #include "../Src/Kernels/FSphericalKernel.hpp"
+#include "../Src/Kernels/FSphericalBlasKernel.hpp"
 
 #include "../Src/Files/FFmaBinLoader.hpp"
 #include "../Src/Files/FTreeIO.hpp"
@@ -36,7 +31,7 @@
   */
 
 /** We need to know the position of the particle in the array */
-class IndexedParticle : public FmbParticle {
+class IndexedParticle : public FSphericalParticle {
     int index;
 public:
     IndexedParticle(): index(-1){}
@@ -52,12 +47,11 @@ public:
 
 class TestFmbDirect : public FUTester<TestFmbDirect> {
     typedef IndexedParticle         ParticleClass;
-    //typedef FmbCell            CellClass;
     typedef FSphericalCell            CellClass;
     typedef FVector<ParticleClass>  ContainerClass;
 
-    //typedef FFmbKernels<ParticleClass, CellClass, ContainerClass >          KernelClass;
-    typedef FSphericalKernel<ParticleClass, CellClass, ContainerClass >          KernelClass;
+    typedef FSphericalBlasKernel<ParticleClass, CellClass, ContainerClass >          KernelClass;
+    //typedef FSphericalKernel<ParticleClass, CellClass, ContainerClass >          KernelClass;
 
     typedef FSimpleLeaf<ParticleClass, ContainerClass >                     LeafClass;
     typedef FOctree<ParticleClass, CellClass, ContainerClass , LeafClass >  OctreeClass;
diff --git a/UTests/utestFmbDirectPeriodic.cpp b/UTests/utestFmbDirectPeriodic.cpp
index 447ee7e78..927489efe 100644
--- a/UTests/utestFmbDirectPeriodic.cpp
+++ b/UTests/utestFmbDirectPeriodic.cpp
@@ -1,27 +1,21 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "../Src/Containers/FOctree.hpp"
 #include "../Src/Containers/FVector.hpp"
 
-#include "../Src/Fmb/FFmbComponents.hpp"
-
 #include "../Src/Kernels/FSphericalCell.hpp"
-
 #include "../Src/Kernels/FSphericalKernel.hpp"
+#include "../Src/Kernels/FSphericalParticle.hpp"
 
+#include "../Src/Components/FSimpleLeaf.hpp"
 #include "../Src/Core/FFmmAlgorithmPeriodic.hpp"
 
 #include "FUTester.hpp"
@@ -33,7 +27,7 @@
 /*
   In this test we compare the fmm results and the direct results.
   */
-class IndexedParticle : public FmbParticle {
+class IndexedParticle : public FSphericalParticle {
     int index;
 public:
     IndexedParticle(): index(-1){}
@@ -135,16 +129,16 @@ class TestFmbDirectPeriodic : public FUTester<TestFmbDirectPeriodic> {
         }
 
         Print("Direct...");
-        for(int idxTarget = 0 ; idxTarget < directNbPart ; idxTarget += 8){
+        /*for(int idxTarget = 0 ; idxTarget < directNbPart ; idxTarget += 8){
             for(int idxOther = idxTarget + 8 ; idxOther < directNbPart ; idxOther += 8){
                 kernels.directInteractionMutual(&particles[idxTarget], &particles[idxOther]);
             }
-        }//todo exchange
-        /*for(int idxTarget = 0 ; idxTarget < directNbPart ; ++idxTarget){
+        }//todo exchange*/
+        for(int idxTarget = 0 ; idxTarget < directNbPart ; ++idxTarget){
             for(int idxOther = idxTarget + 1 ; idxOther < directNbPart ; ++idxOther){
                 kernels.directInteractionMutual(&particles[idxTarget], &particles[idxOther]);
             }
-        }*/
+        }
 
         // Compare
         Print("Compute Diff...");
diff --git a/UTests/utestList.cpp b/UTests/utestList.cpp
index e89f4643b..304320e3a 100644
--- a/UTests/utestList.cpp
+++ b/UTests/utestList.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FUTester.hpp"
 
diff --git a/UTests/utestMorton.cpp b/UTests/utestMorton.cpp
index 0df8e6568..b945d0ca1 100644
--- a/UTests/utestMorton.cpp
+++ b/UTests/utestMorton.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FUTester.hpp"
 
diff --git a/UTests/utestOctree.cpp b/UTests/utestOctree.cpp
index c7bd3736c..3f644f874 100644
--- a/UTests/utestOctree.cpp
+++ b/UTests/utestOctree.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FUTester.hpp"
 
diff --git a/UTests/utestParameters.cpp b/UTests/utestParameters.cpp
index 599822234..5fde70a90 100644
--- a/UTests/utestParameters.cpp
+++ b/UTests/utestParameters.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FUTester.hpp"
 
diff --git a/UTests/utestQuicksort.cpp b/UTests/utestQuicksort.cpp
index 6184139d3..a05ca002f 100644
--- a/UTests/utestQuicksort.cpp
+++ b/UTests/utestQuicksort.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FUTester.hpp"
 #include "../Src/Utils/FQuickSort.hpp"
diff --git a/UTests/utestTest.cpp b/UTests/utestTest.cpp
index 843022430..40f7d9061 100644
--- a/UTests/utestTest.cpp
+++ b/UTests/utestTest.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FUTester.hpp"
 
diff --git a/UTests/utestVector.cpp b/UTests/utestVector.cpp
index c5372d745..4d6d38877 100644
--- a/UTests/utestVector.cpp
+++ b/UTests/utestVector.cpp
@@ -1,17 +1,12 @@
 // ===================================================================================
-// Ce LOGICIEL "ScalFmm" est couvert par le copyright Inria 20xx-2012.
-// Inria détient tous les droits de propriété sur le LOGICIEL, et souhaite que
-// la communauté scientifique l'utilise afin de le tester et de l'évaluer.
-// Inria donne gracieusement le droit d'utiliser ce LOGICIEL. Toute utilisation
-// dans un but lucratif ou à des fins commerciales est interdite sauf autorisation
-// expresse et préalable d'Inria.
-// Toute utilisation hors des limites précisées ci-dessus et réalisée sans l'accord
-// expresse préalable d'Inria constituerait donc le délit de contrefaçon.
-// Le LOGICIEL étant un produit en cours de développement, Inria ne saurait assurer
-// aucune responsabilité et notamment en aucune manière et en aucun cas, être tenu
-// de répondre d'éventuels dommages directs ou indirects subits par l'utilisateur.
-// Tout utilisateur du LOGICIEL s'engage à communiquer à Inria ses remarques
-// relatives à l'usage du LOGICIEL
+// Logiciel initial: ScalFmm Version 0.5
+// Co-auteurs : Olivier Coulaud, Bérenger Bramas.
+// Propriétaires : INRIA.
+// Copyright © 2011-2012, diffusé sous les termes et conditions d’une licence propriétaire.
+// Initial software: ScalFmm Version 0.5
+// Co-authors: Olivier Coulaud, Bérenger Bramas.
+// Owners: INRIA.
+// Copyright © 2011-2012, spread under the terms and conditions of a proprietary license.
 // ===================================================================================
 #include "FUTester.hpp"
 
-- 
GitLab