version 3.8
Dumux::ParallelMatrixHelper< Matrix, GridView, RowDofMapper, rowDofCodim > Class Template Reference

Helper class for adding up matrix entries for border entities. More...

#include <dumux/linear/parallelhelpers.hh>

Description

template<class Matrix, class GridView, class RowDofMapper, int rowDofCodim>
class Dumux::ParallelMatrixHelper< Matrix, GridView, RowDofMapper, rowDofCodim >

Border means all degrees of freedom located on lower-dimensional entities (faces, edges, vertices) that form the the process boundary

Public Member Functions

 ParallelMatrixHelper (const GridView &gridView, const RowDofMapper &mapper)
 
template<class IsGhostFunc >
void extendMatrix (Matrix &A, const IsGhostFunc &isGhost)
 communicates values for the sparsity pattern of the new matrix. More...
 
void sumEntries (Matrix &A)
 Sums up the entries corresponding to border entities (usually vertices or faces) More...
 

Constructor & Destructor Documentation

◆ ParallelMatrixHelper()

template<class Matrix , class GridView , class RowDofMapper , int rowDofCodim>
Dumux::ParallelMatrixHelper< Matrix, GridView, RowDofMapper, rowDofCodim >::ParallelMatrixHelper ( const GridView &  gridView,
const RowDofMapper &  mapper 
)
inline

Member Function Documentation

◆ extendMatrix()

template<class Matrix , class GridView , class RowDofMapper , int rowDofCodim>
template<class IsGhostFunc >
void Dumux::ParallelMatrixHelper< Matrix, GridView, RowDofMapper, rowDofCodim >::extendMatrix ( Matrix &  A,
const IsGhostFunc &  isGhost 
)
inline
Parameters
AMatrix to operate on.
isGhostFunction returning if a column dof index is on a ghost entity

◆ sumEntries()

template<class Matrix , class GridView , class RowDofMapper , int rowDofCodim>
void Dumux::ParallelMatrixHelper< Matrix, GridView, RowDofMapper, rowDofCodim >::sumEntries ( Matrix &  A)
inline
Parameters
AMatrix to operate on

The idea is as follows: (Blatt and Bastian (2009) https://doi.org/10.1504/IJCSE.2008.021112) The local matrix operator stores for each row that corresponds to a dof (uniquely) owned by this process the full row of the global operator with the same entries as the global operator.

This, together with some masking procedure (end of Section 2.4.1) allows to compute a matrix-vector product given a consistent vector representation such that the result is in a valid representation. Each valid representation can be transformed to a additive unique representation by setting all entries for dofs that are not (uniquely) owned by the process to zero.


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