From eee6bf36733751141959abf079aec0c254d7354f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkovsky@mmg.fjfi.cvut.cz>
Date: Thu, 2 Jan 2020 11:02:32 +0100
Subject: [PATCH] Swapped template parameters EntitiesProcessor and UserData in
 the grid traverser

---
 .../HeatEquationBenchmarkProblem_impl.h       |  9 ++--
 .../Functions/MeshFunctionEvaluator_impl.h    | 18 +++----
 src/TNL/Matrices/MatrixSetter_impl.h          |  6 +--
 src/TNL/Meshes/GridDetails/Traverser_Grid1D.h | 24 +++++-----
 .../GridDetails/Traverser_Grid1D_impl.h       | 24 +++++-----
 src/TNL/Meshes/GridDetails/Traverser_Grid2D.h | 36 +++++++-------
 .../GridDetails/Traverser_Grid2D_impl.h       | 36 +++++++-------
 src/TNL/Meshes/GridDetails/Traverser_Grid3D.h | 48 +++++++++----------
 .../GridDetails/Traverser_Grid3D_impl.h       | 48 +++++++++----------
 src/TNL/Solvers/PDE/ExplicitUpdater.h         |  6 +--
 src/TNL/Solvers/PDE/LinearSystemAssembler.h   |  6 +--
 11 files changed, 123 insertions(+), 138 deletions(-)

diff --git a/src/Benchmarks/HeatEquation/HeatEquationBenchmarkProblem_impl.h b/src/Benchmarks/HeatEquation/HeatEquationBenchmarkProblem_impl.h
index 3f0c919486..8fa3ede245 100644
--- a/src/Benchmarks/HeatEquation/HeatEquationBenchmarkProblem_impl.h
+++ b/src/Benchmarks/HeatEquation/HeatEquationBenchmarkProblem_impl.h
@@ -597,8 +597,7 @@ getExplicitUpdate( const RealType& time,
             Pointers::synchronizeSmartPointersOnDevice< Devices::Cuda >();
             int cudaErr;
             Meshes::Traverser< MeshType, Cell > meshTraverser;
-            meshTraverser.template processInteriorEntities< UserData,
-                                                      InteriorEntitiesProcessor >
+            meshTraverser.template processInteriorEntities< InteriorEntitiesProcessor >
                                                           ( mesh,
                                                             userData );
              // */
@@ -613,8 +612,7 @@ getExplicitUpdate( const RealType& time,
                return;
             }
             
-            meshTraverser.template processBoundaryEntities< UserData,
-                                                      BoundaryEntitiesProcessor >
+            meshTraverser.template processBoundaryEntities< BoundaryEntitiesProcessor >
                                                           ( mesh,
                                                             userData );
             // */
@@ -701,8 +699,7 @@ applyBoundaryConditions( const RealType& time,
       userData.boundaryConditions = &this->boundaryConditionPointer.template getData< Devices::Cuda >();
       Meshes::Traverser< MeshType, Cell > meshTraverser;
       // */
-      /*meshTraverser.template processBoundaryEntities< UserData,
-                                                BoundaryEntitiesProcessor >
+      /*meshTraverser.template processBoundaryEntities< BoundaryEntitiesProcessor >
                                                     ( mesh,
                                                       userData );*/
 
diff --git a/src/TNL/Functions/MeshFunctionEvaluator_impl.h b/src/TNL/Functions/MeshFunctionEvaluator_impl.h
index 48eb961785..edef34134e 100644
--- a/src/TNL/Functions/MeshFunctionEvaluator_impl.h
+++ b/src/TNL/Functions/MeshFunctionEvaluator_impl.h
@@ -130,37 +130,31 @@ evaluateEntities( OutMeshFunctionPointer& meshFunction,
    {
       case all:
          if( outFunctionMultiplicator )
-            meshTraverser.template processAllEntities< TraverserUserData,
-                                                       AdditionEntitiesProcessor >
+            meshTraverser.template processAllEntities< AdditionEntitiesProcessor >
                                                      ( meshFunction->getMeshPointer(),
                                                        userData );
          else
-            meshTraverser.template processAllEntities< TraverserUserData,
-                                                       AssignmentEntitiesProcessor >
+            meshTraverser.template processAllEntities< AssignmentEntitiesProcessor >
                                                     ( meshFunction->getMeshPointer(),
                                                       userData );
          break;
       case interior:
          if( outFunctionMultiplicator )
-            meshTraverser.template processInteriorEntities< TraverserUserData,
-                                                            AdditionEntitiesProcessor >
+            meshTraverser.template processInteriorEntities< AdditionEntitiesProcessor >
                                                           ( meshFunction->getMeshPointer(),
                                                             userData );
          else
-            meshTraverser.template processInteriorEntities< TraverserUserData,
-                                                            AssignmentEntitiesProcessor >
+            meshTraverser.template processInteriorEntities< AssignmentEntitiesProcessor >
                                                           ( meshFunction->getMeshPointer(),
                                                             userData );
          break;
       case boundary:
          if( outFunctionMultiplicator )
-            meshTraverser.template processBoundaryEntities< TraverserUserData,
-                                                            AdditionEntitiesProcessor >
+            meshTraverser.template processBoundaryEntities< AdditionEntitiesProcessor >
                                                           ( meshFunction->getMeshPointer(),
                                                             userData );
          else
-            meshTraverser.template processBoundaryEntities< TraverserUserData,
-                                                            AssignmentEntitiesProcessor >
+            meshTraverser.template processBoundaryEntities< AssignmentEntitiesProcessor >
                                                           ( meshFunction->getMeshPointer(),
                                                             userData );
          break;
diff --git a/src/TNL/Matrices/MatrixSetter_impl.h b/src/TNL/Matrices/MatrixSetter_impl.h
index 6f8993f772..c26c54af7b 100644
--- a/src/TNL/Matrices/MatrixSetter_impl.h
+++ b/src/TNL/Matrices/MatrixSetter_impl.h
@@ -33,12 +33,10 @@ getCompressedRowLengths( const MeshPointer& meshPointer,
                    &boundaryConditionsPointer.template getData< DeviceType >(),
                    &rowLengthsPointer.template modifyData< DeviceType >() );
       Meshes::Traverser< MeshType, EntityType > meshTraverser;
-      meshTraverser.template processBoundaryEntities< TraverserUserData,
-                                                      TraverserBoundaryEntitiesProcessor >
+      meshTraverser.template processBoundaryEntities< TraverserBoundaryEntitiesProcessor >
                                                     ( meshPointer,
                                                       userData );
-      meshTraverser.template processInteriorEntities< TraverserUserData,
-                                                      TraverserInteriorEntitiesProcessor >
+      meshTraverser.template processInteriorEntities< TraverserInteriorEntitiesProcessor >
                                                     ( meshPointer,
                                                       userData );
    }
diff --git a/src/TNL/Meshes/GridDetails/Traverser_Grid1D.h b/src/TNL/Meshes/GridDetails/Traverser_Grid1D.h
index feedcea043..d6b49f9bad 100644
--- a/src/TNL/Meshes/GridDetails/Traverser_Grid1D.h
+++ b/src/TNL/Meshes/GridDetails/Traverser_Grid1D.h
@@ -29,18 +29,18 @@ class Traverser< Meshes::Grid< 1, Real, Device, Index >, GridEntity, 1 >
       using DistributedGridType = Meshes::DistributedMeshes::DistributedMesh< GridType >;
       using SubdomainOverlapsType = typename DistributedGridType::SubdomainOverlapsType;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processBoundaryEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processInteriorEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processAllEntities( const GridPointer& gridPointer,
                                UserData& userData ) const;
 };
@@ -59,18 +59,18 @@ class Traverser< Meshes::Grid< 1, Real, Device, Index >, GridEntity, 0 >
       using DistributedGridType = Meshes::DistributedMeshes::DistributedMesh< GridType >;
       using SubdomainOverlapsType = typename DistributedGridType::SubdomainOverlapsType;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processBoundaryEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processInteriorEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processAllEntities( const GridPointer& gridPointer,
                                UserData& userData ) const;
 };
diff --git a/src/TNL/Meshes/GridDetails/Traverser_Grid1D_impl.h b/src/TNL/Meshes/GridDetails/Traverser_Grid1D_impl.h
index 7413315385..d1f21cde2f 100644
--- a/src/TNL/Meshes/GridDetails/Traverser_Grid1D_impl.h
+++ b/src/TNL/Meshes/GridDetails/Traverser_Grid1D_impl.h
@@ -24,8 +24,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 1, Real, Device, Index >, GridEntity, 1 >::
 processBoundaryEntities( const GridPointer& gridPointer,
@@ -76,8 +76,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 1, Real, Device, Index >, GridEntity, 1 >::
 processInteriorEntities( const GridPointer& gridPointer,
@@ -131,8 +131,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 1, Real, Device, Index >, GridEntity, 1 >::
 processAllEntities(
@@ -176,8 +176,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 1, Real, Device, Index >, GridEntity, 0 >::
 processBoundaryEntities( const GridPointer& gridPointer,
@@ -200,8 +200,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 1, Real, Device, Index >, GridEntity, 0 >::
 processInteriorEntities( const GridPointer& gridPointer,
@@ -224,8 +224,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 1, Real, Device, Index >, GridEntity, 0 >::
 processAllEntities(
diff --git a/src/TNL/Meshes/GridDetails/Traverser_Grid2D.h b/src/TNL/Meshes/GridDetails/Traverser_Grid2D.h
index 2e1f1a68d1..3e0322b61d 100644
--- a/src/TNL/Meshes/GridDetails/Traverser_Grid2D.h
+++ b/src/TNL/Meshes/GridDetails/Traverser_Grid2D.h
@@ -29,17 +29,17 @@ class Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 2 >
       using DistributedGridType = Meshes::DistributedMeshes::DistributedMesh< GridType >;
       using SubdomainOverlapsType = typename DistributedGridType::SubdomainOverlapsType;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processBoundaryEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processInteriorEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processAllEntities( const GridPointer& gridPointer,
                                UserData& userData ) const;
 };
@@ -57,18 +57,18 @@ class Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 1 >
       using DistributedGridType = Meshes::DistributedMeshes::DistributedMesh< GridType >;
       using SubdomainOverlapsType = typename DistributedGridType::SubdomainOverlapsType;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processBoundaryEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processInteriorEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processAllEntities( const GridPointer& gridPointer,
                                UserData& userData ) const;
 };
@@ -86,18 +86,18 @@ class Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 0 >
       using DistributedGridType = Meshes::DistributedMeshes::DistributedMesh< GridType >;
       using SubdomainOverlapsType = typename DistributedGridType::SubdomainOverlapsType;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processBoundaryEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processInteriorEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processAllEntities( const GridPointer& gridPointer,
                                UserData& userData ) const;
 };
diff --git a/src/TNL/Meshes/GridDetails/Traverser_Grid2D_impl.h b/src/TNL/Meshes/GridDetails/Traverser_Grid2D_impl.h
index 7809c9739c..9a8a2b062e 100644
--- a/src/TNL/Meshes/GridDetails/Traverser_Grid2D_impl.h
+++ b/src/TNL/Meshes/GridDetails/Traverser_Grid2D_impl.h
@@ -22,8 +22,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 2 >::
 processBoundaryEntities( const GridPointer& gridPointer,
@@ -101,8 +101,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 2 >::
 processInteriorEntities( const GridPointer& gridPointer,
@@ -156,8 +156,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 2 >::
 processAllEntities( const GridPointer& gridPointer,
@@ -202,8 +202,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 1 >::
 processBoundaryEntities( const GridPointer& gridPointer,
@@ -239,8 +239,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 1 >::
 processInteriorEntities( const GridPointer& gridPointer,
@@ -276,8 +276,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 1 >::
 processAllEntities( const GridPointer& gridPointer,
@@ -313,8 +313,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 0 >::
 processBoundaryEntities( const GridPointer& gridPointer,
@@ -338,8 +338,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 0 >::
 processInteriorEntities( const GridPointer& gridPointer,
@@ -363,8 +363,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 2, Real, Device, Index >, GridEntity, 0 >::
 processAllEntities( const GridPointer& gridPointer,
diff --git a/src/TNL/Meshes/GridDetails/Traverser_Grid3D.h b/src/TNL/Meshes/GridDetails/Traverser_Grid3D.h
index d0eaa25767..71b2cd1d6b 100644
--- a/src/TNL/Meshes/GridDetails/Traverser_Grid3D.h
+++ b/src/TNL/Meshes/GridDetails/Traverser_Grid3D.h
@@ -29,17 +29,17 @@ class Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 3 >
       using DistributedGridType = Meshes::DistributedMeshes::DistributedMesh< GridType >;
       using SubdomainOverlapsType = typename DistributedGridType::SubdomainOverlapsType;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processBoundaryEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processInteriorEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processAllEntities( const GridPointer& gridPointer,
                                UserData& userData ) const;
 };
@@ -57,17 +57,17 @@ class Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 2 >
       using DistributedGridType = Meshes::DistributedMeshes::DistributedMesh< GridType >;
       using SubdomainOverlapsType = typename DistributedGridType::SubdomainOverlapsType;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processBoundaryEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processInteriorEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processAllEntities( const GridPointer& gridPointer,
                                UserData& userData ) const;
 };
@@ -85,18 +85,18 @@ class Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 1 >
       using DistributedGridType = Meshes::DistributedMeshes::DistributedMesh< GridType >;
       using SubdomainOverlapsType = typename DistributedGridType::SubdomainOverlapsType;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processBoundaryEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processInteriorEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processAllEntities( const GridPointer& gridPointer,
                                UserData& userData ) const;
 };
@@ -114,18 +114,18 @@ class Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 0 >
       using DistributedGridType = Meshes::DistributedMeshes::DistributedMesh< GridType >;
       using SubdomainOverlapsType = typename DistributedGridType::SubdomainOverlapsType;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processBoundaryEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processInteriorEntities( const GridPointer& gridPointer,
                                     UserData& userData ) const;
 
-      template< typename UserData,
-                typename EntitiesProcessor >
+      template< typename EntitiesProcessor,
+                typename UserData >
       void processAllEntities( const GridPointer& gridPointer,
                                UserData& userData ) const;
 };
diff --git a/src/TNL/Meshes/GridDetails/Traverser_Grid3D_impl.h b/src/TNL/Meshes/GridDetails/Traverser_Grid3D_impl.h
index ec242e3677..a43c4bfb24 100644
--- a/src/TNL/Meshes/GridDetails/Traverser_Grid3D_impl.h
+++ b/src/TNL/Meshes/GridDetails/Traverser_Grid3D_impl.h
@@ -24,8 +24,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 3 >::
 processBoundaryEntities( const GridPointer& gridPointer,
@@ -125,8 +125,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 3 >::
 processInteriorEntities( const GridPointer& gridPointer,
@@ -186,8 +186,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 3 >::
 processAllEntities( const GridPointer& gridPointer,
@@ -231,8 +231,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 2 >::
 processBoundaryEntities( const GridPointer& gridPointer,
@@ -278,8 +278,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 2 >::
 processInteriorEntities( const GridPointer& gridPointer,
@@ -325,8 +325,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 2 >::
 processAllEntities( const GridPointer& gridPointer,
@@ -374,8 +374,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 1 >::
 processBoundaryEntities( const GridPointer& gridPointer,
@@ -421,8 +421,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 1 >::
 processInteriorEntities( const GridPointer& gridPointer,
@@ -468,8 +468,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 1 >::
 processAllEntities( const GridPointer& gridPointer,
@@ -517,8 +517,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 0 >::
 processBoundaryEntities( const GridPointer& gridPointer,
@@ -542,8 +542,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 0 >::
 processInteriorEntities( const GridPointer& gridPointer,
@@ -567,8 +567,8 @@ template< typename Real,
           typename Device,
           typename Index,
           typename GridEntity >
-   template< typename UserData,
-             typename EntitiesProcessor >
+   template< typename EntitiesProcessor,
+             typename UserData >
 void
 Traverser< Meshes::Grid< 3, Real, Device, Index >, GridEntity, 0 >::
 processAllEntities( const GridPointer& gridPointer,
diff --git a/src/TNL/Solvers/PDE/ExplicitUpdater.h b/src/TNL/Solvers/PDE/ExplicitUpdater.h
index 042c067141..74c9952294 100644
--- a/src/TNL/Solvers/PDE/ExplicitUpdater.h
+++ b/src/TNL/Solvers/PDE/ExplicitUpdater.h
@@ -142,8 +142,7 @@ class ExplicitUpdater
          this->userData.u = &uPointer.template modifyData< DeviceType >();
          this->userData.fu = &fuPointer.template modifyData< DeviceType >();
          Meshes::Traverser< MeshType, EntityType > meshTraverser;
-         meshTraverser.template processInteriorEntities< TraverserUserData,
-                                                         TraverserInteriorEntitiesProcessor >
+         meshTraverser.template processInteriorEntities< TraverserInteriorEntitiesProcessor >
                                                        ( meshPointer,
                                                          userData );
       }
@@ -161,8 +160,7 @@ class ExplicitUpdater
          this->userData.time = time;
          this->userData.u = &uPointer.template modifyData< DeviceType >();         
          Meshes::Traverser< MeshType, EntityType > meshTraverser;
-         meshTraverser.template processBoundaryEntities< TraverserUserData,
-                                             TraverserBoundaryEntitiesProcessor >
+         meshTraverser.template processBoundaryEntities< TraverserBoundaryEntitiesProcessor >
                                            ( meshPointer,
                                              userData );
 
diff --git a/src/TNL/Solvers/PDE/LinearSystemAssembler.h b/src/TNL/Solvers/PDE/LinearSystemAssembler.h
index b47ed34d78..b74cb2660f 100644
--- a/src/TNL/Solvers/PDE/LinearSystemAssembler.h
+++ b/src/TNL/Solvers/PDE/LinearSystemAssembler.h
@@ -122,12 +122,10 @@ class LinearSystemAssembler
       this->userData.matrix = ( void* ) &matrixPointer.template modifyData< DeviceType >();
       this->userData.b = &bPointer.template modifyData< DeviceType >();
       Meshes::Traverser< MeshType, EntityType > meshTraverser;
-      meshTraverser.template processBoundaryEntities< TraverserUserData,
-                                                      TraverserBoundaryEntitiesProcessor< Matrix> >
+      meshTraverser.template processBoundaryEntities< TraverserBoundaryEntitiesProcessor< Matrix> >
                                                     ( meshPointer,
                                                       userData );
-      meshTraverser.template processInteriorEntities< TraverserUserData,
-                                                      TraverserInteriorEntitiesProcessor< Matrix > >
+      meshTraverser.template processInteriorEntities< TraverserInteriorEntitiesProcessor< Matrix > >
                                                     ( meshPointer,
                                                       userData );
       
-- 
GitLab