Commit b3e82041 authored by Yury Hayeu's avatar Yury Hayeu Committed by Tomáš Oberhuber
Browse files

Implement measure and center getters tests.

parent c63ee9c6
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -34,11 +34,6 @@ __cuda_callable__ inline Index __GRID_1D_PREFIX__::getEntityIndex(const Entity &
   return GridEntityGetter<Grid, Entity::entityDimension>::getEntityIndex(*this, entity);
}

__GRID_1D_TEMPLATE__
__cuda_callable__ const Real& __GRID_1D_PREFIX__::getCellMeasure() const {
   return this->template getSpaceStepsProducts<1>();
}

__GRID_1D_TEMPLATE__
template <int EntityDimension, typename Func, typename... FuncArgs>
inline
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ bool __GRID_ENTITY_PREFIX__::isBoundary() const {

__GRID_ENTITY_TEMPLATE__
__cuda_callable__ inline
const typename __GRID_ENTITY_PREFIX__::Point& __GRID_ENTITY_PREFIX__::getCenter() const {
const typename __GRID_ENTITY_PREFIX__::Point __GRID_ENTITY_PREFIX__::getCenter() const {
   return GridEntityCenterGetter<GridEntity>::getEntityCenter(*this);
}

+5 −5
Original line number Diff line number Diff line
@@ -64,8 +64,8 @@ class GridEntityCenterGetter<GridEntity<Meshes::Grid<2, Real, Device, Index>, 1>
      __cuda_callable__ inline
      static Point getEntityCenter(const Entity& entity) {
         const Grid& grid = entity.getMesh();
         return Point(grid.getOrigin().x() + (entity.getCoordinates().x() + 0.5 * entity.getBasis().x()) * grid.getSpaceSteps().x(),
                      grid.getOrigin().y() + (entity.getCoordinates().y() + 0.5 * entity.getBasis().y()) * grid.getSpaceSteps().y());
         return Point(grid.getOrigin().x() + (entity.getCoordinates().x() + 0.5 * !entity.getBasis().x()) * grid.getSpaceSteps().x(),
                      grid.getOrigin().y() + (entity.getCoordinates().y() + 0.5 * !entity.getBasis().y()) * grid.getSpaceSteps().y());
      }
};

@@ -97,9 +97,9 @@ class GridEntityCenterGetter<GridEntity<Meshes::Grid<3, Real, Device, Index>, En
      __cuda_callable__ inline
      static Point getEntityCenter(const Entity& entity) {
         const Grid& grid = entity.getMesh();
         return Point(grid.getOrigin().x() + (entity.getCoordinates().x() + 0.5 * entity.getBasis().x()) * grid.getSpaceSteps().x(),
                      grid.getOrigin().y() + (entity.getCoordinates().y() + 0.5 * entity.getBasis().y()) * grid.getSpaceSteps().y(),
                      grid.getOrigin().z() + (entity.getCoordinates().z() + 0.5 * entity.getBasis().z()) * grid.getSpaceSteps().z());
         return Point(grid.getOrigin().x() + (entity.getCoordinates().x() + 0.5 * !entity.getBasis().x()) * grid.getSpaceSteps().x(),
                      grid.getOrigin().y() + (entity.getCoordinates().y() + 0.5 * !entity.getBasis().y()) * grid.getSpaceSteps().y(),
                      grid.getOrigin().z() + (entity.getCoordinates().z() + 0.5 * !entity.getBasis().z()) * grid.getSpaceSteps().z());
      }
};

