3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Classes | Static Public Member Functions | List of all members
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. More...

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

Inheritance diagram for Dumux::InteractionVolumeAssemblerHelper:
Inheritance graph

Description

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.

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

Assembles the vector of face unknowns within an interaction volume.

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

Assembles the solution gradients in the sub-control volumes within an interaction volume.

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

resizes a matrix to the given sizes (specialization for dynamic matrix type)

◆ 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

resizes a matrix to the given sizes (specialization for static matrix type - do nothing)

◆ 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

resizes a vector to the given size (specialization for static vector type - do nothing)

◆ 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

resizes a vector to the given size (specialization for dynamic matrix type)

◆ solveLocalSystem()

template<class FVElementGeometry , class DataHandle , class IV >
static void Dumux::InteractionVolumeAssemblerHelper::solveLocalSystem ( const FVElementGeometry &  fvGeometry,
DataHandle &  handle,
IV &  iv 
)
inlinestatic

Solves a previously assembled iv-local system of equations and stores the resulting transmissibilities in the provided containers within the interaction volume data handle.

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: