Commit a6b99878 authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

update for new TNL

parent 5d1ab161
Loading
Loading
Loading
Loading
+82 −213

File changed.

Preview size limit exceeded, changes collapsed.

+12 −33
Original line number Diff line number Diff line
@@ -19,15 +19,13 @@ template< typename Cell,
          int WorldDimension = Cell::dimension,
          typename Real = double,
          typename GlobalIndex = int,
          typename LocalIndex = GlobalIndex,
          typename Id = void >
          typename LocalIndex = GlobalIndex >
struct FullConfig
{
   using CellTopology = Cell;
   using RealType = Real;
   using GlobalIndexType = GlobalIndex;
   using LocalIndexType = LocalIndex;
   using IdType = Id;

   static constexpr int worldDimension = WorldDimension;
   static constexpr int meshDimension = Cell::dimension;
@@ -37,27 +35,13 @@ struct FullConfig
      return "Full";
   }

   /****
    * Storage of mesh entities.
    */
   static constexpr bool entityStorage( int dimension )
   {
      /****
       * Vertices and cells must always be stored.
       */
      return true;
   }

   /****
    * Storage of subentities of mesh entities.
    */
   template< typename EntityTopology >
   static constexpr bool subentityStorage( EntityTopology, int SubentityDimension )
   {
      /****
       *  Subvertices of all stored entities must always be stored
       */
      return entityStorage( EntityTopology::dimension ) && entityStorage( SubentityDimension );
      return true;
   }

   /****
@@ -76,7 +60,7 @@ struct FullConfig
   template< typename EntityTopology >
   static constexpr bool superentityStorage( EntityTopology, int SuperentityDimension )
   {
      return entityStorage( EntityTopology::dimension ) && entityStorage( SuperentityDimension );
      return true;
   }

   /****
@@ -109,15 +93,13 @@ template< typename Cell,
          int WorldDimension = Cell::dimension,
          typename Real = double,
          typename GlobalIndex = int,
          typename LocalIndex = GlobalIndex,
          typename Id = void >
          typename LocalIndex = GlobalIndex >
struct MinimalConfig
{
   using CellTopology = Cell;
   using RealType = Real;
   using GlobalIndexType = GlobalIndex;
   using LocalIndexType = LocalIndex;
   using IdType = Id;

   static constexpr int worldDimension = WorldDimension;
   static constexpr int meshDimension = Cell::dimension;
@@ -127,22 +109,13 @@ struct MinimalConfig
      return "Minimal";
   }

   /****
    * Storage of mesh entities.
    */
   static constexpr bool entityStorage( int dimension )
   {
      return ( dimension == 0 || dimension == meshDimension - 1 || dimension == meshDimension );
   }

   /****
    * Storage of subentities of mesh entities.
    */
   template< typename EntityTopology >
   static constexpr bool subentityStorage( EntityTopology, int SubentityDimension )
   {
      return entityStorage( EntityTopology::dimension ) &&
             ( SubentityDimension == 0 || ( SubentityDimension == meshDimension - 1 && EntityTopology::dimension == meshDimension ) );
      return SubentityDimension == 0 || ( SubentityDimension == meshDimension - 1 && EntityTopology::dimension == meshDimension );
   }

   /****
@@ -170,7 +143,11 @@ struct MinimalConfig
   template< typename EntityTopology >
   static constexpr bool entityTagsStorage( EntityTopology )
   {
      return false;
//      return false;
       // NOTE: needed for reorderEntities (could be optimized)
      using FaceTopology = typename TNL::Meshes::Topologies::Subtopology< CellTopology, meshDimension - 1 >::Topology;
      return superentityStorage( FaceTopology(), meshDimension ) &&
             ( EntityTopology::dimension >= meshDimension - 1 || subentityStorage( FaceTopology(), EntityTopology::dimension ) );
   }

   /****
@@ -180,6 +157,8 @@ struct MinimalConfig
    */
   static constexpr bool dualGraphStorage()
   {
//      return false;
       // NOTE: needed for MeshOrdering (ordering could be pre-generated)
      return true;
   }

+17 −49
Original line number Diff line number Diff line
@@ -29,54 +29,22 @@ template< typename CellTopology,
bool
setMeshParameters( Params&&... params )
{
   bool status = MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, int, short int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, int, short int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, int, short int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, int, int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, int, int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, int, int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, long int, short int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, long int, short int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, long int, short int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, long int, int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, long int, int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, long int, int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, int, short int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, int, short int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, int, short int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, int, int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, int, int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, int, int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, long int, short int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, long int, short int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, long int, short int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, long int, int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, long int, int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, long int, int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, int, short int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, int, short int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, int, short int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, int, int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, int, int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, int, int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, long int, short int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, long int, short int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, long int, short int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, long int, int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, long int, int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, long int, int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, int, short int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, int, short int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, int, short int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, int, int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, int, int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, int, int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, long int, short int, void >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, long int, short int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, long int, short int, long int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, long int, int, void >::run( std::forward<Params>(params)... );
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, long int, int, int >::run( std::forward<Params>(params)... ) &&
//                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, long int, int, long int >::run( std::forward<Params>(params)... );
   bool status = MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, int, short int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, int, int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, long int, short int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, float, long int, int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, int, short int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, int, int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, long int, short int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< MinimalConfig, CellTopology, WorldDimension, double, long int, int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, int, short int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, int, int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, long int, short int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, float, long int, int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, int, short int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, int, int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, long int, short int >::run( std::forward<Params>(params)... ) &&
                 MeshBenchmarksRunner< FullConfig, CellTopology, WorldDimension, double, long int, int >::run( std::forward<Params>(params)... );
   return status;
}

@@ -102,7 +70,7 @@ resolveCellTopology( Benchmark & benchmark,
      case EntityShape::Triangle:
         return setMeshParameters< Topologies::Triangle >( benchmark, metadata, meshFile );
      case EntityShape::Quad:
         return setMeshParameters< Topologies::Quadrilateral >( benchmark, metadata, meshFile );
         return setMeshParameters< Topologies::Quadrangle >( benchmark, metadata, meshFile );
      case EntityShape::Tetra:
         return setMeshParameters< Topologies::Tetrahedron >( benchmark, metadata, meshFile );
//      case EntityShape::Hexahedron: