The discretization schemes available in DuMux More...
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 | defaultlocaloperator.hh |
The default local operator than can be specialized for each discretization scheme. | |
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 | facetgridmapper.hh |
Maps between entities of a discretization and grids defined on its facets. | |
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::FVFacetGridMapper< FacetGridView, GG > |
Maps between entities of finite-volume discretizations and a grid defined on the facets of the discretization. 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... | |
using Dumux::BasicGridGeometry_t = typedef Dune::Std::detected_or_t< Dumux::BasicGridGeometry<GV, typename T::ElementMapper, typename T::VertexMapper>, Detail::SpecifiesBaseGridGeometry, T > |
|
inline |
gridView | the grid view on which to construct the grid geometry |
|
inline |
|
inline |
gridView | the grid view on which to construct the grid geometry |
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.
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.
auto Dumux::elementSolution | ( | const PrimaryVariables & | priVars | ) | -> std::enable_if_t<FVElementGeometry::GridGeometry::discMethod == DiscretizationMethods::cctpfa || FVElementGeometry::GridGeometry::discMethod == DiscretizationMethods::ccmpfa, CCElementSolution<FVElementGeometry, 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.
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 |
||
) |
element | The element |
geometry | The element geometry |
gridGeometry | The finite volume grid geometry |
elemSol | The primary variables at the dofs of the element |
globalPos | The global position |
ignoreState | If true, the state of primary variables is ignored |
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 |
||
) |
element | The element |
geometry | The element geometry |
gridGeometry | The finite volume grid geometry |
elemSol | The primary variables at the dofs of the element |
globalPos | The global position |
ignoreState | If true, the state of primary variables is ignored |
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 | ||
) |
element | The element |
geometry | The element geometry |
gridGeometry | The finite volume grid geometry |
elemSol | The primary variables at the dofs of the element |
globalPos | The global position |
Dune::NotImplemented |
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 |
||
) |
element | The element |
geometry | The element geometry |
gridGeometry | The finite volume grid geometry |
elemSol | The primary variables at the dofs of the element |
globalPos | The global position |
ignoreState | If true, the state of primary variables is ignored |
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 |
||
) |
element | The element |
geometry | The element geometry |
elemSol | The primary variables at the dofs of the element |
globalPos | The global position |
ignoreState | If true, the state of primary variables is ignored |
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.
element | The element |
geometry | The element geometry |
elemSol | The primary variables at the dofs of the element |
globalPos | The global position |
ignoreState | If true, the state of primary variables is ignored |
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 |
||
) |
element | The element |
geometry | The element geometry |
gridGeometry | The finite volume grid geometry |
elemSol | The primary variables at the dofs of the element |
globalPos | The global position |
ignoreState | If true, the state of primary variables is ignored |
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 |
||
) |
element | The element |
geometry | The element geometry |
gridGeometry | The finite volume grid geometry |
elemSol | The primary variables at the dofs of the element |
globalPos | The global position |
ignoreState | If true, the state of primary variables is ignored |
|
inline |
GridCache | the grid caching type (such as GridGeometry) |
gridCache | the grid caching object we want to localView from |
StaggeredElementSolution< PrimaryVariables > Dumux::makeElementSolutionFromCellCenterPrivars | ( | const CellCenterPrimaryVariables & | cellCenterPriVars | ) |
PrimaryVariables | The type of the desired primary variables object |
CellCenterPrimaryVariables | The type of the cell center (input) primary variables object |
cellCenterPriVars | The cell center (input) primary variables object |
auto Dumux::makeProjector | ( | const FEBasisDomain & | feBasisDomain, |
const FEBasisTarget & | feBasisTarget, | ||
GlueType | glue | ||
) |
feBasisDomain | The domain finite element space basis |
feBasisTarget | The target finite element space basis |
glue | The glue object containing the intersections between the grids. |
auto Dumux::makeProjectorPair | ( | const FEBasisDomain & | feBasisDomain, |
const FEBasisTarget & | feBasisTarget, | ||
GlueType | glue | ||
) |
feBasisDomain | The domain finite element space basis |
feBasisTarget | The target finite element space basis |
glue | The glue object containing the intersections between the grids. |