Commit 22f7024c authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

Renaming 'Dimensions' to 'Dimension' in meshes

parent bdb8e71f
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -50,10 +50,10 @@ template< typename ConfigTag, typename Index > struct GridIndexTag { enum { enab
// individual per-type tags.
template< typename ConfigTag, typename MeshType > struct GridTag { enum { enabled = false }; };

template< typename ConfigTag, int Dimensions, typename Real, typename Device, typename Index >
struct GridTag< ConfigTag, Grid< Dimensions, Real, Device, Index > >
template< typename ConfigTag, int Dimension, typename Real, typename Device, typename Index >
struct GridTag< ConfigTag, Grid< Dimension, Real, Device, Index > >
{
   enum { enabled = GridDimensionTag< ConfigTag, Dimensions >::enabled  &&
   enum { enabled = GridDimensionTag< ConfigTag, Dimension >::enabled  &&
                    GridRealTag< ConfigTag, Real >::enabled &&
                    GridDeviceTag< ConfigTag, Device >::enabled &&
                    GridIndexTag< ConfigTag, Index >::enabled
@@ -81,7 +81,7 @@ template< typename ConfigTag, typename CellTopology > struct MeshCellTopologyTag
//template< typename ConfigTag > struct MeshCellTopologyTag< ConfigTag, MeshSimplexTopology > { enum { enabled = true }; };

// All sensible world dimensions are enabled by default.
template< typename ConfigTag, typename CellTopology, int WorldDimension > struct MeshWorldDimensionTag { enum { enabled = ( WorldDimension >= CellTopology::dimensions && WorldDimension <= 3 ) }; };
template< typename ConfigTag, typename CellTopology, int WorldDimension > struct MeshWorldDimensionTag { enum { enabled = ( WorldDimension >= CellTopology::dimension && WorldDimension <= 3 ) }; };

// Meshes are enabled for all real types by default.
template< typename ConfigTag, typename Real > struct MeshRealTag { enum { enabled = true }; };
@@ -101,8 +101,8 @@ template< typename ConfigTag, typename GlobalIndex > struct MeshIdTag< ConfigTag
template< typename ConfigTag >
struct MeshConfigTemplateTag
{
   template< typename Cell, int WorldDimensions, typename Real, typename GlobalIndex, typename LocalIndex, typename Id >
   using MeshConfig = MeshConfigBase< Cell, WorldDimensions, Real, GlobalIndex, LocalIndex, Id >;
   template< typename Cell, int WorldDimension, typename Real, typename GlobalIndex, typename LocalIndex, typename Id >
   using MeshConfig = MeshConfigBase< Cell, WorldDimension, Real, GlobalIndex, LocalIndex, Id >;
};

// The Mesh is enabled for allowed Device, CellTopology, WorldDimension, Real,
+1 −1
Original line number Diff line number Diff line
@@ -7,8 +7,8 @@ ADD_SUBDIRECTORY( TypeResolver )
SET( headers Grid.h
             GridEntity.h
             GridEntityConfig.h
             DimensionTag.h
             DummyMesh.h
             MeshDimensionTag.h             
             Mesh.h
             MeshEntity.h
             Traverser.h
+10 −16
Original line number Diff line number Diff line
/***************************************************************************
                          MeshDimensionTag.h  -  description
                          DimensionTag.h  -  description
                             -------------------
    begin                : Feb 11, 2014
    copyright            : (C) 2014 by Tomas Oberhuber et al.
@@ -8,12 +8,6 @@

/* See Copyright Notice in tnl/Copyright */

/***
 * Authors:
 * Oberhuber Tomas, tomas.oberhuber@fjfi.cvut.cz
 * Zabka Vitezslav, zabkav@gmail.com
 */

#pragma once

#include <TNL/Assert.h>
@@ -30,32 +24,32 @@ namespace Meshes {
 *   expression is a simple identifier.
 *
 * Therefore one cannot specialize the mesh layers just by integers saying the mesh
 * layer dimensions but instead this tag must be used. This makes the code more difficult
 * layer dimension but instead this tag must be used. This makes the code more difficult
 * to read and we would like to avoid it if it is possible sometime.
 * On the other hand, MeshDimensionTag is also used for method overloading when
 * On the other hand, DimensionTag is also used for method overloading when
 * asking for different mesh entities. In this case it makes sense and it cannot be
 * replaced.
 */

template< int Dimension >
class MeshDimensionTag
class DimensionTag
{
   static_assert( Dimensions >= 0, "The value of the dimensions cannot be negative." );
   static_assert( Dimension >= 0, "The dimension cannot be negative." );

public:
   static constexpr int value = Dimensions;
   static constexpr int value = Dimension;

   using Decrement = MeshDimensionsTag< Dimensions - 1 >;
   using Increment = MeshDimensionsTag< Dimensions + 1 >;
   using Decrement = DimensionTag< Dimension - 1 >;
   using Increment = DimensionTag< Dimension + 1 >;
};

template<>
class MeshDimensionTag< 0 >
class DimensionTag< 0 >
{
public:
   static const int value = 0;

   using Increment = MeshDimensionsTag< 1 >;
   using Increment = DimensionTag< 1 >;
};

} // namespace Meshes
+6 −6
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@
#pragma once

#include <TNL/Devices/Cuda.h>
#include <TNL/Meshes/MeshDimensionTag.h>
#include <TNL/Meshes/DimensionTag.h>
#include <TNL/Meshes/GridEntityConfig.h>
#include <TNL/Meshes/GridDetails/NeighborGridEntityGetter.h>

@@ -44,7 +44,7 @@ class NeighborGridEntityLayer< GridEntity, NeighborEntityDimension, GridEntityCo
      {}
 
      __cuda_callable__
      const NeighborEntityGetterType& getNeighborEntities( const MeshDimensionTag< NeighborEntityDimension>& tag ) const
      const NeighborEntityGetterType& getNeighborEntities( const DimensionTag< NeighborEntityDimension>& tag ) const
      {
         return this->neighborEntities;
      }
@@ -76,7 +76,7 @@ class NeighborGridEntityLayer< GridEntity, 0, GridEntityConfig, true >
      {}

      __cuda_callable__
      const NeighborEntityGetterType& getNeighborEntities( const MeshDimensionTag< 0 >& tag ) const
      const NeighborEntityGetterType& getNeighborEntities( const DimensionTag< 0 >& tag ) const
      {
         return this->neighborEntities;
      }
@@ -112,7 +112,7 @@ class NeighborGridEntityLayer< GridEntity, NeighborEntityDimension, GridEntityCo
      {}

      __cuda_callable__
      const NeighborEntityGetterType& getNeighborEntities( const MeshDimensionTag< NeighborEntityDimension >& tag ) const {}
      const NeighborEntityGetterType& getNeighborEntities( const DimensionTag< NeighborEntityDimension >& tag ) const {}
 
      __cuda_callable__
      void refresh( const typename GridEntity::GridType& grid,
@@ -131,7 +131,7 @@ class NeighborGridEntityLayer< GridEntity, 0, GridEntityConfig, false >
      NeighborGridEntityLayer( const GridEntity& entity ){}

      __cuda_callable__
      const NeighborEntityGetterType& getNeighborEntities( const MeshDimensionTag< 0 >& tag ) const {}
      const NeighborEntityGetterType& getNeighborEntities( const DimensionTag< 0 >& tag ) const {}
 
      __cuda_callable__
      void refresh( const typename GridEntity::GridType& grid,
@@ -163,7 +163,7 @@ class NeighborGridEntitiesStorage
      const NeighborGridEntityGetter< GridEntity, EntityDimension >&
      getNeighborEntities() const
      {
         return BaseType::getNeighborEntities( MeshDimensionTag< EntityDimension >() );
         return BaseType::getNeighborEntities( DimensionTag< EntityDimension >() );
      }
};

+12 −12
Original line number Diff line number Diff line
@@ -45,32 +45,32 @@ class Mesh
      using CellType        = typename MeshTraitsType::CellType;
      using VertexType      = typename MeshTraitsType::VertexType;
      using PointType       = typename MeshTraitsType::PointType;
      static constexpr int dimensions = MeshTraitsType::meshDimensions;
      static constexpr int dimension = MeshTraitsType::meshDimension;

      template< int Dimensions >
      using EntityTraits = typename MeshTraitsType::template EntityTraits< Dimensions >;
      template< int Dimension >
      using EntityTraits = typename MeshTraitsType::template EntityTraits< Dimension >;

      template< int Dimensions >
      using EntityType = typename EntityTraits< Dimensions >::EntityType;
      template< int Dimension >
      using EntityType = typename EntityTraits< Dimension >::EntityType;

      static String getType();

      virtual String getTypeVirtual() const;

      static constexpr int getDimensions();
      static constexpr int getMeshDimension();

      template< int Dimensions >
      template< int Dimension >
      static constexpr bool entitiesAvailable();

      // TODO: rename to getEntitiesCount
      template< int Dimension >
      GlobalIndexType getNumberOfEntities() const;

      template< int Dimensions >
      EntityType< Dimensions >& getEntity( const GlobalIndexType& entityIndex );
      template< int Dimension >
      EntityType< Dimension >& getEntity( const GlobalIndexType& entityIndex );

      template< int Dimensions >
      const EntityType< Dimensions >& getEntity( const GlobalIndexType& entityIndex ) const;
      template< int Dimension >
      const EntityType< Dimension >& getEntity( const GlobalIndexType& entityIndex ) const;

      GlobalIndexType getNumberOfCells() const;

@@ -103,7 +103,7 @@ class Mesh

      friend MeshInitializer< MeshConfig >;

      template< typename Mesh, typename DimensionsTag, typename SuperdimensionsTag >
      template< typename Mesh, typename DimensionTag, typename SuperdimensionTag >
      friend struct MeshEntityStorageRebinderWorker;
};

Loading