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 ...@@ -11,3 +11,13 @@ ResidualReduction = 1e-12
[Problem] [Problem]
Name = obstacle_2p 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 @@ ...@@ -27,10 +27,7 @@
#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/2p/regularizedlinearmaterial.hh> #include <dumux/material/fluidmatrixinteractions/2p/brookscorey.hh>
#include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh>
#include <dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh>
namespace Dumux { namespace Dumux {
...@@ -55,17 +52,16 @@ class TwoPTwoCComparisonSpatialParams ...@@ -55,17 +52,16 @@ class TwoPTwoCComparisonSpatialParams
enum {dimWorld=GridView::dimensionworld}; enum {dimWorld=GridView::dimensionworld};
using EffectiveLaw = RegularizedBrooksCorey<Scalar>; using PcKrSwCurve =FluidMatrix::BrooksCoreyDefault<Scalar>;
public: public:
//! Export permeability type //! Export permeability type
using PermeabilityType = Scalar; 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 // intrinsic permeabilities
coarseK_ = 1e-12; coarseK_ = 1e-12;
...@@ -73,18 +69,6 @@ public: ...@@ -73,18 +69,6 @@ public:
// the porosity // the porosity
porosity_ = 0.3; 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> template<class ElementSolution>
...@@ -115,12 +99,11 @@ public: ...@@ -115,12 +99,11 @@ public:
* \param globalPos The global position of the sub-control volume. * \param globalPos The global position of the sub-control volume.
* \return The material parameters object * \return The material parameters object
*/ */
const MaterialLawParams& materialLawParamsAtPos(const GlobalPosition& globalPos) const auto fluidMatrixInteractionAtPos(const GlobalPosition& globalPos) const
{ {
if (isFineMaterial_(globalPos)) if (isFineMaterial_(globalPos))
return fineMaterialParams_; return makeFluidMatrixInteraction(finePcKrSwCurve_);
else return makeFluidMatrixInteraction(coarsePcKrSwCurve_);
return coarseMaterialParams_;
} }
/*! /*!
...@@ -149,8 +132,9 @@ private: ...@@ -149,8 +132,9 @@ private:
Scalar coarseK_; Scalar coarseK_;
Scalar fineK_; Scalar fineK_;
Scalar porosity_; Scalar porosity_;
MaterialLawParams fineMaterialParams_;
MaterialLawParams coarseMaterialParams_; const PcKrSwCurve finePcKrSwCurve_;
const PcKrSwCurve coarsePcKrSwCurve_;
static constexpr Scalar eps_ = 1e-6; 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