1#ifndef DUNE_FEM_GRIDPART_GEOMETRYGRIDPART_DATAHANDLE_HH
2#define DUNE_FEM_GRIDPART_GEOMETRYGRIDPART_DATAHANDLE_HH
6#include <dune/grid/common/datahandleif.hh>
19 template<
class Gr
idFamily,
class WrappedHandle >
21 :
public CommDataHandleIF< GeometryGridPartDataHandle< GridFamily, WrappedHandle >, typename WrappedHandle::DataType >
23 typedef typename std::remove_const< GridFamily >::type::Traits Traits;
24 typedef typename GridFamily::GridFunctionType GridFunctionType;
26 template<
class HostEntity >
31 : wrappedHandle_( handle ), gridFunction_( gridFunction )
36 return wrappedHandle_.contains( dim, codim );
41 return wrappedHandle_.fixedSize( dim, codim );
44 template<
class HostEntity >
45 size_t size (
const HostEntity &hostEntity )
const
47 EntityProxy< HostEntity > proxy( gridFunction_, hostEntity );
48 return wrappedHandle_.size( *proxy );
51 template<
class MessageBuffer,
class HostEntity >
52 void gather ( MessageBuffer &buffer,
const HostEntity &hostEntity )
const
54 EntityProxy< HostEntity > proxy( gridFunction_, hostEntity );
55 wrappedHandle_.gather( buffer, *proxy );
58 template<
class MessageBuffer,
class HostEntity >
59 void scatter ( MessageBuffer &buffer,
const HostEntity &hostEntity,
size_t size )
61 EntityProxy< HostEntity > proxy( gridFunction_, hostEntity );
62 wrappedHandle_.scatter( buffer, *proxy,
size );
66 WrappedHandle &wrappedHandle_;
67 const GridFunctionType &gridFunction_;
72 template<
class Gr
idFamily,
class WrappedHandle >
73 template<
class HostEntity >
74 class GeometryGridPartDataHandle< GridFamily, WrappedHandle >::EntityProxy
77 static const int dimension = HostEntity::dimension;
78 static const int codimension = HostEntity::codimension;
80 typedef Dune::Entity< codimension, dimension, const GridFamily, GeometryGridPartEntity > Entity;
83 typedef GeometryGridPartEntity< codimension, dimension, const GridFamily > EntityImpl;
86 EntityProxy (
const GridFunctionType &gridFunction_,
const HostEntity &hostEntity )
87 : entity_( EntityImpl( gridFunction_, hostEntity ) )
Definition: bindguard.hh:11
Double operator*(const Double &a, const Double &b)
Definition: double.hh:506
Definition: gridpart/geometrygridpart/datahandle.hh:22
bool contains(int dim, int codim) const
Definition: gridpart/geometrygridpart/datahandle.hh:34
bool fixedSize(int dim, int codim) const
Definition: gridpart/geometrygridpart/datahandle.hh:39
GeometryGridPartDataHandle(WrappedHandle &handle, const GridFunctionType &gridFunction)
Definition: gridpart/geometrygridpart/datahandle.hh:30
size_t size(const HostEntity &hostEntity) const
Definition: gridpart/geometrygridpart/datahandle.hh:45
void scatter(MessageBuffer &buffer, const HostEntity &hostEntity, size_t size)
Definition: gridpart/geometrygridpart/datahandle.hh:59
void gather(MessageBuffer &buffer, const HostEntity &hostEntity) const
Definition: gridpart/geometrygridpart/datahandle.hh:52