Commit 9c98e1a9 authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

Fixed BoundaryGridEntityChecker

parent 09c364ea
Loading
Loading
Loading
Loading
+66 −50
Original line number Diff line number Diff line
@@ -98,13 +98,8 @@ class BoundaryGridEntityChecker< GridEntity< Meshes::Grid< 2, Real, Device, Inde
      __cuda_callable__ inline
      static bool isBoundaryEntity( const GridEntityType& entity )
      {
         return( entity.getCoordinates().x() == 0 ||
                 entity.getCoordinates().y() == 0 ||
                 entity.getCoordinates().x() ==
                    entity.getMesh().getDimensions().x() - entity.getBasis().x() ||
                 entity.getCoordinates().y() ==
                    entity.getMesh().getDimensions().y() - entity.getBasis().y() );
 
         return( ( entity.getOrientation().x() && ( entity.getCoordinates().x() == 0 || entity.getCoordinates().x() == entity.getMesh().getDimensions().x() ) ) ||
                 ( entity.getOrientation().y() && ( entity.getCoordinates().y() == 0 || entity.getCoordinates().y() == entity.getMesh().getDimensions().y() ) ) );
      }
};

@@ -138,14 +133,13 @@ class BoundaryGridEntityChecker< GridEntity< Meshes::Grid< 2, Real, Device, Inde
template< typename Real,
          typename Device,
          typename Index,
          typename Config ,
          int EntityDimensions >
class BoundaryGridEntityChecker< GridEntity< Meshes::Grid< 3, Real, Device, Index >, EntityDimensions, Config > >
          typename Config >
class BoundaryGridEntityChecker< GridEntity< Meshes::Grid< 3, Real, Device, Index >, 3, Config > >
{
   public:

      typedef Meshes::Grid< 3, Real, Device, Index > GridType;
      typedef GridEntity< GridType, EntityDimensions, Config > GridEntityType;
      typedef GridEntity< GridType, 3, Config > GridEntityType;

      __cuda_callable__ inline
      static bool isBoundaryEntity( const GridEntityType& entity )
@@ -153,13 +147,29 @@ class BoundaryGridEntityChecker< GridEntity< Meshes::Grid< 3, Real, Device, Inde
         return( entity.getCoordinates().x() == 0 ||
                 entity.getCoordinates().y() == 0 ||
                 entity.getCoordinates().z() == 0 ||
                 entity.getCoordinates().x() ==
                    entity.getMesh().getDimensions().x() - entity.getBasis().x() ||
                 entity.getCoordinates().y() ==
                    entity.getMesh().getDimensions().y() - entity.getBasis().y() ||
                 entity.getCoordinates().z() ==
                    entity.getMesh().getDimensions().z() - entity.getBasis().z() );
                 entity.getCoordinates().x() == entity.getMesh().getDimensions().x() - 1 ||
                 entity.getCoordinates().y() == entity.getMesh().getDimensions().y() - 1 ||
                 entity.getCoordinates().z() == entity.getMesh().getDimensions().z() - 1 );
      }
};

template< typename Real,
          typename Device,
          typename Index,
          typename Config >
class BoundaryGridEntityChecker< GridEntity< Meshes::Grid< 3, Real, Device, Index >, 2, Config > >
{
   public:

      typedef Meshes::Grid< 3, Real, Device, Index > GridType;
      typedef GridEntity< GridType, 2, Config > GridEntityType;

      __cuda_callable__ inline
      static bool isBoundaryEntity( const GridEntityType& entity )
      {
         return( ( entity.getOrientation().x() && ( entity.getCoordinates().x() == 0 || entity.getCoordinates().x() == entity.getMesh().getDimensions().x() ) ) ||
                 ( entity.getOrientation().y() && ( entity.getCoordinates().y() == 0 || entity.getCoordinates().y() == entity.getMesh().getDimensions().y() ) ) ||
                 ( entity.getOrientation().z() && ( entity.getCoordinates().z() == 0 || entity.getCoordinates().z() == entity.getMesh().getDimensions().z() ) ) );
      }
};

@@ -167,22 +177,28 @@ template< typename Real,
          typename Device,
          typename Index,
          typename Config >
class BoundaryGridEntityChecker< GridEntity< Meshes::Grid< 3, Real, Device, Index >, 3, Config > >
class BoundaryGridEntityChecker< GridEntity< Meshes::Grid< 3, Real, Device, Index >, 1, Config > >
{
   public:

      typedef Meshes::Grid< 3, Real, Device, Index > GridType;
      typedef GridEntity< GridType, 3, Config > GridEntityType;
      typedef GridEntity< GridType, 1, Config > GridEntityType;

      __cuda_callable__ inline
      static bool isBoundaryEntity( const GridEntityType& entity )
      {
         return( entity.getCoordinates().x() == 0 ||
                 entity.getCoordinates().y() == 0 ||
                 entity.getCoordinates().z() == 0 ||
                 entity.getCoordinates().x() == entity.getMesh().getDimensions().x() - 1 ||
                 entity.getCoordinates().y() == entity.getMesh().getDimensions().y() - 1 ||
                 entity.getCoordinates().z() == entity.getMesh().getDimensions().z() - 1 );
         return( ( entity.getOrientation().x() && (
                     entity.getCoordinates().y() == 0 || entity.getCoordinates().y() == entity.getMesh().getDimensions().y() ||
                     entity.getCoordinates().z() == 0 || entity.getCoordinates().z() == entity.getMesh().getDimensions().z()
                     ) ) ||
                 ( entity.getOrientation().y() && (
                     entity.getCoordinates().x() == 0 || entity.getCoordinates().x() == entity.getMesh().getDimensions().x() ||
                     entity.getCoordinates().z() == 0 || entity.getCoordinates().z() == entity.getMesh().getDimensions().z()
                     ) ) ||
                 ( entity.getOrientation().z() && (
                     entity.getCoordinates().x() == 0 || entity.getCoordinates().x() == entity.getMesh().getDimensions().x() ||
                     entity.getCoordinates().y() == 0 || entity.getCoordinates().y() == entity.getMesh().getDimensions().y()
                      ) ) );
      }
};