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
1888dc9e
Commit
1888dc9e
authored
Nov 02, 2020
by
Ned Coltman
Browse files
[mm][heavyoil][sagd] adapt to new material laws
parent
f1b9f520
Changes
2
Hide whitespace changes
Inline
Side-by-side
lecture/mm/heavyoil/sagd/sagd.input
View file @
1888dc9e
...
...
@@ -21,3 +21,19 @@ RelTolerance = 1e-02
SolidDensity = 2650
SolidThermalConductivity = 2.8
SolidHeatCapacity = 850
[SpatialParams.Fine]
Swr = 0.1
Snr = 0.09
Sgr = 0.01
ParkerVanGenuchtenN = 4.0
ParkerVanGenuchtenAlpha = 0.0005
ParkerVanGenuchtenRegardSnrForKrn = false
[SpatialParams.Coarse]
setSwr = 0.1
setSnr = 0.09
setSgr = 0.01
ParkerVanGenuchtenN =4.0
ParkerVanGenuchtenAlpha = 0.0015
ParkerVanGenuchtenRegardSnrForKrn = false
lecture/mm/heavyoil/sagd/spatialparams.hh
View file @
1888dc9e
...
...
@@ -25,13 +25,9 @@
#define DUMUX_SAGD_SPATIAL_PARAMS_HH
#include <dumux/porousmediumflow/properties.hh>
#include <dumux/material/spatialparams/fv.hh>
#include <dumux/porousmediumflow/3pwateroil/indices.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/spatialparams/fv.hh>
#include <dumux/material/fluidmatrixinteractions/3p/parkervangenuchten.hh>
namespace
Dumux
{
...
...
@@ -55,12 +51,10 @@ class SagdSpatialParams
using
Element
=
typename
GridView
::
template
Codim
<
0
>
::
Entity
;
using
ParentType
=
FVSpatialParams
<
FVGridGeometry
,
Scalar
,
SagdSpatialParams
<
FVGridGeometry
,
Scalar
>>
;
using
EffectiveLaw
=
RegularizedParkerVanGen3P
<
Scalar
>
;
using
ThreePhasePcKrSw
=
FluidMatrix
::
ParkerVanGenuchten3PDefault
<
Scalar
>
;
public:
using
MaterialLaw
=
EffToAbsLaw
<
EffectiveLaw
>
;
using
MaterialLawParams
=
typename
MaterialLaw
::
Params
;
using
PermeabilityType
=
Scalar
;
/*!
...
...
@@ -69,7 +63,10 @@ public:
* \param gridView The grid view
*/
SagdSpatialParams
(
std
::
shared_ptr
<
const
FVGridGeometry
>
fvGridGeometry
)
:
ParentType
(
fvGridGeometry
),
eps_
(
1e-6
)
:
ParentType
(
fvGridGeometry
)
,
threePhasePcKrSwFine_
(
"SpatialParams.Fine"
)
,
threePhasePcKrSwCoarse_
(
"SpatialParams.Coarse"
)
,
eps_
(
1e-6
)
{
layerBottom_
=
35.0
;
...
...
@@ -80,23 +77,6 @@ public:
// porosities
finePorosity_
=
0.10
;
coarsePorosity_
=
0.1
;
// residual saturations
fineMaterialParams_
.
setSwr
(
0.1
);
fineMaterialParams_
.
setSnr
(
0.09
);
//Residual of NAPL if there is no water
fineMaterialParams_
.
setSgr
(
0.01
);
coarseMaterialParams_
.
setSwr
(
0.1
);
coarseMaterialParams_
.
setSnr
(
0.09
);
coarseMaterialParams_
.
setSgr
(
0.01
);
// parameters for the 3phase van Genuchten law
fineMaterialParams_
.
setVgn
(
4.0
);
coarseMaterialParams_
.
setVgn
(
4.0
);
fineMaterialParams_
.
setVgAlpha
(
0.0005
);
coarseMaterialParams_
.
setVgAlpha
(
0.0015
);
coarseMaterialParams_
.
setKrRegardsSnr
(
false
);
fineMaterialParams_
.
setKrRegardsSnr
(
false
);
}
/*!
...
...
@@ -148,12 +128,10 @@ public:
* \return the material parameters object
*/
template
<
class
ElementSolution
>
const
MaterialLawParams
&
materialLawParams
(
const
Element
&
element
,
const
SubControlVolume
&
scv
,
const
ElementSolution
&
elemSol
)
const
{
return
materialLawParamsAtPos
(
scv
.
dofPosition
());
}
auto
fluidMatrixInteraction
(
const
Element
&
element
,
const
SubControlVolume
&
scv
,
const
ElementSolution
&
elemSol
)
const
{
return
fluidMatrixInteractionAtPos
(
scv
.
dofPosition
());
}
/*!
* \brief Returns the parameter object for the capillary-pressure/
...
...
@@ -161,30 +139,25 @@ public:
*
* \param globalPos The global position
*/
const
Mat
e
ri
alLawParams
&
materialLawParams
AtPos
(
const
GlobalPosition
&
globalPos
)
const
auto
fluid
Matri
xInteraction
AtPos
(
const
GlobalPosition
&
globalPos
)
const
{
if
(
isFineMaterial_
(
globalPos
))
return
fineMaterialParams_
;
else
return
coarseMaterialParams_
;
return
threePhasePcKrSwFine_
;
return
threePhasePcKrSwCoarse_
;
}
private:
bool
isFineMaterial_
(
const
GlobalPosition
&
pos
)
const
{
return
pos
[
dimWorld
-
1
]
>
layerBottom_
-
eps_
;
};
{
return
pos
[
dimWorld
-
1
]
>
layerBottom_
-
eps_
;
};
Scalar
layerBottom_
;
Scalar
fineK_
;
Scalar
coarseK_
;
Scalar
finePorosity_
;
Scalar
coarsePorosity_
;
MaterialLawParams
fineMaterialParams
_
;
MaterialLawParams
coarseMaterialParams
_
;
const
ThreePhasePcKrSw
threePhasePcKrSwFine
_
;
const
ThreePhasePcKrSw
threePhasePcKrSwCoarse
_
;
Scalar
eps_
;
};
...
...
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