Commit f674b23e authored by Kilian Weishaupt's avatar Kilian Weishaupt Committed by Ned Coltman
Browse files

[efm][1p2c_2p_2p2c] Adapt to new material laws

parent 4575b4d9
[TimeLoop] [TimeLoop]
MaxTimeStepSize = 5.0e6 # maximal time step size [s] MaxTimeStepSize = 5.0e6 # maximal time step size [s]
TEnd = 5.0e7 # end time of the simulation [s] TEnd = 5.0e7 # end time of the simulation [s]
DtInitial = 0.0625 # initial time step for the simulation [s] DtInitial = 0.0625 # initial time step for the simulation [s]
EpisodeLength = 5.0e6 EpisodeLength = 5.0e6
[Grid] [Grid]
UpperRight = 4 2 # upper right corner coordinates (x,y) [m] UpperRight = 4 2 # upper right corner coordinates (x,y) [m]
Cells = 40 20 # grid resolution in (x,y) direction [-] Cells = 40 20 # grid resolution in (x,y) direction [-]
[SpatialParams] [SpatialParams.Fine]
FinePermeability = 3.1e-11 # intrinsic permeability of the fine porous medium [m^2] Permeability = 3.1e-11 # intrinsic permeability of the fine porous medium [m^2]
CoarsePermeability = 4.6e-9 # intrinsic permeability of the coarse porous medium [m^2] Porosity = 0.2 # porosity of the fine porous medium [-]
FinePorosity = 0.2 # porosity of the fine porous medium [-] BrooksCoreyLambda = 3.5 # pore size distribution parameter for the Brooks-Corey capillary pressure-saturation relationship in the fine soil [-]
CoarsePorosity = 0.6 # porosity of the coarse porous medium [-] BrooksCoreyPcEntry = 400 # entry pressure for the Brooks-Corey capillary pressure-saturation relationship in the fine soil [Pa]
FineBrooksCoreyLambda = 3.5 # pore size distribution parameter for the Brooks-Corey capillary pressure-saturation relationship in the fine soil [-] Swr = 0.05 # residual saturation of the wetting phase in the fine soil [-]
FineBrooksCoreyEntryPressure = 400 # entry pressure for the Brooks-Corey capillary pressure-saturation relationship in the fine soil [Pa] Snr = 0.3 # residual saturation of the nonwetting phase in the fine soil [-]
CoarseBrooksCoreyLambda = 2.0 # pore size distribution parameter for the Brooks-Corey capillary pressure-saturation relationship in the coarse soil [-]
CoarseBrooksCoreyEntryPressure = 200 # entry pressure for the Brooks-Corey capillary pressure-saturation relationship in the coarse soil [Pa] [SpatialParams.Coarse]
FineResidualSaturationWetting = 0.05 # residual saturation of the wetting phase in the fine soil [-] Permeability = 4.6e-9 # intrinsic permeability of the coarse porous medium [m^2]
FineResidualSaturationNonwetting = 0.3 # residual saturation of the nonwetting phase in the fine soil [-] Porosity = 0.6 # porosity of the coarse porous medium [-]
CoarseResidualSaturationWetting = 0.05 # residual saturation of the wetting phase in the coarse soil [-] BrooksCoreyLambda = 2.0 # pore size distribution parameter for the Brooks-Corey capillary pressure-saturation relationship in the coarse soil [-]
CoarseResidualSaturationNonwetting = 0.1 # residual saturation of the nonwetting phase in the coarse soil [-] BrooksCoreyPcEntry = 200 # entry pressure for the Brooks-Corey capillary pressure-saturation relationship in the coarse soil [Pa]
Swr = 0.05 # residual saturation of the wetting phase in the coarse soil [-]
Snr = 0.1 # residual saturation of the nonwetting phase in the coarse soil [-]
[Boundary] [Boundary]
LowerPressure = 2.0e5 # Dirichlet pressure value for the boundary condition at the lower boundary [Pa] LowerPressure = 2.0e5 # Dirichlet pressure value for the boundary condition at the lower boundary [Pa]
UpperPressure = 4.0e5 # Dirichlet pressure value for the boundary condition at the upper boundary [Pa] UpperPressure = 4.0e5 # Dirichlet pressure value for the boundary condition at the upper boundary [Pa]
[Problem] [Problem]
EnableGravity = false EnableGravity = false
......
...@@ -80,17 +80,16 @@ public: ...@@ -80,17 +80,16 @@ public:
Lens1p2cSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry) Lens1p2cSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
: ParentType(fvGridGeometry) : ParentType(fvGridGeometry)
{ {
lensLowerLeft_[0] = 0.0; lensLowerLeft_[0] = 0.0;
lensLowerLeft_[1] = 0.0; lensLowerLeft_[1] = 0.0;
lensUpperRight_[0]= 4.1; lensUpperRight_[0]= 4.1;
lensUpperRight_[1]= 1.0; lensUpperRight_[1]= 1.0;
lensPorosity_ = getParam<double>("SpatialParams.FinePorosity"); lensPorosity_ = getParam<double>("SpatialParams.Fine.Porosity");
outerPorosity_ = getParam<double>("SpatialParams.CoarsePorosity"); outerPorosity_ = getParam<double>("SpatialParams.Coarse.Porosity");
lensK_ = getParam<double>("SpatialParams.FinePermeability"); lensK_ = getParam<double>("SpatialParams.Fine.Permeability");
outerK_ = getParam<double>("SpatialParams.CoarsePermeability"); outerK_ = getParam<double>("SpatialParams.Coarse.Permeability");
} }
/*! /*!
......
...@@ -26,8 +26,7 @@ ...@@ -26,8 +26,7 @@
#ifndef DUMUX_LENS2P_SPATIALPARAMS_HH #ifndef DUMUX_LENS2P_SPATIALPARAMS_HH
#define DUMUX_LENS2P_SPATIALPARAMS_HH #define DUMUX_LENS2P_SPATIALPARAMS_HH
#include <dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh> #include <dumux/material/fluidmatrixinteractions/2p/brookscorey.hh>
#include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh>
#include <dumux/material/spatialparams/fv.hh> #include <dumux/material/spatialparams/fv.hh>
namespace Dumux { namespace Dumux {
...@@ -49,11 +48,10 @@ class Lens2pSpatialParams ...@@ -49,11 +48,10 @@ class Lens2pSpatialParams
using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThisType>; using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThisType>;
static constexpr int dimWorld = GridView::dimensionworld; static constexpr int dimWorld = GridView::dimensionworld;
using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
using EffectiveLaw = RegularizedBrooksCorey<Scalar>;
using PcKrSw = FluidMatrix::BrooksCoreyDefault<Scalar>;
public: public:
using MaterialLaw = EffToAbsLaw<EffectiveLaw>;
using MaterialLawParams = typename MaterialLaw::Params;
using PermeabilityType = Scalar; using PermeabilityType = Scalar;
/*! /*!
...@@ -61,27 +59,17 @@ public: ...@@ -61,27 +59,17 @@ public:
*/ */
Lens2pSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry) Lens2pSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
: ParentType(fvGridGeometry) : ParentType(fvGridGeometry)
, pcKrSwFine_("SpatialParams.Fine")
, pcKrSwCoarse_("SpatialParams.Coarse")
{ {
lensLowerLeft_ = {0.0, 0.0}; lensLowerLeft_ = {0.0, 0.0};
lensUpperRight_= {4.0, 1.0}; lensUpperRight_= {4.0, 1.0};
lensPorosity_ = getParam<Scalar> ("SpatialParams.FinePorosity"); lensPorosity_ = getParam<Scalar> ("SpatialParams.Fine.Porosity");
outerPorosity_ = getParam<Scalar>("SpatialParams.CoarsePorosity"); outerPorosity_ = getParam<Scalar>("SpatialParams.Coarse.Porosity");
lensK_ = getParam<Scalar>("SpatialParams.FinePermeability");
outerK_ = getParam<Scalar>("SpatialParams.CoarsePermeability");
// residual saturations
lensMaterialParams_.setSwr( getParam<Scalar>("SpatialParams.FineResidualSaturationWetting") );
lensMaterialParams_.setSnr( getParam<Scalar>("SpatialParams.FineResidualSaturationNonwetting") );
outerMaterialParams_.setSwr( getParam<Scalar>("SpatialParams.CoarseResidualSaturationWetting") );
outerMaterialParams_.setSnr( getParam<Scalar>("SpatialParams.CoarseResidualSaturationNonwetting") );
// parameters for the Brooks-Corey law lensK_ = getParam<Scalar>("SpatialParams.Fine.Permeability");
lensMaterialParams_.setPe( getParam<Scalar>("SpatialParams.FineBrooksCoreyEntryPressure") ); outerK_ = getParam<Scalar>("SpatialParams.Coarse.Permeability");
lensMaterialParams_.setLambda( getParam<Scalar>("SpatialParams.FineBrooksCoreyLambda") );
outerMaterialParams_.setPe( getParam<Scalar>("SpatialParams.CoarseBrooksCoreyEntryPressure") );
outerMaterialParams_.setLambda( getParam<Scalar>("SpatialParams.CoarseBrooksCoreyLambda") );
} }
/*! /*!
...@@ -121,20 +109,20 @@ public: ...@@ -121,20 +109,20 @@ public:
} }
/*! /*!
* \brief return the brooks-corey context depending on the position * \brief Returns the fluid-matrix interaction law
* *
* \param element The current element * \param element The current element
* \param scv The sub-control volume inside the element. * \param scv The sub-control volume inside the element.
* \param elemSol The solution at the dofs connected to the element. * \param elemSol The solution at the dofs connected to the element.
*/ */
template<class ElementSolution> template<class ElementSolution>
const MaterialLawParams& materialLawParams(const Element& element, auto fluidMatrixInteraction(const Element& element,
const SubControlVolume& scv, const SubControlVolume& scv,
const ElementSolution& elemSol) const const ElementSolution& elemSol) const
{ {
if (isInLens_(scv.dofPosition())) if (isInLens_(scv.dofPosition()))
return lensMaterialParams_; return makeFluidMatrixInteraction(pcKrSwFine_);
return outerMaterialParams_; return makeFluidMatrixInteraction(pcKrSwCoarse_);
} }
/*! /*!
...@@ -178,9 +166,9 @@ private: ...@@ -178,9 +166,9 @@ private:
Scalar outerK_; Scalar outerK_;
Scalar lensPorosity_; Scalar lensPorosity_;
Scalar outerPorosity_; Scalar outerPorosity_;
MaterialLawParams lensMaterialParams_; const PcKrSw pcKrSwFine_;
MaterialLawParams outerMaterialParams_; const PcKrSw pcKrSwCoarse_;
Scalar eps_ = 1e-6; const Scalar eps_{1e-6};
}; };
} // end namespace Dumux } // end namespace Dumux
......
...@@ -12,21 +12,22 @@ UpperRight = 5 4 # upper right corner coordinates (x, ...@@ -12,21 +12,22 @@ UpperRight = 5 4 # upper right corner coordinates (x,
Cells = 40 64 # grid resolution in (x,y) direction [-] Cells = 40 64 # grid resolution in (x,y) direction [-]
[SpatialParams] [SpatialParams]
FinePermeability = 3.1e-11 # intrinsic permeability of the fine porous medium [m^2]
CoarsePermeability = 3.1e-10 # intrinsic permeability of the coarse porous medium [m^2] Fine.Permeability = 3.1e-11 # intrinsic permeability of the fine porous medium [m^2]
FinePorosity = 0.1 # porosity of the fine porous medium [-] Coarse.Permeability = 3.1e-10 # intrinsic permeability of the coarse porous medium [m^2]
CoarsePorosity = 0.2 # porosity of the coarse porous medium [-] Fine.Porosity = 0.1 # porosity of the fine porous medium [-]
Coarse.Porosity = 0.2 # porosity of the coarse porous medium [-]
######## ########
Parameters only relevant for two-phase simulations: Parameters only relevant for two-phase simulations:
######## ########
FineBrooksCoreyLambda = 3.5 # pore size distribution parameter for the Brooks-Corey capillary pressure - saturation relationship in the fine soil [-] Fine.BrooksCoreyLambda = 3.5 # pore size distribution parameter for the Brooks-Corey capillary pressure-saturation relationship in the fine soil [-]
FineBrooksCoreyEntryPressure = 400 # entry pressure for the Brooks-Corey capillary pressure - saturation relationship in the fine soil [Pa] Fine.BrooksCoreyPcEntry = 400 # entry pressure for the Brooks-Corey capillary pressure-saturation relationship in the fine soil [Pa]
CoarseBrooksCoreyLambda = 2.0 # pore size distribution parameter for the Brooks-Corey capillary pressure - saturation relationship in the coarse soil [-] Fine.Swr = 0.05 # residual saturation of the wetting phase in the fine soil [-]
CoarseBrooksCoreyEntryPressure = 200 # entry pressure for the Brooks-Corey capillary pressure - saturation relationship in the coarse soil [Pa] Fine.Snr = 0.3 # residual saturation of the nonwetting phase in the fine soil [-]
FineResidualSaturationWetting = 0.05 # residual saturation of the wetting phase in the fine soil [-] Coarse.BrooksCoreyLambda = 2.0 # pore size distribution parameter for the Brooks-Corey capillary pressure-saturation relationship in the coarse soil [-]
FineResidualSaturationNonwetting = 0.3 # residual saturation of the nonwetting phase in the fine soil [-] Coarse.BrooksCoreyPcEntry = 200 # entry pressure for the Brooks-Corey capillary pressure-saturation relationship in the coarse soil [Pa]
CoarseResidualSaturationWetting = 0.05 # residual saturation of the wetting phase in the coarse soil [-] Coarse.Swr = 0.05 # residual saturation of the wetting phase in the coarse soil [-]
CoarseResidualSaturationNonwetting = 0.1 # residual saturation of the nonwetting phase in the coarse soil [-] Coarse.Snr = 0.1 # residual saturation of the nonwetting phase in the coarse soil [-]
######## ########
[Boundary] [Boundary]
......
...@@ -9,19 +9,21 @@ LowerLeft = 0 0 # lower left corner coordinates (x,y ...@@ -9,19 +9,21 @@ LowerLeft = 0 0 # lower left corner coordinates (x,y
UpperRight = 3 2 # upper right corner coordinates (x,y) [m] UpperRight = 3 2 # upper right corner coordinates (x,y) [m]
Cells = 75 50 # grid resolution in (x,y) direction [-] Cells = 75 50 # grid resolution in (x,y) direction [-]
[SpatialParams] [SpatialParams.Fine]
FinePermeability = 9e-12 # intrinsic permeability of the fine porous medium [m^2] Permeability = 9e-12 # intrinsic permeability of the fine porous medium [m^2]
CoarsePermeability = 4.6e-10 # intrinsic permeability of the coarse porous medium [m^2] Porosity = 0.38 # porosity of the fine porous medium [-]
FinePorosity = 0.38 # porosity of the fine porous medium [-] BrooksCoreyLambda = 3.5 # pore size distribution parameter for the Brooks-Corey capillary pressure - saturation relationship in the fine soil [-]
CoarsePorosity = 0.40 # porosity of the coarse porous medium [-] BrooksCoreyPcEntry = 500 # entry pressure for the Brooks-Corey capillary pressure - saturation relationship in the fine soil [Pa]
FineBrooksCoreyLambda = 3.5 # pore size distribution parameter for the Brooks-Corey capillary pressure - saturation relationship in the fine soil [-] Swr = 0.18 # residual saturation of the wetting phase in the fine soil [-]
FineBrooksCoreyEntryPressure = 500 # entry pressure for the Brooks-Corey capillary pressure - saturation relationship in the fine soil [Pa] Snr = 0.0 # residual saturation of the nonwetting phase in the fine soil [-]
CoarseBrooksCoreyLambda = 2.0 # pore size distribution parameter for the Brooks-Corey capillary pressure - saturation relationship in the coarse soil [-]
CoarseBrooksCoreyEntryPressure = 200 # entry pressure for the Brooks-Corey capillary pressure - saturation relationship in the coarse soil [Pa] [SpatialParams.Coarse]
FineResidualSaturationWetting = 0.18 # residual saturation of the wetting phase in the fine soil [-] Permeability = 4.6e-10 # intrinsic permeability of the coarse porous medium [m^2]
FineResidualSaturationNonwetting = 0.0 # residual saturation of the nonwetting phase in the fine soil [-] Porosity = 0.40 # porosity of the coarse porous medium [-]
CoarseResidualSaturationWetting = 0.05 # residual saturation of the wetting phase in the coarse soil [-] BrooksCoreyLambda = 2.0 # pore size distribution parameter for the Brooks-Corey capillary pressure - saturation relationship in the coarse soil [-]
CoarseResidualSaturationNonwetting = 0.0 # residual saturation of the nonwetting phase in the coarse soil [-] BrooksCoreyPcEntry = 200 # entry pressure for the Brooks-Corey capillary pressure - saturation relationship in the coarse soil [Pa]
Swr = 0.05 # residual saturation of the wetting phase in the coarse soil [-]
Snr = 0.0 # residual saturation of the nonwetting phase in the coarse soil [-]
[Boundary] [Boundary]
LowerPressure = 1.19612e5 # Dirichlet pressure value for the boundary condition at the lower boundary [Pa] LowerPressure = 1.19612e5 # Dirichlet pressure value for the boundary condition at the lower boundary [Pa]
......
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