version 3.11-dev
Loading...
Searching...
No Matches
Dumux::VectorCommDataHandle< Mapper, Vector, entityCodim, ScatterOperator, DataT > Class Template Reference

A data handle class to exchange entries of a vector.

#include <dumux/parallel/vectorcommdatahandle.hh>

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

Public Types

using DataType = DataT
 export type of data for message buffer

Public Member Functions

 VectorCommDataHandle (const Mapper &mapper, Vector &vector)
bool contains (int, int codim) const
 returns true if data for this codim should be communicated
bool fixedSize (int, int codim) const
template<class Entity>
std::size_t size (Entity &entity) const
 how many objects of type DataType have to be sent for a given entity. Returns the number of DOFs associated with this entity (may be >1 for multi-DOF schemes).
template<class MessageBuffer, class Entity>
void gather (MessageBuffer &buff, const Entity &entity) const
 pack data from user to message buffer (all DOFs of entity)
template<class MessageBuffer, class Entity>
void scatter (MessageBuffer &buff, const Entity &entity, std::size_t n)
 unpack data from message buffer to user (all DOFs of entity)

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

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 ,
int codim ) const
inline

◆ 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 ,
int codim ) const
inline

returns true if size per entity of given dim and codim is a constant. For mappers where all entities of the same codim have the same DOF count, this is true. For mixed meshes with variable-DOF geometry types (e.g. simplex+cube) it may be false.

◆ 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

◆ 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
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

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: