version 3.10-dev
Dumux::InteractionVolumeAssemblerHelper Class Reference

A class that contains helper functions as well as functionality which is common to different mpfa schemes and which solely operate on the interaction volume.

#include <dumux/discretization/cellcentered/mpfa/localassemblerhelper.hh>

Inheritance diagram for Dumux::InteractionVolumeAssemblerHelper:

Static Public Member Functions

template<class FVElementGeometry , class DataHandle , class IV >
static void solveLocalSystem (const FVElementGeometry &fvGeometry, DataHandle &handle, IV &iv)
 Solves a previously assembled iv-local system of equations and stores the resulting transmissibilities in the provided containers within the interaction volume data handle. More...
 
template<class DataHandle , class IV >
static IV::Traits::MatVecTraits::FaceVector assembleFaceUnkowns (const DataHandle &handle, const IV &iv)
 Assembles the vector of face unknowns within an interaction volume. More...
 
template<class DataHandle , class IV >
static std::vector< typename IV::Traits::LocalScvType::GlobalCoordinate > assembleScvGradients (const DataHandle &handle, const IV &iv)
 Assembles the solution gradients in the sub-control volumes within an interaction volume. More...
 
template<class Matrix , class size_type , std::enable_if_t< matrixHasResizeFunction< Matrix >(), int > = 0>
static void resizeMatrix (Matrix &M, size_type rows, size_type cols)
 resizes a matrix to the given sizes (specialization for dynamic matrix type) More...
 
template<class Matrix , class size_type , std::enable_if_t<!matrixHasResizeFunction< Matrix >(), int > = 0>
static void resizeMatrix (Matrix &M, size_type rows, size_type cols)
 resizes a matrix to the given sizes (specialization for static matrix type - do nothing) More...
 
template<class Vector , class size_type , std::enable_if_t< vectorHasResizeFunction< Vector >(), int > = 0>
static void resizeVector (Vector &v, size_type size)
 resizes a vector to the given size (specialization for dynamic matrix type) More...
 
template<class Vector , class size_type , std::enable_if_t<!vectorHasResizeFunction< Vector >(), int > = 0>
static void resizeVector (Vector &v, size_type rows)
 resizes a vector to the given size (specialization for static vector type - do nothing) More...
 

Member Function Documentation

◆ assembleFaceUnkowns()

template<class DataHandle , class IV >
static IV::Traits::MatVecTraits::FaceVector Dumux::InteractionVolumeAssemblerHelper::assembleFaceUnkowns ( const DataHandle &  handle,
const IV &  iv 
)
inlinestatic
Note
This requires the data handle to be fully assembled already.
Parameters
handleThe data handle in which the vector is stored
ivThe interaction volume

◆ assembleScvGradients()

template<class DataHandle , class IV >
static std::vector< typename IV::Traits::LocalScvType::GlobalCoordinate > Dumux::InteractionVolumeAssemblerHelper::assembleScvGradients ( const DataHandle &  handle,
const IV &  iv 
)
inlinestatic
Note
This requires the data handle to be fully assembled already.
Parameters
handleThe data handle in which the vector is stored
ivThe interaction volume

◆ resizeMatrix() [1/2]

template<class Matrix , class size_type , std::enable_if_t< matrixHasResizeFunction< Matrix >(), int > = 0>
static void Dumux::InteractionVolumeAssemblerHelper::resizeMatrix ( Matrix &  M,
size_type  rows,
size_type  cols 
)
inlinestatic

◆ resizeMatrix() [2/2]

template<class Matrix , class size_type , std::enable_if_t<!matrixHasResizeFunction< Matrix >(), int > = 0>
static void Dumux::InteractionVolumeAssemblerHelper::resizeMatrix ( Matrix &  M,
size_type  rows,
size_type  cols 
)
inlinestatic

◆ resizeVector() [1/2]

template<class Vector , class size_type , std::enable_if_t<!vectorHasResizeFunction< Vector >(), int > = 0>
static void Dumux::InteractionVolumeAssemblerHelper::resizeVector ( Vector &  v,
size_type  rows 
)
inlinestatic

◆ resizeVector() [2/2]

template<class Vector , class size_type , std::enable_if_t< vectorHasResizeFunction< Vector >(), int > = 0>
static void Dumux::InteractionVolumeAssemblerHelper::resizeVector ( Vector &  v,
size_type  size 
)
inlinestatic

◆ solveLocalSystem()

template<class FVElementGeometry , class DataHandle , class IV >
static void Dumux::InteractionVolumeAssemblerHelper::solveLocalSystem ( const FVElementGeometry &  fvGeometry,
DataHandle &  handle,
IV &  iv 
)
inlinestatic
Parameters
fvGeometryThe bound element finite volume geometry
handleThe data handle in which the matrices are stored
ivThe interaction volume

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