diff --git a/Tests/Kernels/testRotationPeriodicBench.cpp b/Tests/Kernels/testRotationPeriodicBench.cpp
index c6f3d1a2f269b57b52dbe0f1e155ecedb4619119..1bbe7d0a4ee123fed26b051d6920a8ee64a1b21b 100644
--- a/Tests/Kernels/testRotationPeriodicBench.cpp
+++ b/Tests/Kernels/testRotationPeriodicBench.cpp
@@ -56,8 +56,11 @@ int main(int argc, char** argv){
     const int MinLevelAbove  = FParameters::getValue(argc, argv, "-min",-1);
     const int MaxLevelAbove  = FParameters::getValue(argc, argv, "-max",3);
     const int IncLevelAbove  = 1;
-    const int NbParticles    = FParameters::getValue(argc, argv, "-nb",6);;
+    const int NbParticles    = FParameters::getValue(argc, argv, "-nb",6);
+    const int NbParticlesPrint    = FParameters::getValue(argc, argv, "-nbprint", FMath::Min(6, NbParticles));
+    FAssertLF(NbParticlesPrint <= NbParticles , "The number of printer particles cannot be higer than the number of particles.");
 
+    std::cout << "The application will use " << NbParticles << " but studies only " << NbParticlesPrint << " of them." << std::endl;
 
     /////////////////////////////////////////////////
     // Insert particlePositions in tree and copy into array
@@ -70,7 +73,7 @@ int main(int argc, char** argv){
         loader.fillParticle(&particlePositions[idxPart]);
     }
 
-    FReal* allPotential = new FReal[(MaxLevelAbove-MinLevelAbove)*NbParticles];
+    FReal* allPotential = new FReal[(MaxLevelAbove-MinLevelAbove)*NbParticlesPrint];
 
     /////////////////////////////////////////////////
     // Test for different periodicity for FMM!!
@@ -106,7 +109,9 @@ int main(int argc, char** argv){
             const FReal*const potentials = leaf->getTargets()->getPotentials();
             const FVector<int>& indexes =  leaf->getTargets()->getIndexes();
             for(int idxPart = 0 ; idxPart < leaf->getTargets()->getNbParticles() ; ++idxPart){
-                allPotential[(idxLevelAbove - MinLevelAbove)*NbParticles + indexes[idxPart]] = potentials[idxPart];
+                if( indexes[idxPart] < NbParticlesPrint){
+                    allPotential[(idxLevelAbove - MinLevelAbove)*NbParticlesPrint + indexes[idxPart]] = potentials[idxPart];
+                }
             }
         });
     }
@@ -121,10 +126,10 @@ int main(int argc, char** argv){
         std::cout << idxLevelAbove << "\t";
     }
     std::cout << "\n";
-    for(int idxPart = 0 ; idxPart < NbParticles ; ++idxPart){
+    for(int idxPart = 0 ; idxPart < NbParticlesPrint ; ++idxPart){
         std::cout << idxPart << "\t";
         for(int idxLevelAbove = MinLevelAbove; idxLevelAbove < MaxLevelAbove ; idxLevelAbove += IncLevelAbove){
-            std::cout << allPotential[(idxLevelAbove - MinLevelAbove)*NbParticles + idxPart] << "\t";
+            std::cout << allPotential[(idxLevelAbove - MinLevelAbove)*NbParticlesPrint + idxPart] << "\t";
         }
         std::cout << "\n";
     }
@@ -135,11 +140,11 @@ int main(int argc, char** argv){
         std::cout << idxLevelAbove << "/" << idxLevelAbove-1 << "\t";
     }
     std::cout << "\n";
-    for(int idxPart = 0 ; idxPart < NbParticles ; ++idxPart){
+    for(int idxPart = 0 ; idxPart < NbParticlesPrint ; ++idxPart){
         std::cout << idxPart << "\t";
         for(int idxLevelAbove = MinLevelAbove +1; idxLevelAbove < MaxLevelAbove ; idxLevelAbove += IncLevelAbove){
-            std::cout << FMath::Abs((allPotential[(idxLevelAbove - MinLevelAbove)*NbParticles + idxPart]
-                         / allPotential[(idxLevelAbove - MinLevelAbove - 1)*NbParticles + idxPart])-1.0) << "\t";
+            std::cout << FMath::Abs((allPotential[(idxLevelAbove - MinLevelAbove)*NbParticlesPrint + idxPart]
+                         / allPotential[(idxLevelAbove - MinLevelAbove - 1)*NbParticlesPrint + idxPart])-1.0) << "\t";
         }
         std::cout << "\n";
     }