dune-multidomaingrid 2.10-git
Loading...
Searching...
No Matches
Dune::mdgrid::subdomain::SubDomainGrid< MDGrid > Class Template Reference

#include <dune/grid/multidomaingrid/subdomaingrid/subdomaingrid.hh>

Inheritance diagram for Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >:
Inheritance graph

Public Types

enum  IntersectionType { neighbor , foreign , boundary , processor }
 
using MultiDomainGrid = MDGrid
 
using HostGrid = typename MDGrid::HostGrid
 
typedef SubDomainGridFamily< MDGrid > GridFamily
 
typedef GridFamily::Traits Traits
 
typedef MDGrid::ctype ctype
 The type used for coordinates.
 
typedef MDGrid::SubDomainIndex SubDomainIndex
 The type used for subdomain numbers.
 
typedef GridFamily::Traits::LeafIntersection LeafIntersection
 
typedef GridFamily::Traits::LeafIntersection LeafIntersection
 
typedef GridFamily::Traits::LevelIntersection LevelIntersection
 
typedef GridFamily::Traits::LevelIntersection LevelIntersection
 
typedef GridFamily::Traits::LeafIntersectionIterator LeafIntersectionIterator
 
typedef GridFamily::Traits::LeafIntersectionIterator LeafIntersectionIterator
 
typedef GridFamily::Traits::LevelIntersectionIterator LevelIntersectionIterator
 
typedef GridFamily::Traits::LevelIntersectionIterator LevelIntersectionIterator
 
typedef GridFamily::Traits::HierarchicIterator HierarchicIterator
 
typedef GridFamily::Traits::HierarchicIterator HierarchicIterator
 
typedef GridFamily::Traits::LevelIndexSet LevelIndexSet
 
typedef GridFamily::Traits::LevelIndexSet LevelIndexSet
 
typedef GridFamily::Traits::LeafIndexSet LeafIndexSet
 
typedef GridFamily::Traits::LeafIndexSet LeafIndexSet
 
typedef GridFamily::Traits::GlobalIdSet GlobalIdSet
 
typedef GridFamily::Traits::GlobalIdSet GlobalIdSet
 
typedef GridFamily::Traits::LocalIdSet LocalIdSet
 
typedef GridFamily::Traits::LocalIdSet LocalIdSet
 
typedef typename GridFamily::Traits::Communication Communication
 
typedef typename GridFamily::Traits::Communication Communication
 

Public Member Functions

Traits::LevelGridView levelGridView (int level) const
 
Traits::LeafGridView leafGridView () const
 
Traits::LeafIntersectionIterator ileafbegin (const typename Traits::template Codim< 0 >::Entity &entity) const
 
Traits::LeafIntersectionIterator ileafend (const typename Traits::template Codim< 0 >::Entity &entity) const
 
Traits::LevelIntersectionIterator ilevelbegin (const typename Traits::template Codim< 0 >::Entity &entity) const
 
Traits::LevelIntersectionIterator ilevelend (const typename Traits::template Codim< 0 >::Entity &entity) const
 
bool mark (int, const typename Traits ::template Codim< 0 >::Entity &)
 
bool mark (int refCount, const typename Codim< 0 >::Entity &e)
 
int getMark (const typename Traits::template Codim< 0 >::Entity &) const
 
int getMark (const typename Codim< 0 >::Entity &e) const
 
bool loadBalance ()
 
bool loadBalance (DataHandle &data)
 
Dune grid interface methods
template<typename EntitySeed >
Traits::template Codim< EntitySeed::codimension >::Entity entity (const EntitySeed &entitySeed) const
 
int maxLevel () const
 
template<int codim>
Traits::template Codim< codim >::LevelIterator lbegin (int level) const
 
template<int codim>
Traits::template Codim< codim >::LevelIterator lend (int level) const
 
template<int codim, PartitionIteratorType pitype>
Traits::template Codim< codim >::template Partition< pitype >::LevelIterator lbegin (int level) const
 
template<int codim, PartitionIteratorType pitype>
Traits::template Codim< codim >::template Partition< pitype >::LevelIterator lend (int level) const
 
template<int codim>
Traits::template Codim< codim >::LeafIterator leafbegin () const
 
template<int codim>
Traits::template Codim< codim >::LeafIterator leafend () const
 
template<int codim, PartitionIteratorType pitype>
Traits::template Codim< codim >::template Partition< pitype >::LeafIterator leafbegin () const
 
template<int codim, PartitionIteratorType pitype>
Traits::template Codim< codim >::template Partition< pitype >::LeafIterator leafend () const
 
int size (int level, int codim) const
 
int size (int codim) const
 
int size (int level, GeometryType type) const
 
int size (GeometryType type) const
 
const Traits::GlobalIdSetglobalIdSet () const
 
const Traits::LocalIdSetlocalIdSet () const
 
const Traits::LevelIndexSetlevelIndexSet (int level) const
 
const Traits::LeafIndexSetleafIndexSet () const
 
void globalRefine (int refCount)
 Use MultiDomainGrid::globalRefine() instead of this method.
 
bool mark (int refCount, const typename Traits::template Codim< 0 >::Entity &e)
 Mark the entity e for grid refinement across ALL subdomains.
 
int getMark (const typename Traits::template Codim< 0 >::Entity &e)
 Retrieve the refinement mark of entity e.
 
bool preAdapt ()
 Use MultiDomainGrid::preAdapt() instead of this method.
 
bool adapt ()
 Use MultiDomainGrid::adapt() instead of this method.
 
void postAdapt ()
 Use MultiDomainGrid::postAdapt() instead of this method.
 
int overlapSize (int level, int codim) const
 
int overlapSize (int codim) const
 
int ghostSize (int level, int codim) const
 
int ghostSize (int codim) const
 
const Traits::Communicationcomm () const
 
template<typename DataHandleImp , typename DataTypeImp >
void communicate (CommDataHandleIF< DataHandleImp, DataTypeImp > &data, InterfaceType iftype, CommunicationDirection dir, int level) const
 
template<typename DataHandleImp , typename DataTypeImp >
void communicate (CommDataHandleIF< DataHandleImp, DataTypeImp > &data, InterfaceType iftype, CommunicationDirection dir) const
 
size_t numBoundarySegments () const
 
const MDGrid & multiDomainGrid () const
 Get the MultiDomainGrid that we are part of.
 
SubDomainIndex domain () const
 Return our subdomain number.
 
void update ()
 
bool operator== (const SubDomainGrid &rhs) const
 

Static Public Attributes

static constexpr int dimension
 
static constexpr int dimensionworld
 

Protected Member Functions

GridImpasImp ()
 
const GridImpasImp () const
 

Friends

template<typename , typename >
class ::Dune::mdgrid::MultiDomainGrid
 
template<int codim, int dim, typename GridImp >
class EntityWrapperBase
 
template<int codim, int dim, typename GridImp >
class EntityWrapper
 
template<typename , typename , int codim, PartitionIteratorType pitype, typename GridImp >
class IteratorWrapper
 
template<typename GridImp >
class HierarchicIteratorWrapper
 
template<int mydim, int coorddim, typename GridImp >
class GeometryWrapper
 
template<int mydim, int coorddim, typename GridImp >
class LocalGeometryWrapper
 
template<typename GridImp , typename WrappedIndexSet >
class IndexSetWrapper
 
template<typename GridImp , typename WrappedIdSet >
class IdSetWrapper
 
template<typename , typename , typename >
class IntersectionIteratorWrapper
 
template<typename , typename , typename >
class IntersectionWrapper
 
template<typename >
class LevelGridView
 
template<typename >
class LeafGridView
 

Entity conversion methods

template<class EntityType , std::enable_if_t< std::is_same_v< typename MDGrid::Traits::template Codim< EntityType::codimension >::Entity, EntityType >, int > = 0>
Traits::template Codim< EntityType::codimension >::Entity subDomainEntity (const EntityType &mdEntity) const
 
Traits::LeafIntersectionIterator subDomainIntersectionIterator (const typename MDGrid::LeafSubDomainInterfaceIterator it) const
 
Traits::LevelIntersectionIterator subDomainIntersectionIterator (const typename MDGrid::LevelSubDomainInterfaceIterator it) const
 
template<typename Intersection >
IntersectionType intersectionType (const Intersection &intersection) const
 
template<class EntityType , std::enable_if_t< std::is_same_v< typename MDGrid::Traits::template Codim< EntityType::codimension >::Entity, EntityType >, int > = 0>
static const EntityTypemultiDomainEntity (const EntityType &e)
 specialization for -parent- multidomain entity
 
