dune-fem 2.12-git
Loading...
Searching...
No Matches
Dune::Fem::AdaptiveGridPartBase< TraitsImp > Class Template Reference

A grid part with an index set specially designed for adaptive calculations. More...

#include <dune/fem/gridpart/adaptiveleafgridpart.hh>

Inheritance diagram for Dune::Fem::AdaptiveGridPartBase< TraitsImp >:
Inheritance graph

Classes

struct  Codim
 Struct providing types of the leaf iterators on codimension codim. More...
 

Public Types

typedef TraitsImp Traits
 Type definitions.
 
typedef Traits::GridPartType GridPartType
 Grid implementation type.
 
typedef Traits::GridType GridType
 Grid implementation type.
 
typedef Traits::IndexSetType IndexSetType
 The leaf index set of the grid implementation.
 
typedef Traits::IntersectionIteratorType IntersectionIteratorType
 type of intersection iterator
 
typedef IntersectionIteratorType::Intersection IntersectionType
 type of intersection
 
typedef std::integral_constant< bool, false > NoIndexSetType
 
typedef GridPartType GridViewType
 
typedef Traits::CommunicationType CommunicationType
 Collective communication.
 
typedef DofManager< GridTypeDofManagerType
 type of DofManager
 
typedef BoundaryIdProvider< GridTypeBoundaryIdProviderType
 type of boundary id provider specialized for each grid type
 
typedef GridType Grid
 type of Grid implementation
 
typedef IndexSetType IndexSet
 Index set implementation.
 
typedef CommunicationType Communication
 Collective communication.
 
typedef Traits::TwistUtilityType TwistUtilityType
 Twist utility type.
 
typedef IntersectionIteratorType IntersectionIterator
 type of IntersectionIterator
 
typedef IntersectionType Intersection
 type of Intersection
 
typedef GridType::ctype ctype
 

Public Member Functions

 AdaptiveGridPartBase (GridType &grid)
 constructor
 
 AdaptiveGridPartBase (const ThisType &other)=default
 Copy Constructor.
 
AdaptiveGridPartBaseoperator= (const AdaptiveGridPartBase &other)=default
 
const IndexSetTypeindexSet () const
 Returns reference to index set of the underlying grid.
 
IndexSetTypeindexSet ()
 Returns reference to index set of the underlying grid.
 
template<int codim>
Codim< codim >::IteratorType begin () const
 Begin iterator on the leaf level.
 
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::IteratorType begin () const
 Begin iterator on the leaf level.
 
template<int codim>
Codim< codim >::IteratorType end () const
 Begin iterator on the leaf level.
 
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::IteratorType end () const
 End iterator on the leaf level.
 
IntersectionIteratorType ibegin (const ElementType &entity) const
 ibegin of corresponding intersection iterator for given entity
 
IntersectionIteratorType iend (const ElementType &entity) const
 iend of corresponding intersection iterator for given entity
 
template<class DataHandle , class Data >
decltype(auto) communicate (CommDataHandleIF< DataHandle, Data > &data, InterfaceType iftype, CommunicationDirection dir) const
 corresponding communication method for this grid part
 
const GridTypegrid () const
 Returns const reference to the underlying grid.
 
GridTypegrid ()
 Returns reference to the underlying grid.
 
bool isConforming () const
 returns true if current grid part represents a conforming grid
 
int size (int codim) const
 obtain number of entities in a given codimension
 
int size (const GeometryType &type) const
 obtain number of entities with a given geometry type
 
bool contains (const EntityType &e) const
 
const CommunicationTypecomm () const
 obtain collective communication object
 
Traits::template Codim< EntitySeed::codimension >::EntityType entity (const EntitySeed &seed) const
 obtain entity pointer from entity seed
 
const Entityconvert (const Entity &entity) const
 convert the grid's entity to a grid part entity Usually the parameter is GridType :: Codim< codim > :: Entity and the return is Codim< codim > :: EntityType. In general these types are the same, but for overloaded entities on grid parts this can differ.
 
int boundaryId (const IntersectionType &intersection) const
 obtain entity pointer from entity seed
 
int level () const
 Level of the grid part.
 
IntersectionIteratorType ibegin (const typename Codim< 0 >::EntityType &entity) const
 ibegin of corresponding intersection iterator for given entity
 
IntersectionIteratorType iend (const typename Codim< 0 >::EntityType &entity) const
 iend of corresponding intersection iterator for given entity
 
template<class DataHandleImp , class DataType >
void communicate (CommDataHandleIF< DataHandleImp, DataType > &data, InterfaceType iftype, CommunicationDirection dir) const
 corresponding communication method for grid part
 
int overlapSize (int codim) const
 
int ghostSize (int codim) const
 
int sequence () const
 return sequence number to update structures depending on the grid part
 
const auto & gridView () const
 

Static Public Attributes

static const PartitionIteratorType indexSetPartitionType = Traits::indexSetPartitionType
 Maximum Partition type, the index set provides indices for.
 
static const InterfaceType indexSetInterfaceType = Traits::indexSetInterfaceType
 
static constexpr int dimension = GridType::dimension
 
static constexpr int dimensionworld = GridType::dimensionworld
 
static constexpr bool conforming = Traits::conforming
 

Protected Types

typedef SingletonList< const GridType *, IndexSetTypeIndexSetProviderType
 
typedef Codim< 0 >::EntityType ElementType
 

Protected Member Functions

 AdaptiveGridPartBase (GridType &grid, const NoIndexSetType &noIndexSet)
 Constructor constructing object held by index set (for iterator access)
 
const GridPartTypeasImp () const
 
GridPartTypeasImp ()
 

Protected Attributes

LeafGridView leafGridView_
 
std::shared_ptr< IndexSetTypeindexSet_
 
GridTypegrid_
 
DofManagerTypedofManager_
 

Detailed Description

template<class TraitsImp>
class Dune::Fem::AdaptiveGridPartBase< TraitsImp >

A grid part with an index set specially designed for adaptive calculations.

The underlying index set is defined for entities of all codimensions.

Member Typedef Documentation

◆ BoundaryIdProviderType

typedef BoundaryIdProvider< GridType > Dune::Fem::GridPartDefault< TraitsImp >::BoundaryIdProviderType
inherited

type of boundary id provider specialized for each grid type

◆ Communication

template<class GridPartTraits >
typedef CommunicationType Dune::Fem::GridPartInterface< GridPartTraits >::Communication
inherited

Collective communication.

◆ CommunicationType

typedef Traits::CommunicationType Dune::Fem::GridPartDefault< TraitsImp >::CommunicationType
inherited

Collective communication.

◆ ctype

template<class GridPartTraits >
typedef GridType::ctype Dune::Fem::GridPartInterface< GridPartTraits >::ctype
inherited

◆ DofManagerType

typedef DofManager< GridType > Dune::Fem::GridPartDefault< TraitsImp >::DofManagerType
inherited

type of DofManager

◆ ElementType

template<class TraitsImp >
typedef Codim<0>::EntityType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::ElementType
protected

◆ Grid

template<class GridPartTraits >
typedef GridType Dune::Fem::GridPartInterface< GridPartTraits >::Grid
inherited

type of Grid implementation

◆ GridPartType

template<class TraitsImp >
typedef Traits::GridPartType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::GridPartType

Grid implementation type.

◆ GridType

template<class TraitsImp >
typedef Traits::GridType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::GridType

Grid implementation type.

◆ GridViewType

template<class TraitsImp >
typedef GridPartType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::GridViewType

◆ IndexSet

template<class GridPartTraits >
typedef IndexSetType Dune::Fem::GridPartInterface< GridPartTraits >::IndexSet
inherited

Index set implementation.

◆ IndexSetProviderType

template<class TraitsImp >
typedef SingletonList< const GridType*, IndexSetType > Dune::Fem::AdaptiveGridPartBase< TraitsImp >::IndexSetProviderType
protected

◆ IndexSetType

template<class TraitsImp >
typedef Traits::IndexSetType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::IndexSetType

The leaf index set of the grid implementation.

◆ Intersection

template<class GridPartTraits >
typedef IntersectionType Dune::Fem::GridPartInterface< GridPartTraits >::Intersection
inherited

type of Intersection

◆ IntersectionIterator

template<class GridPartTraits >
typedef IntersectionIteratorType Dune::Fem::GridPartInterface< GridPartTraits >::IntersectionIterator
inherited

◆ IntersectionIteratorType

template<class TraitsImp >
typedef Traits::IntersectionIteratorType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::IntersectionIteratorType

type of intersection iterator

◆ IntersectionType

template<class TraitsImp >
typedef IntersectionIteratorType::Intersection Dune::Fem::AdaptiveGridPartBase< TraitsImp >::IntersectionType

type of intersection

◆ NoIndexSetType

template<class TraitsImp >
typedef std::integral_constant< bool, false > Dune::Fem::AdaptiveGridPartBase< TraitsImp >::NoIndexSetType

◆ Traits

template<class TraitsImp >
typedef TraitsImp Dune::Fem::AdaptiveGridPartBase< TraitsImp >::Traits

Type definitions.

◆ TwistUtilityType

template<class GridPartTraits >
typedef Traits::TwistUtilityType Dune::Fem::GridPartInterface< GridPartTraits >::TwistUtilityType
inherited

Twist utility type.

Constructor & Destructor Documentation

◆ AdaptiveGridPartBase() [1/3]

template<class TraitsImp >
Dune::Fem::AdaptiveGridPartBase< TraitsImp >::AdaptiveGridPartBase ( GridType grid)
inlineexplicit

constructor

◆ AdaptiveGridPartBase() [2/3]

template<class TraitsImp >
Dune::Fem::AdaptiveGridPartBase< TraitsImp >::AdaptiveGridPartBase ( const ThisType other)
default

Copy Constructor.

◆ AdaptiveGridPartBase() [3/3]

template<class TraitsImp >
Dune::Fem::AdaptiveGridPartBase< TraitsImp >::AdaptiveGridPartBase ( GridType grid,
const NoIndexSetType noIndexSet 
)
inlineprotected

Constructor constructing object held by index set (for iterator access)

Member Function Documentation

◆ asImp() [1/2]

template<class TraitsImp >
GridPartType & Dune::Fem::AdaptiveGridPartBase< TraitsImp >::asImp ( )
inlineprotected

◆ asImp() [2/2]

template<class TraitsImp >
const GridPartType & Dune::Fem::AdaptiveGridPartBase< TraitsImp >::asImp ( ) const
inlineprotected

◆ begin() [1/2]

template<class TraitsImp >
template<int codim>
Codim< codim >::IteratorType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::begin ( ) const
inline

Begin iterator on the leaf level.

◆ begin() [2/2]

template<class TraitsImp >
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::IteratorType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::begin ( ) const
inline

Begin iterator on the leaf level.

◆ boundaryId()

int Dune::Fem::GridPartDefault< TraitsImp >::boundaryId ( const IntersectionType intersection) const
inlineinherited

obtain entity pointer from entity seed

◆ comm()

const CommunicationType & Dune::Fem::GridPartDefault< TraitsImp >::comm ( ) const
inlineinherited

obtain collective communication object

◆ communicate() [1/2]

template<class TraitsImp >
template<class DataHandle , class Data >
decltype(auto) Dune::Fem::AdaptiveGridPartBase< TraitsImp >::communicate ( CommDataHandleIF< DataHandle, Data > &  data,
InterfaceType  iftype,
CommunicationDirection  dir 
) const
inline

corresponding communication method for this grid part

◆ communicate() [2/2]

template<class GridPartTraits >
template<class DataHandleImp , class DataType >
void Dune::Fem::GridPartInterface< GridPartTraits >::communicate ( CommDataHandleIF< DataHandleImp, DataType > &  data,
InterfaceType  iftype,
CommunicationDirection  dir 
) const
inlineinherited

corresponding communication method for grid part

◆ contains()

bool Dune::Fem::GridPartDefault< TraitsImp >::contains ( const EntityType &  e) const
inlineinherited

◆ convert()

const Entity & Dune::Fem::GridPartDefault< TraitsImp >::convert ( const Entity entity) const
inlineinherited

convert the grid's entity to a grid part entity Usually the parameter is GridType :: Codim< codim > :: Entity and the return is Codim< codim > :: EntityType. In general these types are the same, but for overloaded entities on grid parts this can differ.

Note
The default implementation does nothing but return the same entity

◆ end() [1/2]

template<class TraitsImp >
template<int codim>
Codim< codim >::IteratorType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::end ( ) const
inline

Begin iterator on the leaf level.

◆ end() [2/2]

template<class TraitsImp >
template<int codim, PartitionIteratorType pitype>
Codim< codim >::template Partition< pitype >::IteratorType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::end ( ) const
inline

End iterator on the leaf level.

◆ entity()

Traits::template Codim< EntitySeed::codimension >::EntityType Dune::Fem::GridPartDefault< TraitsImp >::entity ( const EntitySeed seed) const
inlineinherited

obtain entity pointer from entity seed

Template Parameters
EntitySeedentity seed from which to create entity

The default implementation simply forwards to the corresponding method on the grid.

◆ ghostSize()

template<class GridPartTraits >
int Dune::Fem::GridPartInterface< GridPartTraits >::ghostSize ( int  codim) const
inlineinherited

◆ grid() [1/2]

GridType & Dune::Fem::GridPartDefault< TraitsImp >::grid ( )
inlineinherited

Returns reference to the underlying grid.

◆ grid() [2/2]

const GridType & Dune::Fem::GridPartDefault< TraitsImp >::grid ( ) const
inlineinherited

Returns const reference to the underlying grid.

◆ gridView()

template<class GridPartTraits >
const auto & Dune::Fem::GridPartInterface< GridPartTraits >::gridView ( ) const
inlineinherited

◆ ibegin() [1/2]

template<class TraitsImp >
IntersectionIteratorType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::ibegin ( const ElementType entity) const
inline

ibegin of corresponding intersection iterator for given entity

◆ ibegin() [2/2]

template<class GridPartTraits >
IntersectionIteratorType Dune::Fem::GridPartInterface< GridPartTraits >::ibegin ( const typename Codim< 0 >::EntityType &  entity) const
inlineinherited

ibegin of corresponding intersection iterator for given entity

◆ iend() [1/2]

template<class TraitsImp >
IntersectionIteratorType Dune::Fem::AdaptiveGridPartBase< TraitsImp >::iend ( const ElementType entity) const
inline

iend of corresponding intersection iterator for given entity

◆ iend() [2/2]

template<class GridPartTraits >
IntersectionIteratorType Dune::Fem::GridPartInterface< GridPartTraits >::iend ( const typename Codim< 0 >::EntityType &  entity) const
inlineinherited

iend of corresponding intersection iterator for given entity

◆ indexSet() [1/2]

template<class TraitsImp >
IndexSetType & Dune::Fem::AdaptiveGridPartBase< TraitsImp >::indexSet ( )
inline

Returns reference to index set of the underlying grid.

◆ indexSet() [2/2]

template<class TraitsImp >
const IndexSetType & Dune::Fem::AdaptiveGridPartBase< TraitsImp >::indexSet ( ) const
inline

Returns reference to index set of the underlying grid.

◆ isConforming()

bool Dune::Fem::GridPartDefault< TraitsImp >::isConforming ( ) const
inlineinherited

returns true if current grid part represents a conforming grid

◆ level()

template<class GridPartTraits >
int Dune::Fem::GridPartInterface< GridPartTraits >::level ( ) const
inlineinherited

Level of the grid part.

◆ operator=()

template<class TraitsImp >
AdaptiveGridPartBase & Dune::Fem::AdaptiveGridPartBase< TraitsImp >::operator= ( const AdaptiveGridPartBase< TraitsImp > &  other)
default

◆ overlapSize()

template<class GridPartTraits >
int Dune::Fem::GridPartInterface< GridPartTraits >::overlapSize ( int  codim) const
inlineinherited

◆ sequence()

template<class GridPartTraits >
int Dune::Fem::GridPartInterface< GridPartTraits >::sequence ( ) const
inlineinherited

return sequence number to update structures depending on the grid part

Note
The default returns DofManager< Grid > :: sequence ()

◆ size() [1/2]

int Dune::Fem::GridPartDefault< TraitsImp >::size ( const GeometryType type) const
inlineinherited

obtain number of entities with a given geometry type

◆ size() [2/2]

int Dune::Fem::GridPartDefault< TraitsImp >::size ( int  codim) const
inlineinherited

obtain number of entities in a given codimension

Member Data Documentation

◆ conforming

template<class GridPartTraits >
constexpr bool Dune::Fem::GridPartInterface< GridPartTraits >::conforming = Traits::conforming
staticconstexprinherited

◆ dimension

template<class GridPartTraits >
constexpr int Dune::Fem::GridPartInterface< GridPartTraits >::dimension = GridType::dimension
staticconstexprinherited

◆ dimensionworld

template<class GridPartTraits >
constexpr int Dune::Fem::GridPartInterface< GridPartTraits >::dimensionworld = GridType::dimensionworld
staticconstexprinherited

◆ dofManager_

DofManagerType* Dune::Fem::GridPartDefault< TraitsImp >::dofManager_
protectedinherited

◆ grid_

GridType* Dune::Fem::GridPartDefault< TraitsImp >::grid_
protectedinherited

◆ indexSet_

template<class TraitsImp >
std::shared_ptr< IndexSetType > Dune::Fem::AdaptiveGridPartBase< TraitsImp >::indexSet_
protected

◆ indexSetInterfaceType

template<class GridPartTraits >
const InterfaceType Dune::Fem::GridPartInterface< GridPartTraits >::indexSetInterfaceType = Traits::indexSetInterfaceType
staticinherited

◆ indexSetPartitionType

template<class GridPartTraits >
const PartitionIteratorType Dune::Fem::GridPartInterface< GridPartTraits >::indexSetPartitionType = Traits::indexSetPartitionType
staticinherited

Maximum Partition type, the index set provides indices for.

◆ leafGridView_

template<class TraitsImp >
LeafGridView Dune::Fem::AdaptiveGridPartBase< TraitsImp >::leafGridView_
protected

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