Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
dumux-repositories
dumux-lecture
Commits
68f6c5ed
Commit
68f6c5ed
authored
Oct 31, 2020
by
Kilian Weishaupt
Browse files
[remediationscenario] Adapt to new material law
parent
86f57025
Changes
2
Hide whitespace changes
Inline
Side-by-side
lecture/mm/remediationscenarios/remediationscenariosexercise.input
View file @
68f6c5ed
...
...
@@ -45,6 +45,32 @@ AirFlux = -0.02
ContaminantFlux = -0.0000001
HeatFlux = -5555.0
[SpatialParams.Fine]
Permeability = 6.28e-12
Porosity = 0.42
Swr = 0.12
Snr = 0.07
Sgr = 0.01
ParkerVanGenuchtenAlpha = 0.0005
ParkerVanGenuchtenN = 4.0
ParkerVanGenuchtenRegardSnrForKrn = true
ParkerVanGenuchtenBetaNw = 1.83
ParkerVanGenuchtenBetaGn = 2.2
ParkerVanGenuchtenBetaGw = 1.0
[SpatialParams.Coarse]
Permeability = 9.14e-10
Porosity = 0.42
Swr = 0.12
Snr = 0.07
Sgr = 0.01
ParkerVanGenuchtenAlpha = 0.0015
ParkerVanGenuchtenN = 4.0
ParkerVanGenuchtenRegardSnrForKrn = true
ParkerVanGenuchtenBetaNw = 1.83
ParkerVanGenuchtenBetaGn = 2.2
ParkerVanGenuchtenBetaGw = 1.0
[Newton]
MaxRelativeShift = 1e-4
TargetSteps = 4
...
...
lecture/mm/remediationscenarios/remediationscenariosspatialparams.hh
View file @
68f6c5ed
...
...
@@ -23,16 +23,11 @@
#ifndef DUMUX_KUEVETTE3P3CNI_SPATIAL_PARAMS_HH
#define DUMUX_KUEVETTE3P3CNI_SPATIAL_PARAMS_HH
//TODO Do we need this #include <dumux/porousmediumflow/3p3c/indices.hh>
#include
<dune/common/float_cmp.hh>
#include
<dumux/porousmediumflow/properties.hh>
#include
<dumux/material/spatialparams/fv.hh>
#include
<dumux/material/fluidmatrixinteractions/3p/regularizedparkervangen3p.hh>
#include
<dumux/material/fluidmatrixinteractions/3p/regularizedparkervangen3pparams.hh>
#include
<dumux/material/fluidmatrixinteractions/3p/efftoabslaw.hh>
#include
<dumux/material/fluidmatrixinteractions/3p/parkervangenuchten.hh>
namespace
Dumux
{
...
...
@@ -52,11 +47,9 @@ class KuevetteSpatialParams
using
GlobalPosition
=
typename
SubControlVolume
::
GlobalPosition
;
using
ParentType
=
FVSpatialParams
<
FVGridGeometry
,
Scalar
,
KuevetteSpatialParams
<
TypeTag
>>
;
using
EffectiveLaw
=
RegularizedParkerVanGen3P
<
Scalar
>
;
using
ThreePhasePcKrSw
=
FluidMatrix
::
ParkerVanGenuchten3PDefault
<
Scalar
>
;
public:
using
MaterialLaw
=
EffToAbsLaw
<
EffectiveLaw
>
;
using
MaterialLawParams
=
typename
MaterialLaw
::
Params
;
using
PermeabilityType
=
Scalar
;
/*!
...
...
@@ -66,46 +59,16 @@ public:
*/
KuevetteSpatialParams
(
std
::
shared_ptr
<
const
FVGridGeometry
>
fvGridGeometry
)
:
ParentType
(
fvGridGeometry
)
,
pcKrSwCurveFine_
(
"SpatialParams.Fine"
)
,
pcKrSwCurveCoarse_
(
"SpatialParams.Coarse"
)
{
// intrinsic permeabilities
fineK_
=
6.28e-12
;
coarseK_
=
9.14e-10
;
fineK_
=
getParam
<
Scalar
>
(
"SpatialParams.Fine.Permeability"
)
;
coarseK_
=
getParam
<
Scalar
>
(
"SpatialParams.Coarse.Permeability"
)
;
// porosities
finePorosity_
=
0.42
;
coarsePorosity_
=
0.42
;
// residual saturations
fineMaterialParams_
.
setSwr
(
0.12
);
fineMaterialParams_
.
setSnr
(
0.07
);
fineMaterialParams_
.
setSgr
(
0.01
);
coarseMaterialParams_
.
setSwr
(
0.12
);
coarseMaterialParams_
.
setSnr
(
0.07
);
coarseMaterialParams_
.
setSgr
(
0.01
);
// parameters for the scaling of capillary pressure (GW = 1);
fineMaterialParams_
.
setBetaNw
(
1.83
);
fineMaterialParams_
.
setBetaGn
(
2.2
);
fineMaterialParams_
.
setBetaGw
(
1.0
);
coarseMaterialParams_
.
setBetaNw
(
1.83
);
coarseMaterialParams_
.
setBetaGn
(
2.2
);
coarseMaterialParams_
.
setBetaGw
(
1.0
);
// parameters for the 3phase van Genuchten law
fineMaterialParams_
.
setVgAlpha
(
0.0005
);
coarseMaterialParams_
.
setVgAlpha
(
0.0015
);
fineMaterialParams_
.
setVgn
(
4.0
);
coarseMaterialParams_
.
setVgn
(
4.0
);
coarseMaterialParams_
.
setKrRegardsSnr
(
true
);
fineMaterialParams_
.
setKrRegardsSnr
(
true
);
// parameters for adsorption
coarseMaterialParams_
.
setKdNAPL
(
0.
);
coarseMaterialParams_
.
setRhoBulk
(
1500.
);
fineMaterialParams_
.
setKdNAPL
(
0.
);
fineMaterialParams_
.
setRhoBulk
(
1500.
);
finePorosity_
=
getParam
<
Scalar
>
(
"SpatialParams.Fine.Porosity"
);
coarsePorosity_
=
getParam
<
Scalar
>
(
"SpatialParams.Coarse.Porosity"
);
}
/*!
...
...
@@ -156,49 +119,30 @@ public:
}
}
/*
Scalar porosityAtPos(const GlobalPosition& globalPos) const
{
if (isFineMaterial_(globalPos))
return finePorosity_;
else
return coarsePorosity_;
}
*/
/*!
* \brief
Function for defining the parameters needed by constitutive relationships
(kr-sw, pc-sw, etc.).
* \brief
Returns the fluid-matrix interaction law
(kr-sw, pc-sw, etc.).
*
* \param element The current element
* \param scv The sub-control volume inside the element.
* \param elemSol The solution at the dofs connected to the element.
* \return the material parameters object
*/
template
<
class
ElementSolution
>
const
Mat
e
ri
alLawParams
&
materialLawParams
(
const
Element
&
element
,
const
SubControlVolume
&
scv
,
const
ElementSolution
&
elemSol
)
const
auto
fluid
Matri
xInteraction
(
const
Element
&
element
,
const
SubControlVolume
&
scv
,
const
ElementSolution
&
elemSol
)
const
{
const
auto
&
globalPos
=
scv
.
dofPosition
();
if
(
isFineMaterial_
(
globalPos
))
return
fineMaterialParams_
;
return
makeFluidMatrixInteraction
(
pcKrSwCurveFine_
)
;
else
return
coarseMaterialParams_
;
return
makeFluidMatrixInteraction
(
pcKrSwCurveCoarse_
)
;
}
private:
bool
isFineMaterial_
(
const
GlobalPosition
&
globalPos
)
const
{
if
(
0.13
<
globalPos
[
0
]
+
eps_
&&
1.20
>
globalPos
[
0
]
-
eps_
&&
0.32
<
globalPos
[
1
]
+
eps_
&&
globalPos
[
1
]
<
0.57
-
eps_
)
{
return
true
;
}
else
{
return
false
;
}
return
(
0.13
<
globalPos
[
0
]
+
eps_
&&
1.20
>
globalPos
[
0
]
-
eps_
&&
0.32
<
globalPos
[
1
]
+
eps_
&&
globalPos
[
1
]
<
0.57
-
eps_
);
}
Scalar
fineK_
;
...
...
@@ -207,8 +151,8 @@ private:
Scalar
finePorosity_
;
Scalar
coarsePorosity_
;
MaterialLawParams
fineMaterialParams
_
;
MaterialLawParams
coarseMaterialParams
_
;
const
ThreePhasePcKrSw
pcKrSwCurveFine
_
;
const
ThreePhasePcKrSw
pcKrSwCurveCoarse
_
;
static
constexpr
Scalar
eps_
=
1.5e-7
;
};
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment