3.3.0
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | Protected Attributes | List of all members
Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT > Class Template Reference

A data handle class to exchange entries of a vector. More...

#include <dumux/parallel/vectorcommdatahandle.hh>

Inheritance diagram for Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >:

Description

template<class Mapper, class Vector, int entityCodim, class ScatterOperator, class DataT = typename Vector::value_type>
class Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >

A data handle class to exchange entries of a vector.

Public Types

using DataType = DataT
 export type of data for message buffer More...
 

Public Member Functions

 VectorCommDataHandle (const Mapper &mapper, Vector &vector)
 
bool contains (int dim, int codim) const
 returns true if data for this codim should be communicated More...
 
bool fixedSize (int dim, int codim) const
 returns true if size per entity of given dim and codim is a constant More...
 
template<class Entity >
std::size_t size (Entity &entity) const
 how many objects of type DataType have to be sent for a given entity More...
 
template<class MessageBuffer , class Entity >
void gather (MessageBuffer &buff, const Entity &entity) const
 pack data from user to message buffer More...
 
template<class MessageBuffer , class Entity >
void scatter (MessageBuffer &buff, const Entity &entity, std::size_t n)
 unpack data from message buffer to user More...
 

Protected Attributes

const Mapper & mapper_
 
Vector & vector_
 

Member Typedef Documentation

◆ DataType

template<class Mapper , class Vector , int entityCodim, class ScatterOperator , class DataT = typename Vector::value_type>
using Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >::DataType = DataT

export type of data for message buffer

Constructor & Destructor Documentation

◆ VectorCommDataHandle()

template<class Mapper , class Vector , int entityCodim, class ScatterOperator , class DataT = typename Vector::value_type>
Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >::VectorCommDataHandle ( const Mapper &  mapper,
Vector &  vector 
)
inline

Member Function Documentation

◆ contains()

template<class Mapper , class Vector , int entityCodim, class ScatterOperator , class DataT = typename Vector::value_type>
bool Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >::contains ( int  dim,
int  codim 
) const
inline

returns true if data for this codim should be communicated

◆ fixedSize()

template<class Mapper , class Vector , int entityCodim, class ScatterOperator , class DataT = typename Vector::value_type>
bool Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >::fixedSize ( int  dim,
int  codim 
) const
inline

returns true if size per entity of given dim and codim is a constant

◆ gather()

template<class Mapper , class Vector , int entityCodim, class ScatterOperator , class DataT = typename Vector::value_type>
template<class MessageBuffer , class Entity >
void Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >::gather ( MessageBuffer &  buff,
const Entity &  entity 
) const
inline

pack data from user to message buffer

◆ scatter()

template<class Mapper , class Vector , int entityCodim, class ScatterOperator , class DataT = typename Vector::value_type>
template<class MessageBuffer , class Entity >
void Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >::scatter ( MessageBuffer &  buff,
const Entity &  entity,
std::size_t  n 
)
inline

unpack data from message buffer to user

Note
n is the number of objects sent by the sender

◆ size()

template<class Mapper , class Vector , int entityCodim, class ScatterOperator , class DataT = typename Vector::value_type>
template<class Entity >
std::size_t Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >::size ( Entity &  entity) 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.

Member Data Documentation

◆ mapper_

template<class Mapper , class Vector , int entityCodim, class ScatterOperator , class DataT = typename Vector::value_type>
const Mapper& Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >::mapper_
protected

◆ vector_

template<class Mapper , class Vector , int entityCodim, class ScatterOperator , class DataT = typename Vector::value_type>
Vector& Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT >::vector_
protected

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