Commit 2fffec6f authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

DistributedGrid: added methods setGhostLevels and getGhostLevels for...

DistributedGrid: added methods setGhostLevels and getGhostLevels for compatibility with DistributedMesh
parent 02c76403
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -54,6 +54,10 @@ class DistributedMesh< Grid< Dimension, Real, Device, Index > >
      void setOverlaps( const SubdomainOverlapsType& lower,
                        const SubdomainOverlapsType& upper);

      // for compatibility with DistributedMesh
      void setGhostLevels( int levels );
      int getGhostLevels() const;

      void setupGrid( GridType& grid);

      bool isDistributed() const;
+18 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include <cstdlib>

#include "DistributedGrid.h"
#include <TNL/Meshes/DistributedMeshes/SubdomainOverlapsGetter.h>
#include <TNL/MPI/Wrappers.h>

namespace TNL {
@@ -139,6 +140,23 @@ setOverlaps( const SubdomainOverlapsType& lower,
   this->localGridSize = this->localSize + this->lowerOverlap + this->upperOverlap;
}

template< int Dimension, typename Real, typename Device, typename Index >
void
DistributedMesh< Grid< Dimension, Real, Device, Index > >::
setGhostLevels( int levels )
{
   SubdomainOverlapsType lowerOverlap, upperOverlap;
   SubdomainOverlapsGetter< GridType >::getOverlaps( this, lowerOverlap, upperOverlap, levels );
   setOverlaps( lowerOverlap, upperOverlap );
}

template< int Dimension, typename Real, typename Device, typename Index >
int
DistributedMesh< Grid< Dimension, Real, Device, Index > >::
getGhostLevels() const
{
   return TNL::max( TNL::max(lowerOverlap), TNL::max(upperOverlap) );
}

template< int Dimension, typename Real, typename Device, typename Index >
void
+7 −6
Original line number Diff line number Diff line
@@ -11,12 +11,14 @@
#pragma once

#include <TNL/Meshes/Grid.h>
#include <TNL/Meshes/DistributedMeshes/DistributedMesh.h>

namespace TNL {
namespace Meshes {
namespace DistributedMeshes {

template< typename Mesh >
class DistributedMesh;

template< typename Mesh >
class SubdomainOverlapsGetter
{};
@@ -118,7 +120,6 @@ class SubdomainOverlapsGetter< Grid< 3, Real, Device, Index > >

};


} // namespace DistributedMeshes
} // namespace Meshes
} // namespace TNL