25#ifndef DUMUX_KUEVETTE3P3CNI_SPATIAL_PARAMS_HH
26#define DUMUX_KUEVETTE3P3CNI_SPATIAL_PARAMS_HH
28#include <dune/common/float_cmp.hh>
42template<
class Gr
idGeometry,
class Scalar>
45 KuevetteSpatialParams<GridGeometry, Scalar>>
47 using GridView =
typename GridGeometry::GridView;
48 using FVElementGeometry =
typename GridGeometry::LocalView;
49 using SubControlVolume =
typename FVElementGeometry::SubControlVolume;
51 using Element =
typename GridView::template Codim<0>::Entity;
55 using GlobalPosition =
typename SubControlVolume::GlobalPosition;
73 coarsePorosity_ = 0.42;
76 fineMaterialParams_.setSwr(0.12);
77 fineMaterialParams_.setSnr(0.07);
78 fineMaterialParams_.setSgr(0.01);
79 coarseMaterialParams_.setSwr(0.12);
80 coarseMaterialParams_.setSnr(0.07);
81 coarseMaterialParams_.setSgr(0.01);
84 fineMaterialParams_.setVgAlpha(0.0005);
85 coarseMaterialParams_.setVgAlpha(0.005);
86 fineMaterialParams_.setVgn(4.0);
87 coarseMaterialParams_.setVgn(4.0);
89 coarseMaterialParams_.setKrRegardsSnr(
true);
90 fineMaterialParams_.setKrRegardsSnr(
true);
93 coarseMaterialParams_.setKdNAPL(0.);
94 coarseMaterialParams_.setRhoBulk(1500.);
95 fineMaterialParams_.setKdNAPL(0.);
96 fineMaterialParams_.setRhoBulk(1500.);
108 template<
class ElementSolution>
110 const SubControlVolume& scv,
111 const ElementSolution& elemSol)
const
113 const auto& globalPos = scv.dofPosition();
114 if (isFineMaterial_(globalPos))
126 if (isFineMaterial_(globalPos))
127 return finePorosity_;
129 return coarsePorosity_;
141 template<
class ElementSolution>
143 const SubControlVolume& scv,
144 const ElementSolution& elemSol)
const
146 const auto& globalPos = scv.dofPosition();
147 if (isFineMaterial_(globalPos))
148 return fineMaterialParams_;
150 return coarseMaterialParams_;
154 bool isFineMaterial_(
const GlobalPosition &globalPos)
const
156 return ((Dune::FloatCmp::ge<Scalar>(globalPos[0], 0.13)
157 && Dune::FloatCmp::le<Scalar>(globalPos[0], 1.24)
158 && Dune::FloatCmp::ge<Scalar>(globalPos[1], 0.32)
159 && Dune::FloatCmp::le<Scalar>(globalPos[1], 0.60))
160 || (Dune::FloatCmp::ge<Scalar>(globalPos[0], 1.20)
161 && Dune::FloatCmp::le<Scalar>(globalPos[1], 0.15)));
167 Scalar finePorosity_;
168 Scalar coarsePorosity_;
Implementation of a regularized version of van Genuchten's capillary pressure-saturation relation for...
Parameters that are necessary for the regularization of the Parker - Van Genuchten capillary pressure...
The base class for spatial parameters of multi-phase problems using a fully implicit discretization m...
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
This material law takes a material law defined for effective saturations and converts it to a materia...
Definition: 2p/efftoabslaw.hh:60
AbsParamsT Params
Definition: 2p/efftoabslaw.hh:64
Implementation of the regularized van Genuchten's capillary pressure <-> saturation relation....
Definition: regularizedparkervangen3p.hh:62
The base class for spatial parameters of multi-phase problems using a fully implicit discretization m...
Definition: fv.hh:57
const GridGeometry & gridGeometry() const
The finite volume grid geometry.
Definition: fv1p.hh:334
Definition of the spatial parameters for the kuevette problem.
Definition: porousmediumflow/3p3c/implicit/kuevette/spatialparams.hh:46
Scalar PermeabilityType
Definition: porousmediumflow/3p3c/implicit/kuevette/spatialparams.hh:62
const MaterialLawParams & materialLawParams(const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
Function for defining the parameters needed by constitutive relationships (kr-sw, pc-sw,...
Definition: porousmediumflow/3p3c/implicit/kuevette/spatialparams.hh:142
Scalar porosityAtPos(const GlobalPosition &globalPos) const
Define the porosity of the spatial parameters.
Definition: porousmediumflow/3p3c/implicit/kuevette/spatialparams.hh:124
PermeabilityType permeability(const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
Function for defining the (intrinsic) permeability .
Definition: porousmediumflow/3p3c/implicit/kuevette/spatialparams.hh:109
KuevetteSpatialParams(std::shared_ptr< const GridGeometry > gridGeometry)
Definition: porousmediumflow/3p3c/implicit/kuevette/spatialparams.hh:64
typename MaterialLaw::Params MaterialLawParams
Definition: porousmediumflow/3p3c/implicit/kuevette/spatialparams.hh:61
Defines a type tag and some properties for models using the box scheme.
This material law takes a material law defined for effective saturations and converts it to a materia...