dune-multidomaingrid 2.8
Loading...
Searching...
No Matches
Classes | Public Types | List of all members
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.
 

Public Member Functions

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::CollectiveCommunicationcomm () 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
 

Entity conversion methods

template<typename EntityType >
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 EntityType & multiDomainEntity (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 >::Entity & multiDomainEntity (const EntityType &e)
 
template<typename EntityType >
static const MDGrid::template HostEntity< EntityType >::type & hostEntity (const EntityType &e)
 
static const auto & multiDomainIntersection (const typename Traits::LeafIntersection &is)
 
static const auto & multiDomainIntersection (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

template<typename MDGrid >
typedef GridFamily::Traits Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::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::CollectiveCommunication & Dune::mdgrid::subdomain::SubDomainGrid< MDGrid >::comm ( ) const
inline

◆ communicate() [1/2]

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

◆ communicate() [2/2]

template<typename MDGrid >
template<typename DataHandleImp , typename DataTypeImp >
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<typename EntityType >
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

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