From 83980f235c04505412879caf1871852a8fb93eb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkjak@fjfi.cvut.cz>
Date: Thu, 20 Oct 2016 19:26:33 +0200
Subject: [PATCH] Cosmetic changes in mesh initializer

---
 .../MeshDetails/initializer/MeshInitializer.h | 73 +++++++++----------
 .../MeshSuperentityStorageInitializer.h       |  8 +-
 .../MeshDetails/layers/MeshStorageLayer.h     |  3 +-
 src/UnitTests/Meshes/MeshEntityTest.h         | 50 ++++++-------
 src/UnitTests/Meshes/MeshTest.h               | 52 ++++++-------
 5 files changed, 91 insertions(+), 95 deletions(-)

diff --git a/src/TNL/Meshes/MeshDetails/initializer/MeshInitializer.h b/src/TNL/Meshes/MeshDetails/initializer/MeshInitializer.h
index e690d35918..33b6b7700c 100644
--- a/src/TNL/Meshes/MeshDetails/initializer/MeshInitializer.h
+++ b/src/TNL/Meshes/MeshDetails/initializer/MeshInitializer.h
@@ -49,10 +49,9 @@ class MeshEntityInitializer;
 template< typename MeshConfig >
 class MeshInitializer
    : public MeshInitializerLayer< MeshConfig,
-                                     typename MeshTraits< MeshConfig >::DimensionTag >
+                                  typename MeshTraits< MeshConfig >::DimensionsTag >
 {
    public:
- 
       typedef Mesh< MeshConfig >                                  MeshType;
       typedef MeshTraits< MeshConfig >                            MeshTraitsType;
       static const int Dimension = MeshTraitsType::meshDimension;
@@ -61,11 +60,11 @@ class MeshInitializer
       typedef typename MeshTraitsType::PointArrayType             PointArrayType;
       typedef typename MeshTraitsType::CellSeedArrayType          CellSeedArrayType;
       typedef typename MeshTraitsType::GlobalIndexType            GlobalIndexType;
- 
-      template< typename DimensionTag, typename SuperdimensionsTag > using SuperentityStorageNetwork =
-      typename MeshTraitsType::template SuperentityTraits<
-         typename MeshTraitsType::template EntityTraits< DimensionTag::value >::EntityTopology,
-         SuperdimensionsTag::value >::StorageNetworkType;
+
+      template< typename DimensionsTag, typename SuperdimensionsTag >
+      using SuperentityStorageNetwork = typename MeshTraitsType::template SuperentityTraits<
+            typename MeshTraitsType::template EntityTraits< DimensionsTag::value >::EntityTopology,
+            SuperdimensionsTag::value >::StorageNetworkType;
 
 
       MeshInitializer()
@@ -81,16 +80,16 @@ class MeshInitializer
                        const CellSeedArrayType& cellSeeds,
                        MeshType& mesh )
       {
-        std::cout << "======= Starting mesh initiation ========" << std::endl;
+         if( verbose ) std::cout << "======= Starting mesh initiation ========" << std::endl;
          this->mesh = &mesh;
 
-        std::cout << "========= Creating entity seeds =============" << std::endl;
+         if( verbose ) std::cout << "========= Creating entity seeds =============" << std::endl;
          BaseType::createEntitySeedsFromCellSeeds( cellSeeds );
 
-        std::cout << "========= Creating entity reference orientations =============" << std::endl;
+         if( verbose ) std::cout << "========= Creating entity reference orientations =============" << std::endl;
          BaseType::createEntityReferenceOrientations();
 
-        std::cout << "====== Initiating entities ==============" << std::endl;
+         if( verbose ) std::cout << "====== Initiating entities ==============" << std::endl;
          BaseType::initEntities( *this, points, cellSeeds );
 
          return true;
@@ -130,7 +129,7 @@ class MeshInitializer
       {
          return mesh->template superentityIdsArray< DimensionTag, SuperDimensionTag >();
       }
- 
+
       template< typename EntityTopology, typename SuperdimensionsTag >
       typename MeshTraitsType::template SuperentityTraits< EntityTopology, SuperdimensionsTag::value >::StorageNetworkType&
       meshSuperentityStorageNetwork()
@@ -151,9 +150,9 @@ class MeshInitializer
          return BaseType::getSuperentityInitializer( DimensionTag() );
       }
 