+16 −15
Original line number Diff line number Diff line
@@ -12,6 +12,8 @@ namespace Meshes {
template <typename Real, typename Device, typename Index, int EntityDimension>
class GridEntityGetter<Meshes::Grid<1, Real, Device, Index>, EntityDimension> {
   public:
       static constexpr int entityDimension = EntityDimension;

      using Grid = Meshes::Grid<1, Real, Device, Index>;
      using Entity = GridEntity<Grid, EntityDimension>;
      using Coordinate = typename Grid::Coordinate;
@@ -31,10 +33,10 @@ class GridEntityGetter<Meshes::Grid<1, Real, Device, Index>, EntityDimension> {
template <typename Real, typename Device, typename Index>
class GridEntityGetter<Meshes::Grid<2, Real, Device, Index>, 2> {
   public:
      static constexpr int EntityDimension = 2;
      static constexpr int entityDimension = 2;

      using Grid = Meshes::Grid<2, Real, Device, Index>;
      using Entity = GridEntity<Grid, EntityDimension>;
      using Entity = GridEntity<Grid, entityDimension>;
      using Coordinate = typename Grid::Coordinate;

      __cuda_callable__ inline
@@ -49,10 +51,10 @@ class GridEntityGetter<Meshes::Grid<2, Real, Device, Index>, 2> {
template <typename Real, typename Device, typename Index>
class GridEntityGetter<Meshes::Grid<2, Real, Device, Index>, 1> {
   public:
      static constexpr int EntityDimension = 1;
      static constexpr int entityDimension = 1;

      using Grid = Meshes::Grid<2, Real, Device, Index>;
      using Entity = GridEntity<Grid, EntityDimension>;
      using Entity = GridEntity<Grid, entityDimension>;
      using Coordinate = typename Grid::Coordinate;

      __cuda_callable__ inline
@@ -73,10 +75,10 @@ class GridEntityGetter<Meshes::Grid<2, Real, Device, Index>, 1> {
template <typename Real, typename Device, typename Index>
class GridEntityGetter<Meshes::Grid<2, Real, Device, Index>, 0> {
   public:
      static constexpr int EntityDimension = 0;
      static constexpr int entityDimension = 0;

      using Grid = Meshes::Grid<2, Real, Device, Index>;
      using Entity = GridEntity<Grid, EntityDimension>;
      using Entity = GridEntity<Grid, entityDimension>;
      using Coordinate = typename Grid::Coordinate;

      __cuda_callable__ inline
@@ -97,10 +99,10 @@ class GridEntityGetter<Meshes::Grid<2, Real, Device, Index>, 0> {
template <typename Real, typename Device, typename Index>
class GridEntityGetter<Meshes::Grid<3, Real, Device, Index>, 3> {
   public:
      static constexpr int EntityDimension = 3;
      static constexpr int entityDimension = 3;

      using Grid = Meshes::Grid<3, Real, Device, Index>;
      using Entity = GridEntity<Grid, EntityDimension>;
      using Entity = GridEntity<Grid, entityDimension>;
      using Coordinate = typename Grid::Coordinate;

      __cuda_callable__ inline
@@ -118,10 +120,10 @@ class GridEntityGetter<Meshes::Grid<3, Real, Device, Index>, 3> {
template <typename Real, typename Device, typename Index>
class GridEntityGetter<Meshes::Grid<3, Real, Device, Index>, 2> {
   public:
      static constexpr int EntityDimension = 2;
      static constexpr int entityDimension = 2;

      using Grid = Meshes::Grid<3, Real, Device, Index>;
      using Entity = GridEntity<Grid, EntityDimension>;
      using Entity = GridEntity<Grid, entityDimension>;
      using Coordinate = typename Grid::Coordinate;

      __cuda_callable__ inline
@@ -147,13 +149,12 @@ class GridEntityGetter<Meshes::Grid<3, Real, Device, Index>, 2> {
template <typename Real, typename Device, typename Index>
class GridEntityGetter<Meshes::Grid<3, Real, Device, Index>, 1> {
   public:
      static constexpr int EntityDimension = 1;
      static constexpr int entityDimension = 1;

      using Grid = Meshes::Grid<3, Real, Device, Index>;
      using Entity = GridEntity<Grid, EntityDimension>;
      using Entity = GridEntity<Grid, entityDimension>;
      using Coordinate = typename Grid::Coordinate;


      __cuda_callable__ inline
      static Index getEntityIndex(const Grid& grid, const Entity& entity) {
         TNL_ASSERT_GE(entity.getCoordinates(), Coordinate(0, 0, 0), "wrong coordinates");
@@ -177,10 +178,10 @@ class GridEntityGetter<Meshes::Grid<3, Real, Device, Index>, 1> {
template <typename Real, typename Device, typename Index>
class GridEntityGetter<Meshes::Grid<3, Real, Device, Index>, 0> {
   public:
      static constexpr int EntityDimension = 0;
      static constexpr int entityDimension = 0;

      using Grid = Meshes::Grid<3, Real, Device, Index>;
      using Entity = GridEntity<Grid, EntityDimension>;
      using Entity = GridEntity<Grid, entityDimension>;
      using Coordinate = typename Grid::Coordinate;

      __cuda_callable__ inline
+18 −16
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ class GridEntityMeasureGetter<Meshes::Grid<Dimension, Real, Device, Index>, 0> {
   using GridType = Grid<Dimension, Real, Device, Index>;

   template <typename EntityType>
   __cuda_callable__ inline static const Real getMeasure(const GridType& grid, const EntityType& entity) {
   __cuda_callable__ inline static Real getMeasure(const GridType& grid, const EntityType& entity) {
      return 0.0;
   }
};
@@ -30,7 +30,7 @@ class GridEntityMeasureGetter<Meshes::Grid<1, Real, Device, Index>, 1> {
   using GridType = Grid<1, Real, Device, Index>;

   template <typename EntityType>
   __cuda_callable__ inline static const Real& getMeasure(const GridType& grid, const EntityType& entity) {
   __cuda_callable__ inline static Real getMeasure(const GridType& grid, const EntityType& entity) {
      return grid.template getSpaceStepsProducts<1>();
   }
};
@@ -44,7 +44,7 @@ class GridEntityMeasureGetter<Meshes::Grid<2, Real, Device, Index>, 2> {
   using GridType = Grid<2, Real, Device, Index>;

   template <typename EntityType>
   __cuda_callable__ inline static const Real& getMeasure(const GridType& grid, const EntityType& entity) {
   __cuda_callable__ inline static Real getMeasure(const GridType& grid, const EntityType& entity) {
      return grid.template getSpaceStepsProducts<1, 1>();
   }
};
@@ -55,11 +55,11 @@ class GridEntityMeasureGetter<Meshes::Grid<2, Real, Device, Index>, 1> {
   using GridType = Grid<2, Real, Device, Index>;

   template <typename EntityType>
   __cuda_callable__ inline static const Real& getMeasure(const GridType& grid, const EntityType& entity) {
      if (entity.getOrientation().x())
         return grid.template getSpaceStepsProducts<0, 1>();
      else
   __cuda_callable__ inline static Real getMeasure(const GridType& grid, const EntityType& entity) {
      if (entity.getOrientation() == 0)
         return grid.template getSpaceStepsProducts<1, 0>();

      return grid.template getSpaceStepsProducts<0, 1>();
   }
};

@@ -72,7 +72,7 @@ class GridEntityMeasureGetter<Meshes::Grid<3, Real, Device, Index>, 3> {
   using GridType = Grid<3, Real, Device, Index>;

   template <typename EntityType>
   __cuda_callable__ inline static const Real& getMeasure(const GridType& grid, const EntityType& entity) {
   __cuda_callable__ inline static Real getMeasure(const GridType& grid, const EntityType& entity) {
      return grid.template getSpaceStepsProducts<1, 1, 1>();
   }
};
@@ -83,13 +83,14 @@ class GridEntityMeasureGetter<Meshes::Grid<3, Real, Device, Index>, 2> {
   using GridType = Grid<3, Real, Device, Index>;

   template <typename EntityType>
   __cuda_callable__ inline static const Real& getMeasure(const GridType& grid, const EntityType& entity) {
      if (entity.getBasis().z())
   __cuda_callable__ inline static Real getMeasure(const GridType& grid, const EntityType& entity) {
      if (entity.getOrientation() == 0)
         return grid.template getSpaceStepsProducts<1, 1, 0>();
      if (entity.getBasis().y())
         return grid.template getSpaceStepsProducts<1, 1, 1>();

      return grid.template getSpaceStepsProducts<1, 1, 0>();
      if (entity.getOrientation() == 1)
         return grid.template getSpaceStepsProducts<1, 0, 1>();

      return grid.template getSpaceStepsProducts<0, 1, 1>();
   }
};

@@ -99,10 +100,11 @@ class GridEntityMeasureGetter<Meshes::Grid<3, Real, Device, Index>, 1> {
   using GridType = Grid<3, Real, Device, Index>;

   template <typename EntityType>
   __cuda_callable__ inline static const Real& getMeasure(const GridType& grid, const EntityType& entity) {
      if (entity.getBasis().x())
   __cuda_callable__ inline static Real getMeasure(const GridType& grid, const EntityType& entity) {
      if (entity.getOrientation() == 0)
         return grid.template getSpaceStepsProducts<1, 0, 0>();
      if (entity.getBasis().y())

      if (entity.getOrientation() == 1)
         return grid.template getSpaceStepsProducts<0, 1, 0>();

      return grid.template getSpaceStepsProducts<0, 0, 1>();
Loading