Skip to content
Snippets Groups Projects
Commit dd74aaed authored by Yue Wang's avatar Yue Wang Committed by Kilian Weishaupt
Browse files

[test][2p2c][mpnccomparison] new material law

parent cccc9e06
No related branches found
No related tags found
1 merge request!1607Feature/new materiallaw 2p
......@@ -11,3 +11,13 @@ ResidualReduction = 1e-12
[Problem]
Name = obstacle_2p
[SpatialParams]
FineMaterial.Swr = 0.2
FineMaterial.Snr = 0.0
FineMaterial.BrooksCoreyPcEntry = 1e4
FineMaterial.BrooksCoreyLambda = 2.0
CoarseMaterial.Swr = 0.2
CoarseMaterial.Snr = 0.0
CoarseMaterial.BrooksCoreyPcEntry = 1e4
CoarseMaterial.BrooksCoreyLambda = 2.0
......@@ -27,10 +27,7 @@
#include <dumux/porousmediumflow/properties.hh>
#include <dumux/material/spatialparams/fv.hh>
#include <dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterial.hh>
#include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh>
#include <dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh>
#include <dumux/material/fluidmatrixinteractions/2p/brookscorey.hh>
namespace Dumux {
......@@ -55,17 +52,16 @@ class TwoPTwoCComparisonSpatialParams
enum {dimWorld=GridView::dimensionworld};
using EffectiveLaw = RegularizedBrooksCorey<Scalar>;
using PcKrSwCurve =FluidMatrix::BrooksCoreyDefault<Scalar>;
public:
//! Export permeability type
using PermeabilityType = Scalar;
//! Export the type used for the material law
using MaterialLaw = EffToAbsLaw<EffectiveLaw>;
using MaterialLawParams = typename MaterialLaw::Params;
TwoPTwoCComparisonSpatialParams(std::shared_ptr<const GridGeometry> gridGeometry) : ParentType(gridGeometry)
TwoPTwoCComparisonSpatialParams(std::shared_ptr<const GridGeometry> gridGeometry)
: ParentType(gridGeometry)
, finePcKrSwCurve_("SpatialParams.FineMaterial")
, coarsePcKrSwCurve_("SpatialParams.CoarseMaterial")
{
// intrinsic permeabilities
coarseK_ = 1e-12;
......@@ -73,18 +69,6 @@ public:
// the porosity
porosity_ = 0.3;
// residual saturations
fineMaterialParams_.setSwr(0.2);
fineMaterialParams_.setSnr(0.0);
coarseMaterialParams_.setSwr(0.2);
coarseMaterialParams_.setSnr(0.0);
// parameters for the Brooks-Corey law
fineMaterialParams_.setPe(1e4);
coarseMaterialParams_.setPe(1e4);
fineMaterialParams_.setLambda(2.0);
coarseMaterialParams_.setLambda(2.0);
}
template<class ElementSolution>
......@@ -115,12 +99,11 @@ public:
* \param globalPos The global position of the sub-control volume.
* \return The material parameters object
*/
const MaterialLawParams& materialLawParamsAtPos(const GlobalPosition& globalPos) const
auto fluidMatrixInteractionAtPos(const GlobalPosition& globalPos) const
{
if (isFineMaterial_(globalPos))
return fineMaterialParams_;
else
return coarseMaterialParams_;
return makeFluidMatrixInteraction(finePcKrSwCurve_);
return makeFluidMatrixInteraction(coarsePcKrSwCurve_);
}
/*!
......@@ -149,8 +132,9 @@ private:
Scalar coarseK_;
Scalar fineK_;
Scalar porosity_;
MaterialLawParams fineMaterialParams_;
MaterialLawParams coarseMaterialParams_;
const PcKrSwCurve finePcKrSwCurve_;
const PcKrSwCurve coarsePcKrSwCurve_;
static constexpr Scalar eps_ = 1e-6;
};
......
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