- 
-      template< typename DimensionTag >
-      const MeshEntityReferenceOrientation< MeshConfig, typename MeshTraitsType::template EntityTraits< DimensionTag::value >::EntityTopology >&
+
+      template< typename DimensionsTag >
+      const MeshEntityReferenceOrientation< MeshConfig, typename MeshTraitsType::template EntityTraits< DimensionsTag::value >::EntityTopology >&
       getReferenceOrientation( GlobalIndexType index) const
       {
          return BaseType::getReferenceOrientation( DimensionTag(), index);
@@ -221,7 +220,7 @@ class MeshInitializerLayer< MeshConfig,
          /***
           * There are no superentities in this layer storing mesh cells.
           */
- 
+
          BaseType::initEntities( initializer, points );
       }
 
@@ -236,7 +235,7 @@ class MeshInitializerLayer< MeshConfig,
       {
          return this->superentityInitializer;
       }
- 
+
       bool checkCells()
       {
          typedef typename MeshEntity< MeshConfig, EntityTopology >::template SubentitiesTraits< 0 >::LocalIndexType LocalIndexType;
@@ -311,8 +310,8 @@ class MeshInitializerLayer< MeshConfig,
    typedef typename
       MeshSubentityTraits< MeshConfig,
                                 typename MeshConfig::CellTopology,
-                                DimensionTag::value >::SubentityContainerType SubentitiesContainerType;
- 
+                                DimensionsTag::value >::SubentityContainerType SubentitiesContainerType;
+
    public:
 
       using BaseType::getEntityInitializer;
@@ -348,7 +347,7 @@ class MeshInitializerLayer< MeshConfig,
          this->seedsIndexedSet.find( seed, index );
          return index;
       }
- 
+
       using BaseType::getSuperentityInitializer;
       SuperentityInitializerType& getSuperentityInitializer( DimensionTag )
       {
@@ -377,8 +376,8 @@ class MeshInitializerLayer< MeshConfig,
 
       void createEntityReferenceOrientations() const {}
    private:
- 
-      typedef  typename MeshEntityTraits< MeshConfig, DimensionTag::value >::SeedIndexedSetType                     SeedIndexedSet;
+
+      typedef  typename MeshEntityTraits< MeshConfig, DimensionsTag::value >::SeedIndexedSetType                     SeedIndexedSet;
       SeedIndexedSet seedsIndexedSet;
       SuperentityInitializerType superentityInitializer;
 };
@@ -431,7 +430,7 @@ class MeshInitializerLayer< MeshConfig,
                                 DimensionTag::value >::SubentityContainerType SubentitiesContainerType;
 
    public:
- 
+
       using BaseType::getEntityInitializer;
       EntityInitializerType& getEntityInitializer( DimensionTag, GlobalIndexType index )
       {
@@ -464,7 +463,7 @@ class MeshInitializerLayer< MeshConfig,
          this->seedsIndexedSet.find( seed, index );
          return index;
       }
- 
+
       using BaseType::getSuperentityInitializer;
       SuperentityInitializerType& getSuperentityInitializer( DimensionTag )
       {
@@ -496,7 +495,7 @@ class MeshInitializerLayer< MeshConfig,
       {
          return this->referenceOrientations[ index ];
       }
- 
+
       void createEntityReferenceOrientations()
       {
          //cout << " Creating entity reference orientations with " << DimensionTag::value << " dimensions ... " << std::endl;
@@ -510,11 +509,11 @@ class MeshInitializerLayer< MeshConfig,
             this->referenceOrientations[ i ] = ReferenceOrientationType( seedsArray[ i ] );
          }
          BaseType::createEntityReferenceOrientations();
-		}	
- 
+		}
+
    private:
