version 3.9-dev
Discretization schemes

The discretization schemes available in DuMux More...

Description

Modules

 Cell-centered Finite Volume Methods
 Finite volume schemes with degrees of freedom located at grid cell centers.
 
 Control-volume Finite Element Methods
 Control-volume finite element schemes (e.g. box method) Control-volume finite element schemes are based on finite element basis functions for interpolation but define control volumes to construct a finite volume scheme. They can be interpreted both as finite volume or as (Petrov-Galerkin) finite element scheme.
 
 Staggered Grid Finite Volume Method
 Discretization for the momentum balance of the Navier-Stokes equations. Can be used to build a marker-and-cell scheme (MAC) together with Tpfa for the discretization of the mass balance equation.
 
 Staggered FV scheme
 A staggered finite volume scheme with degrees of freedom at cell-centers and facets. In this implementation, momentum control volumes do not explicitly exist, but the implementation uses workarounds.
 
 Finite Element Methods
 The finite element method.
 
 Pore-network Models
 The pore-network model discretization.
 

Files

file  basegridgeometry.hh
 Base class for grid geometries.
 
file  basicgridgeometry.hh
 A basic implementation of a grid geometry with some common interfaces.
 
file  box.hh
 Defines a type tag and some properties for models using the box scheme.
 
file  ccmpfa.hh
 Properties for all models using cell-centered finite volume scheme with mpfa.
 
file  cctpfa.hh
 Properties for all models using cell-centered finite volume scheme with TPFA.
 
file  checkoverlapsize.hh
 Check the overlap size for different discretization methods.
 
file  elementsolution.hh
 Element solution classes and factory functions.
 
file  evalgradients.hh
 free functions for the evaluation of primary variable gradients inside elements.
 
file  evalsolution.hh
 free functions for the evaluation of primary variables inside elements.
 
file  extrusion.hh
 Helper classes to compute the integration elements.
 
file  fcdiamond.hh
 Defines a type tag and some properties for models using the diamond scheme. This scheme features degrees of freedom at the elements' centers and intersections (faces).
 
file  fcstaggered.hh
 Defines a type tag and some properties for models using the staggered scheme. This scheme features degrees of freedom at the elements' centers and intersections (faces). TODO: detailed documentation and figures.
 
file  fluxstencil.hh
 The flux stencil specialized for different discretization schemes.
 
file  functionspacebasis.hh
 Provides helper aliases and functionality to obtain the types and instances of Dune::Functions function space bases that underlie different discretization schemes.
 
file  discretization/fvgridvariables.hh
 The grid variable class for finite volume schemes, storing variables on scv and scvf (volume and flux variables)
 
file  fvproperties.hh
 Declares properties required for finite-volume models models.
 
file  localdoftraits.hh
 Element-specific traits of grid geometries / discretization schemes.
 
file  localview.hh
 Free function to get the local view of a grid cache object.
 
file  method.hh
 The available discretization methods in Dumux.
 
file  nonconformingfecache.hh
 A finite element cache for the non-conforming FE spaces RT and CR.
 
file  pq1bubble.hh
 Defines a type tag and some properties for models using the pq1bubble scheme.
 
file  l2_projection.hh
 L2-projections of analytic functions into a given function space.
 
file  projector.hh
 Contains functionality for L2-projections from one function space into another, which can live both on the same or different grids of potentially different dimensionality.
 
file  scvandscvfiterators.hh
 Class providing iterators over sub control volumes and sub control volume faces of an element.
 
file  staggered.hh
 Defines a type tag and some properties for models using the staggered scheme. This scheme features degrees of freedom at the elements' centers and intersections (faces). TODO: detailed documentation and figures.
 
file  subcontrolvolumebase.hh
 Base class for a sub control volume.
 
file  subcontrolvolumefacebase.hh
 Base class for a sub control volume face.
 
file  walldistance.hh
 
file  experimental/discretization/fvgridvariables.hh
 The grid variable class for finite volume schemes, storing variables on scv and scvf (volume and flux variables)
 
file  experimental/discretization/gridvariables.hh
 Base class for grid variables.
 

Classes

class  Dumux::BaseGridGeometry< GV, Traits >
 Base class for all grid geometries. More...
 
class  Dumux::BasicGridGeometry< GV, EM, VM >
 An implementation of a grid geometry with some basic features. More...
 
struct  Dumux::CheckOverlapSize< DiscretizationMethod >
 Check if the overlap size is valid for a given discretization method. More...
 
struct  Dumux::NoExtrusion
 Default implementation that performs no extrusion (extrusion with identity) More...
 
struct  Dumux::RotationalExtrusion< radAx >
 Rotation symmetric extrusion policy for rotating about an external axis. More...
 
struct  Dumux::SphericalExtrusion
 Rotation symmetric extrusion policy for spherical rotation. More...
 
class  Dumux::FluxStencil< FVElementGeometry, DiscretizationMethod >
 The flux stencil specialized for different discretization schemes. More...
 
class  Dumux::FVGridVariables< GG, GVV, GFVC >
 The grid variable class for finite volume schemes storing variables on scv and scvf (volume and flux variables) More...
 
class  Dumux::Projector< ScalarType >
 Does an L2-projection from one discrete function space into another. The convenience functions makeProjectorPair or makeProjector can be used to create such a projection. More...
 
class  Dumux::ScvIterator< SubControlVolume, Vector, FVElementGeometry >
 Iterators over sub control volumes. More...
 
class  Dumux::ScvfIterator< SubControlVolumeFace, Vector, FVElementGeometry >
 Iterators over sub control volume faces of an fv geometry. More...
 
class  Dumux::SkippingScvfIterator< SubControlVolumeFace, Vector, FVElementGeometry >
 Iterators over sub control volume faces of an fv geometry and a given sub control volume. More...
 
class  Dumux::SubControlVolumeBase< Imp, ScvGeometryTraits >
 Base class for a sub control volume, i.e a part of the control volume we are making the balance for. Defines the general interface. More...
 
class  Dumux::SubControlVolumeFaceBase< Imp, ScvfGeometryTraits >
 Base class for a sub control volume face, i.e a part of the boundary of a sub control volume we computing a flux on. More...
 
class  Dumux::WallDistance< GridGeometry, DistanceField >
 Class to calculate the wall distance at every element or vertex of a grid. More...
 
class  Dumux::Experimental::FVGridVariablesLocalView< GV >
 Finite volume-specific local view on grid variables. More...
 
class  Dumux::Experimental::FVGridVariables< GVV, GFVC, X >
 The grid variable class for finite volume schemes, storing variables on scv and scvf (volume and flux variables). More...
 
class  Dumux::Experimental::GridVariables< GG, X >
 Base class for grid variables. More...
 

Typedefs

template<class GV , class T >
using Dumux::BasicGridGeometry_t = Dune::Std::detected_or_t< Dumux::BasicGridGeometry< GV, typename T::ElementMapper, typename T::VertexMapper >, Detail::SpecifiesBaseGridGeometry, T >
 Type of the basic grid geometry implementation used as backend. More...
 

Functions

 Dumux::BaseGridGeometry< GV, Traits >::BaseGridGeometry (std::shared_ptr< BaseImplementation > impl)
 Constructor from a BaseImplementation. More...
 
 Dumux::BaseGridGeometry< GV, Traits >::BaseGridGeometry (const GridView &gridView)
 Constructor from a grid view. More...
 
 Dumux::BasicGridGeometry< GV, EM, VM >::BasicGridGeometry (const GridView &gridView)
 Constructor computes the bounding box of the entire domain, for e.g. setting boundary conditions. More...
 
template<class Element , class SolutionVector , class GridGeometry >
auto Dumux::elementSolution (const Element &element, const SolutionVector &sol, const GridGeometry &gg) -> std::enable_if_t< GridGeometry::discMethod==DiscretizationMethods::cctpfa||GridGeometry::discMethod==DiscretizationMethods::ccmpfa, CCElementSolution< typename GridGeometry::LocalView, std::decay_t< decltype(std::declval< SolutionVector >()[0])> > >
 Make an element solution for cell-centered schemes. More...
 
template<class Element , class ElementVolumeVariables , class FVElementGeometry >
auto Dumux::elementSolution (const Element &element, const ElementVolumeVariables &elemVolVars, const FVElementGeometry &gg) -> std::enable_if_t< FVElementGeometry::GridGeometry::discMethod==DiscretizationMethods::cctpfa||FVElementGeometry::GridGeometry::discMethod==DiscretizationMethods::ccmpfa, CCElementSolution< FVElementGeometry, typename ElementVolumeVariables::VolumeVariables::PrimaryVariables > >
 Make an element solution for cell-centered schemes. More...
 
template<class FVElementGeometry , class PrimaryVariables >
auto Dumux::elementSolution (PrimaryVariables &&priVars) -> std::enable_if_t< FVElementGeometry::GridGeometry::discMethod==DiscretizationMethods::cctpfa||FVElementGeometry::GridGeometry::discMethod==DiscretizationMethods::ccmpfa, CCElementSolution< FVElementGeometry, PrimaryVariables > >
 Make an element solution for cell-centered schemes. More...
 
template<class FVElementGeometry , class PrimaryVariables >
auto Dumux::elementSolution (const PrimaryVariables &priVars) -> std::enable_if_t< FVElementGeometry::GridGeometry::discMethod==DiscretizationMethods::cctpfa||FVElementGeometry::GridGeometry::discMethod==DiscretizationMethods::ccmpfa, CCElementSolution< FVElementGeometry, PrimaryVariables > >
 Make an element solution for cell-centered schemes. More...
 
template<class Element , class GridGeometry , class CVFEElemSol >
auto Dumux::Detail::evalCVFEGradients (const Element &element, const typename Element::Geometry &geometry, const GridGeometry &gridGeometry, const CVFEElemSol &elemSol, const typename Element::Geometry::GlobalCoordinate &globalPos, bool ignoreState=false)
 Evaluates the gradient of a control-volume finite element solution to a given global position. More...
 
template<class Element , class FVElementGeometry , class PrimaryVariables >
auto Dumux::evalGradients (const Element &element, const typename Element::Geometry &geometry, const typename FVElementGeometry::GridGeometry &gridGeometry, const CVFEElementSolution< FVElementGeometry, PrimaryVariables > &elemSol, const typename Element::Geometry::GlobalCoordinate &globalPos, bool ignoreState=false)
 Evaluates the gradient of a given CVFE element solution to a given global position. More...
 
template<class Element , class FVElementGeometry , class PrimaryVariables >
Dune::FieldVector< typename Element::Geometry::GlobalCoordinate, PrimaryVariables::dimension > Dumux::evalGradients (const Element &element, const typename Element::Geometry &geometry, const typename FVElementGeometry::GridGeometry &gridGeometry, const CCElementSolution< FVElementGeometry, PrimaryVariables > &elemSol, const typename Element::Geometry::GlobalCoordinate &globalPos)
 Evaluates the gradient of a given CCElementSolution to a given global position. This function is only here for (compilation) compatibility reasons with the box scheme. The solution within the control volumes is constant and thus gradients are zero. One can compute gradients towards the sub-control volume faces after reconstructing the solution on the faces. More...
 
template<class Element , class GridGeometry , class CVFEElemSol >
CVFEElemSol::PrimaryVariables Dumux::Detail::evalCVFESolution (const Element &element, const typename Element::Geometry &geometry, const GridGeometry &gridGeometry, const CVFEElemSol &elemSol, const typename Element::Geometry::GlobalCoordinate &globalPos, bool ignoreState=false)
 Interpolates a given control-volume finite element solution at a given global position. Uses the finite element cache of the grid geometry. More...
 
template<class Element , class FVElementGeometry , class PrimaryVariables >
PrimaryVariables Dumux::evalSolution (const Element &element, const typename Element::Geometry &geometry, const typename FVElementGeometry::GridGeometry &gridGeometry, const CVFEElementSolution< FVElementGeometry, PrimaryVariables > &elemSol, const typename Element::Geometry::GlobalCoordinate &globalPos, bool ignoreState=false)
 Interpolates a given box element solution at a given global position. Uses the finite element cache of the grid geometry. More...
 
template<class Element , class FVElementGeometry , class PrimaryVariables >
PrimaryVariables Dumux::evalSolution (const Element &element, const typename Element::Geometry &geometry, const CVFEElementSolution< FVElementGeometry, PrimaryVariables > &elemSol, const typename Element::Geometry::GlobalCoordinate &globalPos, bool ignoreState=false)
 Interpolates a given box element solution at a given global position. More...
 
template<class Element , class FVElementGeometry , class PrimaryVariables >
PrimaryVariables Dumux::evalSolution (const Element &element, const typename Element::Geometry &geometry, const typename FVElementGeometry::GridGeometry &gridGeometry, const CCElementSolution< FVElementGeometry, PrimaryVariables > &elemSol, const typename Element::Geometry::GlobalCoordinate &globalPos, bool ignoreState=false)
 Interpolates a given cell-centered element solution at a given global position. More...
 
template<class Element , class FVElementGeometry , class PrimaryVariables >
PrimaryVariables Dumux::evalSolution (const Element &element, const typename Element::Geometry &geometry, const CCElementSolution< FVElementGeometry, PrimaryVariables > &elemSol, const typename Element::Geometry::GlobalCoordinate &globalPos, bool ignoreState=false)
 Interpolates a given cell-centered element solution at a given global position. Overload of the above evalSolution() function without a given gridGeometry. For compatibility reasons with the box scheme. More...
 
template<class GridCache >
GridCache::LocalView Dumux::localView (const GridCache &gridCache)
 Free function to get the local view of a grid cache object. More...
 
template<class FEBasisDomain , class FEBasisTarget , class GlueType >
auto Dumux::makeProjectorPair (const FEBasisDomain &feBasisDomain, const FEBasisTarget &feBasisTarget, GlueType glue)
 Creates a pair of projectors between the space with basis feBasisDomain to the space with basis feBasisTarget. More...
 
template<class FEBasisDomain , class FEBasisTarget , class GlueType >
auto Dumux::makeProjector (const FEBasisDomain &feBasisDomain, const FEBasisTarget &feBasisTarget, GlueType glue)
 Creates a forward projector from the space feBasisDomain to the space with basis feBasisTarget. More...
 
template<class PrimaryVariables , class CellCenterPrimaryVariables >
StaggeredElementSolution< PrimaryVariables > Dumux::makeElementSolutionFromCellCenterPrivars (const CellCenterPrimaryVariables &cellCenterPriVars)
 Helper function to create an elementSolution from cell center primary variables. More...
 

Typedef Documentation

◆ BasicGridGeometry_t

template<class GV , class T >
using Dumux::BasicGridGeometry_t = typedef Dune::Std::detected_or_t< Dumux::BasicGridGeometry<GV, typename T::ElementMapper, typename T::VertexMapper>, Detail::SpecifiesBaseGridGeometry, T >

Function Documentation

◆ BaseGridGeometry() [1/2]

template<class GV , class Traits >
Dumux::BaseGridGeometry< GV, Traits >::BaseGridGeometry ( const GridView gridView)
inline
Parameters
gridViewthe grid view on which to construct the grid geometry

◆ BaseGridGeometry() [2/2]

template<class GV , class Traits >
Dumux::BaseGridGeometry< GV, Traits >::BaseGridGeometry ( std::shared_ptr< BaseImplementation >  impl)
inline

◆ BasicGridGeometry()

template<class GV , class EM , class VM >
Dumux::BasicGridGeometry< GV, EM, VM >::BasicGridGeometry ( const GridView gridView)
inline
Parameters
gridViewthe grid view on which to construct the grid geometry

◆ elementSolution() [1/4]

template<class Element , class ElementVolumeVariables , class FVElementGeometry >
auto Dumux::elementSolution ( const Element &  element,
const ElementVolumeVariables &  elemVolVars,
const FVElementGeometry &  gg 
) -> std::enable_if_t<FVElementGeometry::GridGeometry::discMethod == DiscretizationMethods::cctpfa || FVElementGeometry::GridGeometry::discMethod == DiscretizationMethods::ccmpfa, CCElementSolution<FVElementGeometry, typename ElementVolumeVariables::VolumeVariables::PrimaryVariables>>

Make an element solution for face-centered staggered schemes.

Make an element solution for control-volume finite element schemes.

◆ elementSolution() [2/4]

template<class Element , class SolutionVector , class GridGeometry >
auto Dumux::elementSolution ( const Element &  element,
const SolutionVector &  sol,
const GridGeometry &  gg 
) -> std::enable_if_t<GridGeometry::discMethod == DiscretizationMethods::cctpfa || GridGeometry::discMethod == DiscretizationMethods::ccmpfa, CCElementSolution<typename GridGeometry::LocalView, std::decay_t<decltype(std::declval<SolutionVector>()[0])>> >

Make an element solution for face-centered staggered schemes.

Make an element solution for control-volume finite element schemes.

◆ elementSolution() [3/4]

template<class FVElementGeometry , class PrimaryVariables >
auto Dumux::elementSolution ( const PrimaryVariables &  priVars) -> std::enable_if_t<FVElementGeometry::GridGeometry::discMethod == DiscretizationMethods::cctpfa || FVElementGeometry::GridGeometry::discMethod == DiscretizationMethods::ccmpfa, CCElementSolution<FVElementGeometry, PrimaryVariables>>
Note
This is e.g. used to construct an element solution at Dirichlet boundaries

◆ elementSolution() [4/4]

template<class FVElementGeometry , class PrimaryVariables >
auto Dumux::elementSolution ( PrimaryVariables &&  priVars) -> std::enable_if_t<FVElementGeometry::GridGeometry::discMethod == DiscretizationMethods::cctpfa || FVElementGeometry::GridGeometry::discMethod == DiscretizationMethods::ccmpfa, CCElementSolution<FVElementGeometry, PrimaryVariables>>

Make an element solution for staggered schemes.

Make an element solution for face-centered staggered schemes.

Note
This is e.g. used to construct an element solution at Dirichlet boundaries

◆ evalCVFEGradients()

template<class Element , class GridGeometry , class CVFEElemSol >
auto Dumux::Detail::evalCVFEGradients ( const Element &  element,
const typename Element::Geometry &  geometry,
const GridGeometry &  gridGeometry,
const CVFEElemSol &  elemSol,
const typename Element::Geometry::GlobalCoordinate &  globalPos,
bool  ignoreState = false 
)
Parameters
elementThe element
geometryThe element geometry
gridGeometryThe finite volume grid geometry
elemSolThe primary variables at the dofs of the element
globalPosThe global position
ignoreStateIf true, the state of primary variables is ignored
Returns
Dune::FieldVector with as many entries as dimension of the PrimaryVariables object (i.e. numEq). Each entry is a GlobalCoordinate object holding the priVar gradient.

◆ evalCVFESolution()

template<class Element , class GridGeometry , class CVFEElemSol >
CVFEElemSol::PrimaryVariables Dumux::Detail::evalCVFESolution ( const Element &  element,
const typename Element::Geometry &  geometry,
const GridGeometry &  gridGeometry,
const CVFEElemSol &  elemSol,
const typename Element::Geometry::GlobalCoordinate &  globalPos,
bool  ignoreState = false 
)
Returns
the interpolated primary variables
Parameters
elementThe element
geometryThe element geometry
gridGeometryThe finite volume grid geometry
elemSolThe primary variables at the dofs of the element
globalPosThe global position
ignoreStateIf true, the state of primary variables is ignored

◆ evalGradients() [1/2]

template<class Element , class FVElementGeometry , class PrimaryVariables >
Dune::FieldVector< typename Element::Geometry::GlobalCoordinate, PrimaryVariables::dimension > Dumux::evalGradients ( const Element &  element,
const typename Element::Geometry &  geometry,
const typename FVElementGeometry::GridGeometry &  gridGeometry,
const CCElementSolution< FVElementGeometry, PrimaryVariables > &  elemSol,
const typename Element::Geometry::GlobalCoordinate &  globalPos 
)
Parameters
elementThe element
geometryThe element geometry
gridGeometryThe finite volume grid geometry
elemSolThe primary variables at the dofs of the element
globalPosThe global position
Exceptions
Dune::NotImplemented
Returns
Dune::FieldVector with as many entries as dimension of the PrimaryVariables object (i.e. numEq). Each entry is a GlobalCoordinate object holding the priVar gradient.

◆ evalGradients() [2/2]

template<class Element , class FVElementGeometry , class PrimaryVariables >
auto Dumux::evalGradients ( const Element &  element,
const typename Element::Geometry &  geometry,
const typename FVElementGeometry::GridGeometry &  gridGeometry,
const CVFEElementSolution< FVElementGeometry, PrimaryVariables > &  elemSol,
const typename Element::Geometry::GlobalCoordinate &  globalPos,
bool  ignoreState = false 
)
Parameters
elementThe element
geometryThe element geometry
gridGeometryThe finite volume grid geometry
elemSolThe primary variables at the dofs of the element
globalPosThe global position
ignoreStateIf true, the state of primary variables is ignored

◆ evalSolution() [1/4]

template<class Element , class FVElementGeometry , class PrimaryVariables >
PrimaryVariables Dumux::evalSolution ( const Element &  element,
const typename Element::Geometry &  geometry,
const CCElementSolution< FVElementGeometry, PrimaryVariables > &  elemSol,
const typename Element::Geometry::GlobalCoordinate &  globalPos,
bool  ignoreState = false 
)
Returns
the primary variables (constant over the element)
Parameters
elementThe element
geometryThe element geometry
elemSolThe primary variables at the dofs of the element
globalPosThe global position
ignoreStateIf true, the state of primary variables is ignored

