25#ifndef DUMUX_PNM_SPATIAL_PARAMS_HH
26#define DUMUX_PNM_SPATIAL_PARAMS_HH
31#include <dune/common/fvector.hh>
42template<
class Gr
idGeometry,
class Scalar,
class Implementation>
47 using GridView =
typename GridGeometry::GridView;
48 using SubControlVolume =
typename GridGeometry::SubControlVolume;
49 using Element =
typename GridView::template Codim<0>::Entity;
51 using GlobalPosition =
typename Element::Geometry::GlobalCoordinate;
52 static constexpr auto dimWorld = GridView::dimensionworld;
68 template<
class ElementVolumeVariables>
70 const ElementVolumeVariables& elemVolVars)
const
72 const auto eIdx = this->
gridGeometry().elementMapper().index(element);
83 template<
class ElementVolumeVariables>
85 const ElementVolumeVariables& elemVolVars)
const
87 const auto eIdx = this->
gridGeometry().elementMapper().index(element);
98 template<
class ElementVolumeVariables>
100 const ElementVolumeVariables& elemVolVars)
const
102 const auto eIdx = this->
gridGeometry().elementMapper().index(element);
103 return this->
gridGeometry().throatCrossSectionalArea(eIdx);
114 template<
class ElementSolutionVector>
116 const SubControlVolume& scv,
117 const ElementSolutionVector& elemSol)
const
118 {
return this->
gridGeometry().poreInscribedRadius(scv.dofIndex()); }
The infrastructure to retrieve run-time parameters from Dune::ParameterTrees.
Definition: discretization/porenetwork/fvelementgeometry.hh:34
The base class for spatial parameters used with finite-volume schemes.
Definition: common/fvspatialparams.hh:46
const GridGeometry & gridGeometry() const
The finite volume grid geometry.
Definition: common/fvspatialparams.hh:142
The base class for spatial parameters for pore-network models.
Definition: porenetwork/common/spatialparams.hh:45
Scalar throatInscribedRadius(const Element &element, const ElementVolumeVariables &elemVolVars) const
Inscribed radius of the throat . Can be solution-dependent.
Definition: porenetwork/common/spatialparams.hh:84
Scalar throatLength(const Element &element, const ElementVolumeVariables &elemVolVars) const
Length of the throat . Can be solution-dependent.
Definition: porenetwork/common/spatialparams.hh:69
Scalar poreInscribedRadius(const Element &element, const SubControlVolume &scv, const ElementSolutionVector &elemSol) const
Inscribed radius of the pore body . Can be solution-dependent.
Definition: porenetwork/common/spatialparams.hh:115
Scalar permeabilityAtPos(const GlobalPosition &globalPos) const
Required for compatibility reasons with porous medium-flow models.
Definition: porenetwork/common/spatialparams.hh:127
const GridView & gridView() const
Returns a reference to the gridview.
Definition: porenetwork/common/spatialparams.hh:123
Scalar throatCrossSectionalArea(const Element &element, const ElementVolumeVariables &elemVolVars) const
Cross-sectional area of the throat . Can be solution-dependent.
Definition: porenetwork/common/spatialparams.hh:99
SpatialParams(std::shared_ptr< const GridGeometry > gridGeometry)
Definition: porenetwork/common/spatialparams.hh:57
Scalar porosityAtPos(const GlobalPosition &globalPos) const
Required for compatibility reasons with porous medium-flow models.
Definition: porenetwork/common/spatialparams.hh:131
Scalar PermeabilityType
Definition: porenetwork/common/spatialparams.hh:55
The base class for spatial parameters of porous-medium-flow problems.
Definition: porousmediumflow/fvspatialparams.hh:59
The base class for spatial parameters in porous-medium-flow problems.