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