- 
-      typedef  typename MeshEntityTraits< MeshConfig, DimensionTag::value >::SeedIndexedSetType                     SeedIndexedSet;
+
+      typedef  typename MeshEntityTraits< MeshConfig, DimensionsTag::value >::SeedIndexedSetType                     SeedIndexedSet;
       SeedIndexedSet seedsIndexedSet;
       SuperentityInitializerType superentityInitializer;
       ReferenceOrientationArrayType referenceOrientations;
@@ -587,9 +586,9 @@ class MeshInitializerLayer< MeshConfig,
                        << " vertexInitializerContainer.getSize() = " << vertexInitializerContainer.getSize() << std::endl; );
          return vertexInitializerContainer[ index ];
       }
- 
+
       void createEntitySeedsFromCellSeeds( const CellSeedArrayType& cellSeeds ){};
- 
+
       void initEntities( InitializerType& initializer, const PointArrayType& points )
       {
          EntityArrayType &vertexArray = initializer.template meshEntitiesArray< DimensionTag >();
@@ -599,25 +598,25 @@ class MeshInitializerLayer< MeshConfig,
 
          superentityInitializer.initSuperentities( initializer );
       }
- 
+
       void findEntitySeedIndex() const                               {} // This method is due to 'using BaseType::findEntityIndex;' in the derived class.
 
       void createEntityInitializers()
       {
          vertexInitializerContainer.setSize( this->getMesh().template getNumberOfEntities< DimensionTag::value >() );
       }
- 
-      SuperentityInitializerType& getSuperentityInitializer( DimensionTag )
+
+      SuperentityInitializerType& getSuperentityInitializer( DimensionsTag )
       {
          return this->superentityInitializer;
       }
 
       void createEntityReferenceOrientations() const {}
- 
+
       void getReferenceOrientation() const {}
- 
+
    private:
- 
+
       SuperentityInitializerType superentityInitializer;
 
       VertexInitializerContainerType vertexInitializerContainer;
diff --git a/src/TNL/Meshes/MeshDetails/initializer/MeshSuperentityStorageInitializer.h b/src/TNL/Meshes/MeshDetails/initializer/MeshSuperentityStorageInitializer.h
index 587cb03a30..f3bd3b9bb0 100644
--- a/src/TNL/Meshes/MeshDetails/initializer/MeshSuperentityStorageInitializer.h
+++ b/src/TNL/Meshes/MeshDetails/initializer/MeshSuperentityStorageInitializer.h
@@ -16,10 +16,12 @@
 
 #pragma once
 
-#include <TNL/Meshes/MeshDimensionTag.h>
 #include <algorithm>
 #include <vector>
 
+#include <TNL/Meshes/MeshDimensionsTag.h>
+#include <TNL/Meshes/MeshDetails/traits/MeshSuperentityTraits.h>
+
 namespace TNL {
 namespace Meshes {
 
@@ -34,8 +36,8 @@ class MeshSuperentityStorageInitializerLayer;
 
 template< typename MeshConfig,
           typename EntityTopology >
-class MeshSuperentityStorageInitializer :
-   public MeshSuperentityStorageInitializerLayer< MeshConfig, EntityTopology, MeshDimensionTag< MeshTraits< MeshConfig >::meshDimension > >
+class MeshSuperentityStorageInitializer
+   : public MeshSuperentityStorageInitializerLayer< MeshConfig, EntityTopology, MeshDimensionsTag< MeshTraits< MeshConfig >::meshDimensions > >
 {};
 
 template< typename MeshConfig,
diff --git a/src/TNL/Meshes/MeshDetails/layers/MeshStorageLayer.h b/src/TNL/Meshes/MeshDetails/layers/MeshStorageLayer.h
index 31faf5da10..cf197a5983 100644
--- a/src/TNL/Meshes/MeshDetails/layers/MeshStorageLayer.h
+++ b/src/TNL/Meshes/MeshDetails/layers/MeshStorageLayer.h
@@ -320,7 +320,8 @@ private:
       }
 
       template< typename SuperdimensionsTag >
-      typename MeshTraitsType::template SuperentityTraits< EntityTopology, SuperdimensionsTag::value >::StorageNetworkType& getSuperentityStorageNetwork( MeshDimensionTag< EntityTopology::dimensions > )
+      typename MeshTraitsType::template SuperentityTraits< EntityTopology, SuperdimensionsTag::value >::StorageNetworkType&
+      getSuperentityStorageNetwork( MeshDimensionsTag< EntityTopology::dimensions > )
       {
          return SuperentityStorageBaseType::getStorageNetwork( SuperdimensionsTag() );
       }
diff --git a/src/UnitTests/Meshes/MeshEntityTest.h b/src/UnitTests/Meshes/MeshEntityTest.h
index 1ab9364465..f1d425590e 100644
--- a/src/UnitTests/Meshes/MeshEntityTest.h
+++ b/src/UnitTests/Meshes/MeshEntityTest.h
@@ -19,36 +19,34 @@ using TestEdgeMeshConfig = MeshConfigBase< MeshEdgeTopology,   2, RealType, Inde
 
 class TestTriangleMeshConfig : public MeshConfigBase< MeshTriangleTopology >
 {
-   public:
- 
-      template< typename EntityTopology >
-      static constexpr bool subentityStorage( EntityTopology entity, int subentityDimensions )
-      {
-         return true;
-      }
- 
-      template< typename EntityTopology >
-      static constexpr bool superentityStorage( EntityTopology entity, int superentityDimensions )
-      {
-         return true;
-      }
+public:
+   template< typename EntityTopology >
+   static constexpr bool subentityStorage( EntityTopology entity, int subentityDimensions )
+   {
+      return true;
+   }
+
+   template< typename EntityTopology >
+   static constexpr bool superentityStorage( EntityTopology entity, int superentityDimensions )
+   {
+      return true;
+   }
 };
 
 class TestTetrahedronMeshConfig : public MeshConfigBase< MeshTetrahedronTopology >
 {
-   public:
- 
-      template< typename EntityTopology >
-      static constexpr bool subentityStorage( EntityTopology entity, int subentityDimensions )
-      {
-         return true;
-      }
- 
-      template< typename EntityTopology >
-      static constexpr bool superentityStorage( EntityTopology entity, int superentityDimensions )
-      {
-         return true;
-      }
+public:
+   template< typename EntityTopology >
+   static constexpr bool subentityStorage( EntityTopology entity, int subentityDimensions )
+   {
+      return true;
+   }
+
+   template< typename EntityTopology >
+   static constexpr bool superentityStorage( EntityTopology entity, int superentityDimensions )
+   {
+      return true;
+   }
 };
 
 template< typename MeshConfig, typename EntityTopology, int Dimensions >
diff --git a/src/UnitTests/Meshes/MeshTest.h b/src/UnitTests/Meshes/MeshTest.h
index 1575d656e7..9e9e9f95f2 100644
--- a/src/UnitTests/Meshes/MeshTest.h
+++ b/src/UnitTests/Meshes/MeshTest.h
@@ -16,50 +16,46 @@
 using namespace TNL;
 using namespace TNL::Meshes;
 
+using RealType = double;
+using Device = Devices::Host;
+using IndexType = int;
+
 class TestTriangleMeshConfig : public MeshConfigBase< MeshTriangleTopology >
 {
-   public:
-
-      static constexpr bool entityStorage( int dimensions ) { return true; };
-      template< typename MeshEntity > static constexpr bool subentityStorage( MeshEntity, int SubentityDimensions ) { return true; };
-      //template< typename MeshEntity > static constexpr bool subentityOrientationStorage( MeshEntity, int SubentityDimensions ) { return true; };
-      template< typename MeshEntity > static constexpr bool superentityStorage( MeshEntity, int SuperentityDimensions ) { return true; };
+public:
+   static constexpr bool entityStorage( int dimensions ) { return true; };
+   template< typename EntityTopology > static constexpr bool subentityStorage( EntityTopology, int SubentityDimensions ) { return true; };
+   //template< typename EntityTopology > static constexpr bool subentityOrientationStorage( EntityTopology, int SubentityDimensions ) { return true; };
+   template< typename EntityTopology > static constexpr bool superentityStorage( EntityTopology, int SuperentityDimensions ) { return true; };
 };
 
 class TestQuadrilateralMeshConfig : public MeshConfigBase< MeshQuadrilateralTopology >
 {
-   public:
- 
-      static constexpr bool entityStorage( int dimensions ) { return true; };
-      template< typename MeshEntity > static constexpr bool subentityStorage( MeshEntity, int SubentityDimensions ) { return true; };
-      template< typename MeshEntity > static constexpr bool subentityOrientationStorage( MeshEntity, int SubentityDimensions ) { return ( SubentityDimensions % 2 != 0 ); };
-      template< typename MeshEntity > static constexpr bool superentityStorage( MeshEntity, int SuperentityDimensions ) { return true; };
+public:
+   static constexpr bool entityStorage( int dimensions ) { return true; };
+   template< typename EntityTopology > static constexpr bool subentityStorage( EntityTopology, int SubentityDimensions ) { return true; };
+   template< typename EntityTopology > static constexpr bool subentityOrientationStorage( EntityTopology, int SubentityDimensions ) { return ( SubentityDimensions % 2 != 0 ); };
+   template< typename EntityTopology > static constexpr bool superentityStorage( EntityTopology, int SuperentityDimensions ) { return true; };
 };
 
 class TestTetrahedronMeshConfig : public MeshConfigBase< MeshTetrahedronTopology >
 {
-   public:
-
-      static constexpr bool entityStorage( int dimensions ) { return true; };
-      template< typename MeshEntity > static constexpr bool subentityStorage( MeshEntity, int SubentityDimensions ) { return true; };
-      template< typename MeshEntity > static constexpr bool subentityOrientationStorage( MeshEntity, int SubentityDimensions ) {  return ( SubentityDimensions % 2 != 0 ); };
-      template< typename MeshEntity > static constexpr bool superentityStorage( MeshEntity, int SuperentityDimensions ) { return true; };
+public:
+   static constexpr bool entityStorage( int dimensions ) { return true; };
+   template< typename EntityTopology > static constexpr bool subentityStorage( EntityTopology, int SubentityDimensions ) { return true; };
+   template< typename EntityTopology > static constexpr bool subentityOrientationStorage( EntityTopology, int SubentityDimensions ) {  return ( SubentityDimensions % 2 != 0 ); };
+   template< typename EntityTopology > static constexpr bool superentityStorage( EntityTopology, int SuperentityDimensions ) { return true; };
 };
 
 class TestHexahedronMeshConfig : public MeshConfigBase< MeshHexahedronTopology >
 {
-   public:
-
-      static constexpr bool entityStorage( int dimensions ) { return true; };
-      template< typename MeshEntity > static constexpr bool subentityStorage( MeshEntity, int SubentityDimensions ) { return true; };
-      template< typename MeshEntity > static constexpr bool subentityOrientationStorage( MeshEntity, int SubentityDimensions ) {  return ( SubentityDimensions % 2 != 0 ); };
-      template< typename MeshEntity > static constexpr bool superentityStorage( MeshEntity, int SuperentityDimensions ) { return true; };
+public:
+   static constexpr bool entityStorage( int dimensions ) { return true; };
+   template< typename EntityTopology > static constexpr bool subentityStorage( EntityTopology, int SubentityDimensions ) { return true; };
+   template< typename EntityTopology > static constexpr bool subentityOrientationStorage( EntityTopology, int SubentityDimensions ) {  return ( SubentityDimensions % 2 != 0 ); };
+   template< typename EntityTopology > static constexpr bool superentityStorage( EntityTopology, int SuperentityDimensions ) { return true; };
 };
 
-using RealType = double;
-using Device = Devices::Host;
-using IndexType = int;
-
 TEST( MeshTest, TwoTrianglesTest )
 {
    typedef MeshEntity< TestTriangleMeshConfig, MeshTriangleTopology > TriangleMeshEntityType;
-- 
GitLab