27#ifndef DUMUX_DISCRETIZATION_STAGGERD_HH
28#define DUMUX_DISCRETIZATION_STAGGERD_HH
48#include <dune/istl/multitypeblockvector.hh>
49#include <dune/istl/multitypeblockmatrix.hh>
54class CCElementBoundaryTypes;
65template<
class TypeTag>
71 static constexpr auto enableCache = getPropValue<TypeTag, Properties::EnableGridFaceVariablesCache>();
77template<
class TypeTag>
81template<
class TypeTag>
93 static constexpr auto enableCache = getPropValue<TypeTag, Properties::EnableGridFluxVariablesCache>();
94 static constexpr auto upwindSchemeOrder = getPropValue<TypeTag, Properties::UpwindSchemeOrder>();
100template<
class TypeTag>
110template<
class TypeTag>
123template<
class TypeTag>
127template<
class TypeTag>
131template<
class TypeTag>
134 using type = Dune::FieldVector<GetPropType<TypeTag, Properties::Scalar>,
135 getPropValue<TypeTag, Properties::NumEqCellCenter>()>;
139template<
class TypeTag>
142 using type = Dune::FieldVector<GetPropType<TypeTag, Properties::Scalar>,
143 getPropValue<TypeTag, Properties::NumEqFace>()>;
150template<
class TypeTag>
152{
using type = Dune::BlockVector<GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>>; };
155template<
class TypeTag>
157{
using type = Dune::BlockVector<GetPropType<TypeTag, Properties::FacePrimaryVariables>>; };
160template<
class TypeTag>
171template<
class TypeTag>
177 static constexpr auto numEqCellCenter = getPropValue<TypeTag, Properties::NumEqCellCenter>();
178 static constexpr auto numEqFace = getPropValue<TypeTag, Properties::NumEqFace>();
207template<
class Problem>
211 using GG = std::decay_t<decltype(std::declval<Problem>().gridGeometry())>;
212 using Element =
typename GG::GridView::template Codim<0>::Entity;
213 using SubControlVolumeFace =
typename GG::SubControlVolumeFace;
217 using BoundaryTypes = std::decay_t<decltype(std::declval<Problem>().boundaryTypes(std::declval<Element>(), std::declval<SubControlVolumeFace>()))>;
Calculates the element-wise residual for the staggered FV scheme.
Declares properties required for finite-volume models models.
The available discretization methods in Dumux.
Classes related to flux variables caching.
Adaption of the non-isothermal two-phase two-component flow model to problems with CO2.
Definition: adapt.hh:29
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:180
typename GetPropOr< TypeTag, Property, T >::type GetPropTypeOr
get the type alias defined in the property or the type T if the property is undefined
Definition: propertysystem.hh:184
Calculates the element-wise residual for the staggered FV scheme.
Definition: staggeredlocalresidual.hh:41
Definition: common/pdesolver.hh:38
The type of the base class of the local residual (specific to a discretization scheme)
Definition: common/properties.hh:63
Type of the global jacobian matrix.
Definition: common/properties.hh:65
Vector containing all primary variable vector of the grid.
Definition: common/properties.hh:67
Stores the boundary types on an element.
Definition: common/properties.hh:97
Stores data associated with flux vars.
Definition: common/properties.hh:113
The engine behind the global flux cache (how to fill caches for the stencil)
Definition: common/properties.hh:115
The global vector of flux variable containers.
Definition: common/properties.hh:117
The grid variables object managing variable data on the grid (volvars/fluxvars cache)
Definition: common/properties.hh:121
The solution vector type for cell-centered dofs.
Definition: common/properties.hh:218
The solution vector type for face dofs.
Definition: common/properties.hh:220
Global vector containing face-related data.
Definition: common/properties.hh:222
The primary variables container type for cell-centered dofs.
Definition: common/properties.hh:224
The primary variables container type for face dofs.
Definition: common/properties.hh:226
A vector containing the solution for a face (similar to ElementSolution)
Definition: common/properties.hh:238
Switch on/off caching of face variables.
Definition: common/properties.hh:240
Definition: common/typetraits/problem.hh:35
Definition: variablesbackend.hh:43
Boundary types gathered on an element.
Definition: cellcentered/elementboundarytypes.hh:38
Definition: staggered.hh:61
std::tuple< FiniteVolumeModel > InheritsFrom
Definition: staggered.hh:61
Dune::FieldVector< GetPropType< TypeTag, Properties::Scalar >, getPropValue< TypeTag, Properties::NumEqCellCenter >()> type
Definition: staggered.hh:135
Dune::FieldVector< GetPropType< TypeTag, Properties::Scalar >, getPropValue< TypeTag, Properties::NumEqFace >()> type
Definition: staggered.hh:143
Dune::BlockVector< GetPropType< TypeTag, Properties::CellCenterPrimaryVariables > > type
Definition: staggered.hh:152
Dune::BlockVector< GetPropType< TypeTag, Properties::FacePrimaryVariables > > type
Definition: staggered.hh:157
typename Dune::BCRSMatrix< MatrixLittleBlockCCToFace > MatrixBlockCCToFace
Definition: staggered.hh:190
typename Dune::MultiTypeBlockVector< MatrixBlockFaceToFace, MatrixBlockFaceToCC > RowFace
Definition: staggered.hh:196
typename Dune::BCRSMatrix< MatrixLittleBlockFaceToFace > MatrixBlockFaceToFace
Definition: staggered.hh:192
typename Dune::FieldMatrix< Scalar, numEqCellCenter, numEqFace > MatrixLittleBlockCCToFace
Definition: staggered.hh:183
typename Dune::MultiTypeBlockMatrix< RowFace, RowCellCenter > type
Definition: staggered.hh:200
typename Dune::BCRSMatrix< MatrixLittleBlockCCToCC > MatrixBlockCCToCC
Definition: staggered.hh:189
typename Dune::FieldMatrix< Scalar, numEqFace, numEqCellCenter > MatrixLittleBlockFaceToCC
Definition: staggered.hh:186
typename Dune::FieldMatrix< Scalar, numEqFace, numEqFace > MatrixLittleBlockFaceToFace
Definition: staggered.hh:185
typename Dune::MultiTypeBlockVector< MatrixBlockCCToFace, MatrixBlockCCToCC > RowCellCenter
Definition: staggered.hh:197
typename Dune::BCRSMatrix< MatrixLittleBlockFaceToCC > MatrixBlockFaceToCC
Definition: staggered.hh:193
typename Dune::FieldMatrix< Scalar, numEqCellCenter, numEqCellCenter > MatrixLittleBlockCCToCC
Definition: staggered.hh:182
std::decay_t< decltype(std::declval< Problem >().boundaryTypes(std::declval< Element >(), std::declval< SubControlVolumeFace >()))> BoundaryTypes
Definition: staggered.hh:217
GG GridGeometry
Definition: staggered.hh:215
The global face variables class for staggered models.
Definition: facesolution.hh:40
Face variables cache class for staggered models.
Definition: gridfacevariables.hh:59
Flux variables cache class for staggered models.
Definition: discretization/staggered/gridfluxvariablescache.hh:63
Class storing data associated to scvs and scvfs.
Definition: discretization/staggered/gridvariables.hh:195
The empty filler class corresponding to EmptyCache.
Definition: fluxvariablescaching.hh:32
An empty flux variables cache.
Definition: fluxvariablescaching.hh:47
Declares all properties used in Dumux.
Type traits for problem classes.
Boundary types gathered on an element.
Sub control volumes for cell-centered discretization schemes.