Skip to content
Snippets Groups Projects
Commit 79ccf27c authored by Kilian Weishaupt's avatar Kilian Weishaupt
Browse files

[test][3p3c/kuevette] Adapt spatialParams

parent bb04056f
No related branches found
No related tags found
1 merge request!1607Feature/new materiallaw 2p
...@@ -22,3 +22,13 @@ SolidDensity = 2650 ...@@ -22,3 +22,13 @@ SolidDensity = 2650
SolidThermalConductivity = 2.8 SolidThermalConductivity = 2.8
SolidHeatCapacity = 850 SolidHeatCapacity = 850
[SpatialParams]
Swr = 0.12
Snr = 0.07
Sgr = 0.01
ParkerVanGenuchtenN = 4
ParkerVanGenuchtenRegardSnrForKrn = true
Fine.ParkerVanGenuchtenAlpha = 0.0005
Coarse.ParkerVanGenuchtenAlpha = 0.005
ThreePNAPLAdsorptionRhoBulk = 1500
ThreePNAPLAdsorptionKdNAPL = 0
...@@ -29,9 +29,9 @@ ...@@ -29,9 +29,9 @@
#include <dumux/porousmediumflow/properties.hh> #include <dumux/porousmediumflow/properties.hh>
#include <dumux/material/spatialparams/fv.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/parkervangenuchten.hh>
#include <dumux/material/fluidmatrixinteractions/3p/efftoabslaw.hh> #include <dumux/material/fluidmatrixinteractions/3p/napladsorption.hh>
namespace Dumux { namespace Dumux {
...@@ -54,15 +54,17 @@ class KuevetteSpatialParams ...@@ -54,15 +54,17 @@ class KuevetteSpatialParams
using GlobalPosition = typename SubControlVolume::GlobalPosition; using GlobalPosition = typename SubControlVolume::GlobalPosition;
using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>; using ThreePhasePcKrSw = FluidMatrix::ParkerVanGenuchten3PDefault<Scalar>;
using AdsorptionModel = FluidMatrix::ThreePNAPLAdsorption<Scalar>;
public: public:
using MaterialLaw = EffToAbsLaw<EffectiveLaw>;
using MaterialLawParams = typename MaterialLaw::Params;
using PermeabilityType = Scalar; using PermeabilityType = Scalar;
KuevetteSpatialParams(std::shared_ptr<const GridGeometry> gridGeometry) KuevetteSpatialParams(std::shared_ptr<const GridGeometry> gridGeometry)
: ParentType(gridGeometry) : ParentType(gridGeometry)
, pcKrSwCurveFine_("SpatialParams.Fine")
, pcKrSwCurveCoarse_("SpatialParams.Coarse")
, adsorption_("SpatialParams")
{ {
// intrinsic permeabilities // intrinsic permeabilities
fineK_ = 6.28e-12; fineK_ = 6.28e-12;
...@@ -71,29 +73,6 @@ public: ...@@ -71,29 +73,6 @@ public:
// porosities // porosities
finePorosity_ = 0.42; finePorosity_ = 0.42;
coarsePorosity_ = 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 3phase van Genuchten law
fineMaterialParams_.setVgAlpha(0.0005);
coarseMaterialParams_.setVgAlpha(0.005);
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.);
} }
/*! /*!
...@@ -129,25 +108,17 @@ public: ...@@ -129,25 +108,17 @@ public:
return coarsePorosity_; return coarsePorosity_;
} }
/*! /*!
* \brief Function for defining the parameters needed by constitutive relationships (kr-sw, pc-sw, etc.). * \brief Returns the fluid-matrix interaction law at a given location
* *
* \param element The current element * \param globalPos The global coordinates for the given location
* \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> auto fluidMatrixInteractionAtPos(const GlobalPosition& globalPos) const
const MaterialLawParams& materialLawParams(const Element& element,
const SubControlVolume& scv,
const ElementSolution& elemSol) const
{ {
const auto& globalPos = scv.dofPosition();
if (isFineMaterial_(globalPos)) if (isFineMaterial_(globalPos))
return fineMaterialParams_; return makeFluidMatrixInteraction(pcKrSwCurveFine_, adsorption_);
else else
return coarseMaterialParams_; return makeFluidMatrixInteraction(pcKrSwCurveCoarse_, adsorption_);
} }
private: private:
...@@ -167,8 +138,9 @@ private: ...@@ -167,8 +138,9 @@ private:
Scalar finePorosity_; Scalar finePorosity_;
Scalar coarsePorosity_; Scalar coarsePorosity_;
MaterialLawParams fineMaterialParams_; const ThreePhasePcKrSw pcKrSwCurveFine_;
MaterialLawParams coarseMaterialParams_; const ThreePhasePcKrSw pcKrSwCurveCoarse_;
const AdsorptionModel adsorption_;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment