DUNE PDELab (git)

Dune::PDELab::GFSDataHandle< GFS, V, GatherScatter, CommunicationDescriptor > Class Template Reference

Implement a data handle with a grid function space. More...

#include <dune/pdelab/gridfunctionspace/genericdatahandle.hh>

Public Member Functions

bool contains (int dim, int codim) const
 returns true if data for this codim should be communicated
 
bool fixedSize (int dim, int codim) const
 returns true if size per entity of given dim and codim is a constant
 
template<typename Entity >
size_type size (const Entity &e) const
 how many objects of type DataType have to be sent for a given entity More...
 
template<typename MessageBuffer , typename Entity >
std::enable_if< CommunicationDescriptor::wrap_buffer &&AlwaysTrue< Entity >::value >::type gather (MessageBuffer &buff, const Entity &e) const
 pack data from user to message buffer - version with support for sending leaf ordering sizes
 
template<typename MessageBuffer , typename Entity >
std::enable_if<!CommunicationDescriptor::wrap_buffer &&AlwaysTrue< Entity >::value >::type gather (MessageBuffer &buff, const Entity &e) const
 pack data from user to message buffer - version without support for sending leaf ordering sizes
 
template<typename MessageBuffer , typename Entity >
std::enable_if< CommunicationDescriptor::wrap_buffer &&AlwaysTrue< Entity >::value >::type scatter (MessageBuffer &buff, const Entity &e, size_type n)
 unpack data from message buffer to user More...
 
template<typename MessageBuffer , typename Entity >
std::enable_if<!CommunicationDescriptor::wrap_buffer &&AlwaysTrue< Entity >::value >::type scatter (MessageBuffer &buff, const Entity &e, size_type n)
 unpack data from message buffer to user More...
 
size_t size (const EntityType &e) const
 how many objects of type DataType have to be sent for a given entity More...
 
void gather (MessageBufferImp &buff, const EntityType &e) const
 pack data from user to message buffer More...
 
void scatter (MessageBufferImp &buff, const EntityType &e, size_t n)
 unpack data from message buffer to user. More...
 

Detailed Description

template<typename GFS, typename V, typename GatherScatter, typename CommunicationDescriptor = DOFDataCommunicationDescriptor<typename V::ElementType>>
class Dune::PDELab::GFSDataHandle< GFS, V, GatherScatter, CommunicationDescriptor >

Implement a data handle with a grid function space.

Template Parameters
GFSa grid function space
Va vector container associated with the GFS
GatherScattergather/scatter methods with argumemts buffer, and data
CommunicationDescriptorA descriptor for the communication structure

Member Function Documentation

◆ gather()

void Dune::CommDataHandleIF< GFSDataHandle< GFS, V, GatherScatter, DOFDataCommunicationDescriptor< typename V::ElementType > > , CommunicationDescriptor::DataType >::gather ( MessageBufferImp &  buff,
const EntityType &  e 
) const
inlineinherited

pack data from user to message buffer

Parameters
buffmessage buffer provided by the grid
eentity for which date should be packed to buffer

◆ scatter() [1/3]

template<typename GFS , typename V , typename GatherScatter , typename CommunicationDescriptor = DOFDataCommunicationDescriptor<typename V::ElementType>>
template<typename MessageBuffer , typename Entity >
std::enable_if< CommunicationDescriptor::wrap_buffer &&AlwaysTrue< Entity >::value >::type Dune::PDELab::GFSDataHandle< GFS, V, GatherScatter, CommunicationDescriptor >::scatter ( MessageBuffer &  buff,
const Entity e,
size_type  n 
)
inline

unpack data from message buffer to user

n is the number of objects sent by the sender

This is the version with support for receiving leaf ordering sizes

References Dune::PDELab::GFSDataHandle< GFS, V, GatherScatter, CommunicationDescriptor >::size().

◆ scatter() [2/3]

template<typename GFS , typename V , typename GatherScatter , typename CommunicationDescriptor = DOFDataCommunicationDescriptor<typename V::ElementType>>
template<typename MessageBuffer , typename Entity >
std::enable_if<!CommunicationDescriptor::wrap_buffer &&AlwaysTrue< Entity >::value >::type Dune::PDELab::GFSDataHandle< GFS, V, GatherScatter, CommunicationDescriptor >::scatter ( MessageBuffer &  buff,
const Entity e,
size_type  n 
)
inline

unpack data from message buffer to user

n is the number of objects sent by the sender

This is the version without support for receiving leaf ordering sizes

◆ scatter() [3/3]

void Dune::CommDataHandleIF< GFSDataHandle< GFS, V, GatherScatter, DOFDataCommunicationDescriptor< typename V::ElementType > > , CommunicationDescriptor::DataType >::scatter ( MessageBufferImp &  buff,
const EntityType &  e,
size_t  n 
)
inlineinherited

unpack data from message buffer to user.

Parameters
buffmessage buffer provided by the grid. This is not const, because the buffer has an internal iterator that gets advanced when reading from the buffer.
eentity for which date should be unpacked from buffer
nnumber of data written to buffer for this entity before

◆ size() [1/2]

template<typename GFS , typename V , typename GatherScatter , typename CommunicationDescriptor = DOFDataCommunicationDescriptor<typename V::ElementType>>
template<typename Entity >
size_type Dune::PDELab::GFSDataHandle< GFS, V, GatherScatter, CommunicationDescriptor >::size ( const Entity e) const
inline

how many objects of type DataType have to be sent for a given entity

Note: Only the sender side needs to know this size.

Referenced by Dune::PDELab::GFSDataHandle< GFS, V, GatherScatter, CommunicationDescriptor >::scatter().

◆ size() [2/2]

size_t Dune::CommDataHandleIF< GFSDataHandle< GFS, V, GatherScatter, DOFDataCommunicationDescriptor< typename V::ElementType > > , CommunicationDescriptor::DataType >::size ( const EntityType &  e) const
inlineinherited

how many objects of type DataType have to be sent for a given entity

Note
Only the sender side needs to know this size.
Parameters
eentity for which the size should be determined

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 12, 23:30, 2024)