1#ifndef DUNE_FEM_GRIDPART_COMMON_GRIDPART2GRIDVIEW_HH
2#define DUNE_FEM_GRIDPART_COMMON_GRIDPART2GRIDVIEW_HH
6#include <dune/common/exceptions.hh>
8#include <dune/grid/common/gridenums.hh>
9#include <dune/grid/common/gridview.hh>
14#ifdef USING_DUNE_PYTHON
20 template<
class Gr
id >
21 inline static void addGridModificationListener (
const Grid &grid );
28 template<
class Gr
idPart >
29 class GridPart2GridViewImpl;
32 template<
class Gr
idPart >
37 typedef typename GridPart::GridType
Grid;
38 typedef typename GridPart::IndexSetType
IndexSet;
47 :
public Grid::Traits::template
Codim< codim >
54 template< PartitionIteratorType pitype >
63 static const bool conforming = GridPart::Traits::conforming;
67 template<
class Gr
idPart >
73 typedef typename GridPart::ctype
ctype;
97 :
public Traits::template
Codim< codim >
106 : gridPartStorage_(nullptr)
109 template<
class... Args,
110 std::enable_if_t< std::is_constructible<
GridPartType, Args..., ThisType* >::value,
int > = 0 >
112 : gridPartStorage_(new
GridPartType(
std::forward< Args >( args )..., this) )
113 , gridPart_(gridPartStorage_.
get())
115#ifdef USING_DUNE_PYTHON
117 FemPy::detail::addGridModificationListener(
gridPart().
grid() );
139 int size (
const GeometryType &type )
const
144 template<
class EntityType>
150 template<
int codim >
153 return begin< codim, All_Partition >();
156 template<
int codim, PartitionIteratorType pitype >
159 return gridPart().template begin< codim, pitype >();
162 template<
int codim >
165 return end< codim, All_Partition >();
168 template<
int codim, PartitionIteratorType pitype >
171 return gridPart().template end< codim, pitype >();
191 DUNE_THROW( NotImplemented,
"Method ghostSize() not implemented yet" );
196 DUNE_THROW( NotImplemented,
"Method ghostSize() not implemented yet" );
199 template<
class DataHandleImp,
class DataType >
200 void communicate ( CommDataHandleIF< DataHandleImp, DataType > &data,
201 InterfaceType iftype,
202 CommunicationDirection dir )
const
204 gridPart().communicate( data, iftype, dir );
213 std::shared_ptr<GridPartType> gridPartStorage_;
219 template<
class Gr
idPart >
221 :
public GridView< GridPart2GridViewTraits< GridPart > >
224 typedef GridView< GridPart2GridViewTraits< GridPart > > BaseType;
226 typedef typename BaseType::GridViewImp GridViewImp;
230 : BaseType( GridViewImp( gridPart ) )
Definition: bindguard.hh:11
std::tuple_element< i, Tuple >::type & get(Dune::TypeIndexedTuple< Tuple, Types > &tuple)
Definition: typeindexedtuple.hh:122
Definition: gridpart2gridview.hh:69
GridPart GridPartType
Definition: gridpart2gridview.hh:75
GridPart2GridViewImpl(Args &&... args)
Definition: gridpart2gridview.hh:111
int overlapSize(int codim) const
Definition: gridpart2gridview.hh:189
const IndexSet & indexSet() const
Definition: gridpart2gridview.hh:129
~GridPart2GridViewImpl()
Definition: gridpart2gridview.hh:121
Traits::Grid Grid
type of the grid
Definition: gridpart2gridview.hh:80
Traits::Intersection Intersection
type of the intersection
Definition: gridpart2gridview.hh:86
GridPart2GridViewTraits< GridPartType > Traits
Definition: gridpart2gridview.hh:77
Codim< codim >::Iterator end() const
Definition: gridpart2gridview.hh:163
Codim< codim >::template Partition< pitype >::Iterator end() const
Definition: gridpart2gridview.hh:169
Codim< codim >::template Partition< pitype >::Iterator begin() const
Definition: gridpart2gridview.hh:157
bool contains(const EntityType &e) const
Definition: gridpart2gridview.hh:145
const GridPartType & gridPart() const
Definition: gridpart2gridview.hh:207
@ dimensionworld
Definition: gridpart2gridview.hh:103
GridPart2GridViewImpl(const GridPartType &gridPart)
Definition: gridpart2gridview.hh:105
int size(const GeometryType &type) const
Definition: gridpart2gridview.hh:139
IntersectionIterator ibegin(const typename Codim< 0 >::Entity &entity) const
Definition: gridpart2gridview.hh:174
int ghostSize(int codim) const
Definition: gridpart2gridview.hh:194
int size(int codim) const
Definition: gridpart2gridview.hh:134
void communicate(CommDataHandleIF< DataHandleImp, DataType > &data, InterfaceType iftype, CommunicationDirection dir) const
Definition: gridpart2gridview.hh:200
Traits::IntersectionIterator IntersectionIterator
type of the intersection iterator
Definition: gridpart2gridview.hh:89
IntersectionIterator iend(const typename Codim< 0 >::Entity &entity) const
Definition: gridpart2gridview.hh:179
const CollectiveCommunication & comm() const
Definition: gridpart2gridview.hh:184
Traits::CollectiveCommunication CollectiveCommunication
type of the collective communication
Definition: gridpart2gridview.hh:92
@ conforming
Definition: gridpart2gridview.hh:100
@ dimension
Definition: gridpart2gridview.hh:102
GridPart::ctype ctype
Definition: gridpart2gridview.hh:73
Codim< codim >::Iterator begin() const
Definition: gridpart2gridview.hh:151
const Grid & grid() const
Definition: gridpart2gridview.hh:124
Traits::IndexSet IndexSet
type of the index set
Definition: gridpart2gridview.hh:83
Definition: gridpart2gridview.hh:34
GridPart2GridViewImpl< GridPart > GridViewImp
Definition: gridpart2gridview.hh:35
IntersectionIterator::Intersection Intersection
Definition: gridpart2gridview.hh:41
GridPart::CollectiveCommunicationType CollectiveCommunication
Definition: gridpart2gridview.hh:43
GridPart::IntersectionIteratorType IntersectionIterator
Definition: gridpart2gridview.hh:39
GridPart::IndexSetType IndexSet
Definition: gridpart2gridview.hh:38
static const bool conforming
Definition: gridpart2gridview.hh:63
GridPart::GridType Grid
Definition: gridpart2gridview.hh:37
Definition: gridpart2gridview.hh:48
Partition< All_Partition >::Iterator Iterator
Definition: gridpart2gridview.hh:60
GridPart::template Codim< codim >::EntityType Entity
Definition: gridpart2gridview.hh:49
GridPart::template Codim< codim >::GeometryType Geometry
Definition: gridpart2gridview.hh:51
GridPart::template Codim< codim >::LocalGeometryType LocalGeometry
Definition: gridpart2gridview.hh:52
Definition: gridpart2gridview.hh:56
GridPart::template Codim< codim >::template Partition< pitype >::IteratorType Iterator
Definition: gridpart2gridview.hh:57
Codim Structure.
Definition: gridpart2gridview.hh:98
Definition: gridpart2gridview.hh:222
GridPart2GridView(const GridPart &gridPart)
Definition: gridpart2gridview.hh:229