Commit 62a573da authored by Ned Coltman's avatar Ned Coltman
Browse files

[mm][heavyoil][sagdcyclic] adapt to new material laws

parent 1888dc9e
......@@ -21,3 +21,19 @@ MaxSteps = 8
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
......@@ -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 {
......@@ -54,12 +50,9 @@ 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;
/*!
......@@ -68,7 +61,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;
......@@ -79,23 +75,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);
}
/*!
......@@ -147,12 +126,10 @@ public:
* \return the material parameters object
*/
template<class ElementSolution>
const MaterialLawParams& materialLawParams(const Element& element,
auto fluidMatrixInteraction(const Element& element,
const SubControlVolume& scv,
const ElementSolution& elemSol) const
{
return materialLawParamsAtPos(scv.dofPosition());
}
{ return fluidMatrixInteractionAtPos(scv.dofPosition()); }
/*!
* \brief Returns the parameter object for the capillary-pressure/
......@@ -160,19 +137,16 @@ public:
*
* \param globalPos The global position
*/
const MaterialLawParams& materialLawParamsAtPos(const GlobalPosition& globalPos) const
auto fluidMatrixInteractionAtPos(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_;
......@@ -182,8 +156,8 @@ private:
Scalar finePorosity_;
Scalar coarsePorosity_;
MaterialLawParams fineMaterialParams_;
MaterialLawParams coarseMaterialParams_;
const ThreePhasePcKrSw threePhasePcKrSwFine_;
const ThreePhasePcKrSw threePhasePcKrSwCoarse_;
Scalar eps_;
};
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment