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
EffToAbsLawParams< typename EffectiveLaw::Params > Params
Definition 2p/efftoabslaw.hh:64
Implementation of the regularized van Genuchten's capillary pressure <-> saturation relation....
Definition regularizedparkervangen3p.hh:62
FVSpatialParams(std::shared_ptr< const GridGeometry > gridGeometry)
Definition fv.hh:67
const GridGeometry & gridGeometry() const
Definition fv1p.hh:334
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
EffToAbsLaw< EffectiveLaw > MaterialLaw
Definition porousmediumflow/3p3c/implicit/kuevette/spatialparams.hh:60
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...