◆ evalSolution() [2/4]

template<class Element , class FVElementGeometry , class PrimaryVariables >
PrimaryVariables Dumux::evalSolution ( const Element &  element,
const typename Element::Geometry &  geometry,
const CVFEElementSolution< FVElementGeometry, PrimaryVariables > &  elemSol,
const typename Element::Geometry::GlobalCoordinate &  globalPos,
bool  ignoreState = false 
)

Overload of the above evalSolution() function without a given gridGeometry. The local basis is computed on the fly.

Returns
the interpolated primary variables
Parameters
elementThe element
geometryThe element geometry
elemSolThe primary variables at the dofs of the element
globalPosThe global position
ignoreStateIf true, the state of primary variables is ignored

◆ evalSolution() [3/4]

template<class Element , class FVElementGeometry , class PrimaryVariables >
PrimaryVariables Dumux::evalSolution ( const Element &  element,
const typename Element::Geometry &  geometry,
const typename FVElementGeometry::GridGeometry &  gridGeometry,
const CCElementSolution< FVElementGeometry, PrimaryVariables > &  elemSol,
const typename Element::Geometry::GlobalCoordinate &  globalPos,
bool  ignoreState = false 
)
Returns
the primary variables (constant over the element)
Parameters
elementThe element
geometryThe element geometry
gridGeometryThe finite volume grid geometry
elemSolThe primary variables at the dofs of the element
globalPosThe global position
ignoreStateIf true, the state of primary variables is ignored

◆ evalSolution() [4/4]

template<class Element , class FVElementGeometry , class PrimaryVariables >
PrimaryVariables Dumux::evalSolution ( const Element &  element,
const typename Element::Geometry &  geometry,
const typename FVElementGeometry::GridGeometry &  gridGeometry,
const CVFEElementSolution< FVElementGeometry, PrimaryVariables > &  elemSol,
const typename Element::Geometry::GlobalCoordinate &  globalPos,
bool  ignoreState = false 
)
Returns
the interpolated primary variables
Parameters
elementThe element
geometryThe element geometry
gridGeometryThe finite volume grid geometry
elemSolThe primary variables at the dofs of the element
globalPosThe global position
ignoreStateIf true, the state of primary variables is ignored

◆ localView()

template<class GridCache >
GridCache::LocalView Dumux::localView ( const GridCache &  gridCache)
inline
Note
A local object is only functional after calling its bind/bindElement method.
Template Parameters
GridCachethe grid caching type (such as GridGeometry)
Parameters
gridCachethe grid caching object we want to localView from

◆ makeElementSolutionFromCellCenterPrivars()

template<class PrimaryVariables , class CellCenterPrimaryVariables >
StaggeredElementSolution< PrimaryVariables > Dumux::makeElementSolutionFromCellCenterPrivars ( const CellCenterPrimaryVariables &  cellCenterPriVars)
Template Parameters
PrimaryVariablesThe type of the desired primary variables object
CellCenterPrimaryVariablesThe type of the cell center (input) primary variables object
Parameters
cellCenterPriVarsThe cell center (input) primary variables object

◆ makeProjector()

template<class FEBasisDomain , class FEBasisTarget , class GlueType >
auto Dumux::makeProjector ( const FEBasisDomain &  feBasisDomain,
const FEBasisTarget &  feBasisTarget,
GlueType  glue 
)
Parameters
feBasisDomainThe domain finite element space basis
feBasisTargetThe target finite element space basis
glueThe glue object containing the intersections between the grids.
Returns
The forward projector from the space with basis feBasisDomain to the space with basis feBasisTarget.

◆ makeProjectorPair()

template<class FEBasisDomain , class FEBasisTarget , class GlueType >
auto Dumux::makeProjectorPair ( const FEBasisDomain &  feBasisDomain,
const FEBasisTarget &  feBasisTarget,
GlueType  glue 
)
Parameters
feBasisDomainThe domain finite element space basis
feBasisTargetThe target finite element space basis
glueThe glue object containing the intersections between the grids.
Returns
An std::pair of projectors where the first is the forward projector from the space with basis feBasisDomain to the space with basis feBasisTarget and the second does the backward projection.