template<class EntityType , std::enable_if_t<!std::is_same_v< typename MDGrid::Traits::template Codim< EntityType::codimension >::Entity, EntityType >, int > = 0>
static const MDGrid::Traits::template Codim< EntityType::codimension >::EntitymultiDomainEntity (const EntityType &e)
 
template<typename EntityType >
static const MDGrid::template HostEntity< EntityType >::type & hostEntity (const EntityType &e)
 
static const automultiDomainIntersection (const typename Traits::LeafIntersection &is)
 
static const automultiDomainIntersection (const typename Traits::LevelIntersection &is)
 

Member Typedef Documentation

◆ ctype

template<typename MDGrid >
typedef MDGrid::ctype Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::ctype

The type used for coordinates.

◆ GridFamily

template<typename MDGrid >
typedef SubDomainGridFamily<MDGrid> Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::GridFamily

◆ HostGrid

template<typename MDGrid >
using Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::HostGrid = typename MDGrid::HostGrid

◆ MultiDomainGrid

template<typename MDGrid >
using Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::MultiDomainGrid = MDGrid

◆ SubDomainIndex

template<typename MDGrid >
typedef MDGrid::SubDomainIndex Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::SubDomainIndex

The type used for subdomain numbers.

◆ Traits

Member Enumeration Documentation

◆ IntersectionType

Enumerator
neighbor 
foreign 
boundary 
processor 

Member Function Documentation

◆ adapt()

template<typename MDGrid >
bool Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::adapt ( )
inline

Use MultiDomainGrid::adapt() instead of this method.

Like all grid modification methods, adapt() may ONLY be called on the underlying MultiDomainGrid.

Exceptions
NotImplementedcalling adapt() will always throw this exception.

◆ comm()

template<typename MDGrid >
const Traits::Communication & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::comm ( ) const
inline

◆ communicate() [1/2]

template<typename MDGrid >
void Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::communicate ( CommDataHandleIF< DataHandleImp, DataTypeImp > &  data,
InterfaceType  iftype,
CommunicationDirection  dir 
) const
inline

◆ communicate() [2/2]

template<typename MDGrid >
void Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::communicate ( CommDataHandleIF< DataHandleImp, DataTypeImp > &  data,
InterfaceType  iftype,
CommunicationDirection  dir,
int  level 
) const
inline

◆ domain()

template<typename MDGrid >
SubDomainIndex Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::domain ( ) const
inline

Return our subdomain number.

◆ entity()

template<typename MDGrid >
template<typename EntitySeed >
Traits::template Codim< EntitySeed::codimension >::Entity Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::entity ( const EntitySeed entitySeed) const
inline

◆ getMark()

template<typename MDGrid >
int Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::getMark ( const typename Traits::template Codim< 0 >::Entity e)
inline

Retrieve the refinement mark of entity e.

 This method returns the refinement mark set on the entity by a call to mark(). As the
 mark might have been set on any subdomain containing e, the caller should not assume that
 entities always carry the mark assigned within the current subdomain.
Parameters
ethe entity for which to return the refinement mark.

◆ ghostSize() [1/2]

template<typename MDGrid >
int Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::ghostSize ( int  codim) const
inline

◆ ghostSize() [2/2]

template<typename MDGrid >
int Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::ghostSize ( int  level,
int  codim 
) const
inline

◆ globalIdSet()

template<typename MDGrid >
const Traits::GlobalIdSet & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::globalIdSet ( ) const
inline

◆ globalRefine()

template<typename MDGrid >
void Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::globalRefine ( int  refCount)
inline

Use MultiDomainGrid::globalRefine() instead of this method.

Like all grid modification methods, globalRefine() may ONLY be called on the underlying MultiDomainGrid.

Exceptions
NotImplementedcalling globalRefine() will always throw this exception.

◆ hostEntity()

template<typename MDGrid >
template<typename EntityType >
static const MDGrid::template HostEntity< EntityType >::type & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::hostEntity ( const EntityType e)
inlinestatic

◆ intersectionType()

template<typename MDGrid >
template<typename Intersection >
IntersectionType Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::intersectionType ( const Intersection intersection) const
inline

◆ lbegin() [1/2]

template<typename MDGrid >
template<int codim>
Traits::template Codim< codim >::LevelIterator Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::lbegin ( int  level) const
inline

◆ lbegin() [2/2]

template<typename MDGrid >
template<int codim, PartitionIteratorType pitype>
Traits::template Codim< codim >::template Partition< pitype >::LevelIterator Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::lbegin ( int  level) const
inline

◆ leafbegin() [1/2]

template<typename MDGrid >
template<int codim>
Traits::template Codim< codim >::LeafIterator Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::leafbegin ( ) const
inline

◆ leafbegin() [2/2]

template<typename MDGrid >
template<int codim, PartitionIteratorType pitype>
Traits::template Codim< codim >::template Partition< pitype >::LeafIterator Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::leafbegin ( ) const
inline

◆ leafend() [1/2]

template<typename MDGrid >
template<int codim>
Traits::template Codim< codim >::LeafIterator Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::leafend ( ) const
inline

◆ leafend() [2/2]

template<typename MDGrid >
template<int codim, PartitionIteratorType pitype>
Traits::template Codim< codim >::template Partition< pitype >::LeafIterator Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::leafend ( ) const
inline

◆ leafIndexSet()

template<typename MDGrid >
const Traits::LeafIndexSet & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::leafIndexSet ( ) const
inline

◆ lend() [1/2]

template<typename MDGrid >
template<int codim>
Traits::template Codim< codim >::LevelIterator Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::lend ( int  level) const
inline

◆ lend() [2/2]

template<typename MDGrid >
template<int codim, PartitionIteratorType pitype>
Traits::template Codim< codim >::template Partition< pitype >::LevelIterator Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::lend ( int  level) const
inline

◆ levelIndexSet()

template<typename MDGrid >
const Traits::LevelIndexSet & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::levelIndexSet ( int  level) const
inline

◆ localIdSet()

template<typename MDGrid >
const Traits::LocalIdSet & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::localIdSet ( ) const
inline

◆ mark()

template<typename MDGrid >
bool Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::mark ( int  refCount,
const typename Traits::template Codim< 0 >::Entity e 
)
inline

Mark the entity e for grid refinement across ALL subdomains.

This method marks the passed entity for refinement on the underlying MultiDomainGrid. When using this method, keep in mind that a) this will have an effect across all subdomains and also on the MultiDomainGrid. b) the exact semantics of refinement depend on the host grid.

Parameters
refCountthe refinement mark to set, for exact semantics see the documentation of the host grid.
ethe entity to refine / coarsen.

◆ maxLevel()

template<typename MDGrid >
int Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::maxLevel ( ) const
inline

◆ multiDomainEntity() [1/2]

template<typename MDGrid >
template<class EntityType , std::enable_if_t< std::is_same_v< typename MDGrid::Traits::template Codim< EntityType::codimension >::Entity, EntityType >, int > = 0>
static const EntityType & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::multiDomainEntity ( const EntityType e)
inlinestatic

specialization for -parent- multidomain entity

◆ multiDomainEntity() [2/2]

template<typename MDGrid >
template<class EntityType , std::enable_if_t<!std::is_same_v< typename MDGrid::Traits::template Codim< EntityType::codimension >::Entity, EntityType >, int > = 0>
static const MDGrid::Traits::template Codim< EntityType::codimension >::Entity & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::multiDomainEntity ( const EntityType e)
inlinestatic

◆ multiDomainGrid()

template<typename MDGrid >
const MDGrid & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::multiDomainGrid ( ) const
inline

Get the MultiDomainGrid that we are part of.

◆ multiDomainIntersection() [1/2]

template<typename MDGrid >
static const auto & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::multiDomainIntersection ( const typename Traits::LeafIntersection is)
inlinestatic

◆ multiDomainIntersection() [2/2]

template<typename MDGrid >
static const auto & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::multiDomainIntersection ( const typename Traits::LevelIntersection is)
inlinestatic

◆ numBoundarySegments()

template<typename MDGrid >
size_t Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::numBoundarySegments ( ) const
inline

◆ operator==()

template<typename MDGrid >
bool Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::operator== ( const SubDomainGrid< MDGrid > &  rhs) const
inline

◆ overlapSize() [1/2]

template<typename MDGrid >
int Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::overlapSize ( int  codim) const
inline

◆ overlapSize() [2/2]

template<typename MDGrid >
int Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::overlapSize ( int  level,
int  codim 
) const
inline

◆ postAdapt()

template<typename MDGrid >
void Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::postAdapt ( )
inline

Use MultiDomainGrid::postAdapt() instead of this method.

Like all grid modification methods, postAdapt() may ONLY be called on the underlying MultiDomainGrid.

Exceptions
NotImplementedcalling postAdapt() will always throw this exception.

◆ preAdapt()

template<typename MDGrid >
bool Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::preAdapt ( )
inline

Use MultiDomainGrid::preAdapt() instead of this method.

Like all grid modification methods, preAdapt() may ONLY be called on the underlying MultiDomainGrid.

Exceptions
NotImplementedcalling preAdapt() will always throw this exception.

◆ size() [1/4]

template<typename MDGrid >
int Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::size ( GeometryType  type) const
inline

◆ size() [2/4]

template<typename MDGrid >
int Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::size ( int  codim) const
inline

◆ size() [3/4]

template<typename MDGrid >
int Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::size ( int  level,
GeometryType  type 
) const
inline

◆ size() [4/4]

template<typename MDGrid >
int Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::size ( int  level,
int  codim 
) const
inline

◆ subDomainEntity()

template<typename MDGrid >
template<class EntityType , std::enable_if_t< std::is_same_v< typename MDGrid::Traits::template Codim< EntityType::codimension >::Entity, EntityType >, int > = 0>
Traits::template Codim< EntityType::codimension >::Entity Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::subDomainEntity ( const EntityType mdEntity) const
inline

◆ subDomainIntersectionIterator() [1/2]

template<typename MDGrid >
Traits::LeafIntersectionIterator Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::subDomainIntersectionIterator ( const typename MDGrid::LeafSubDomainInterfaceIterator  it) const
inline

◆ subDomainIntersectionIterator() [2/2]

template<typename MDGrid >
Traits::LevelIntersectionIterator Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::subDomainIntersectionIterator ( const typename MDGrid::LevelSubDomainInterfaceIterator  it) const
inline

◆ update()

template<typename MDGrid >
void Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::update ( )
inline

Friends And Related Symbol Documentation

◆ ::Dune::mdgrid::MultiDomainGrid

template<typename MDGrid >
template<typename , typename >
friend class ::Dune::mdgrid::MultiDomainGrid
friend

◆ EntityWrapper

template<typename MDGrid >
template<int codim, int dim, typename GridImp >
friend class EntityWrapper
friend

◆ EntityWrapperBase

template<typename MDGrid >
template<int codim, int dim, typename GridImp >
friend class EntityWrapperBase
friend

◆ GeometryWrapper

template<typename MDGrid >
template<int mydim, int coorddim, typename GridImp >
friend class GeometryWrapper
friend

◆ HierarchicIteratorWrapper

template<typename MDGrid >
template<typename GridImp >
friend class HierarchicIteratorWrapper
friend

◆ IdSetWrapper

template<typename MDGrid >
friend class IdSetWrapper
friend

◆ IndexSetWrapper

◆ IntersectionIteratorWrapper

template<typename MDGrid >
template<typename , typename , typename >
friend class IntersectionIteratorWrapper
friend

◆ IntersectionWrapper

template<typename MDGrid >
template<typename , typename , typename >
friend class IntersectionWrapper
friend

◆ IteratorWrapper

template<typename MDGrid >
template<typename , typename , int codim, PartitionIteratorType pitype, typename GridImp >
friend class IteratorWrapper
friend

◆ LeafGridView

template<typename MDGrid >
template<typename >
friend class LeafGridView
friend

◆ LevelGridView

template<typename MDGrid >
template<typename >
friend class LevelGridView
friend

◆ LocalGeometryWrapper

template<typename MDGrid >
template<int mydim, int coorddim, typename GridImp >
friend class LocalGeometryWrapper
friend

Member Data Documentation

◆ dimension

template<typename MDGrid >
static constexpr int Dune::GridDefaultImplementation< int dim, int dimworld, class ct, class GridFamily >::dimension
static

◆ dimensionworld

template<typename MDGrid >
static constexpr int Dune::GridDefaultImplementation< int dim, int dimworld, class ct, class GridFamily >::dimensionworld
static

The documentation for this class was generated from the following files: