1 #ifndef DUNE_ALUGRID_LBDATAHANDLE_HH
2 #define DUNE_ALUGRID_LBDATAHANDLE_HH
11 template<
class Gr
id,
class DataHandleImpl,
class Data >
14 typedef typename Grid :: Traits :: HierarchicIterator HierarchicIterator;
40 dataHandle_( dataHandle )
45 inlineElementData( stream, element );
47 const int maxLevel = grid_.
maxLevel();
48 const HierarchicIterator end = element.hend( maxLevel );
49 for( HierarchicIterator it = element.hbegin( maxLevel ); it != end; ++it )
50 inlineElementData( stream, *it );
55 xtractElementData( stream, element );
57 const int maxLevel = grid_.
maxLevel();
58 const HierarchicIterator end = element.hend( maxLevel );
59 for( HierarchicIterator it = element.hbegin( maxLevel ); it != end; ++it )
60 xtractElementData( stream, *it );
72 inlineEntityData<0>( stream, element );
76 inlineCodimData< 1 >( stream, element );
77 inlineCodimData< 2 >( stream, element );
78 inlineCodimData< 3 >( stream, element );
86 xtractEntityData<0>( stream, element );
90 xtractCodimData< 1 >( stream, element );
91 xtractCodimData< 2 >( stream, element );
92 xtractCodimData< 3 >( stream, element );
98 typedef typename Codim< codim > :: EntityPointer EntityPointer;
102 const int numSubEntities = element.template count< codim >();
103 for(
int i = 0; i < numSubEntities; ++i )
105 const EntityPointer pEntity = element.template subEntity< codim >( i );
106 inlineEntityData< codim >( stream, *pEntity );
111 template<
int codim >
114 typedef typename Codim< codim > :: EntityPointer EntityPointer;
118 const int numSubEntities = element.template count< codim >();
119 for(
int i = 0; i < numSubEntities; ++i )
121 const EntityPointer pEntity = element.template subEntity< codim >( i );
122 xtractEntityData< codim >( stream, *pEntity );
127 template<
int codim >
129 const typename Codim< codim > :: Entity &entity )
const
131 const size_t size = dataHandle_.
size( entity );
132 stream.write( size );
133 dataHandle_.
gather( stream, entity );
136 template<
int codim >
138 const typename Codim< codim > :: Entity &entity )
142 dataHandle_.
scatter( stream, entity, size );