diff --git a/test/porousmediumflow/richards/implicit/nonisothermal/conduction/params.input b/test/porousmediumflow/richards/implicit/nonisothermal/conduction/params.input index 0304a8a78002529433cb5d57f3fd27029fe03a02..03be824f3d4e5aca0fac79c1d6da022cd2431b91 100644 --- a/test/porousmediumflow/richards/implicit/nonisothermal/conduction/params.input +++ b/test/porousmediumflow/richards/implicit/nonisothermal/conduction/params.input @@ -19,3 +19,9 @@ EnableChop = false # chop for better convergence SolidDensity = 2700 SolidThermalConductivity = 2.8 SolidHeatCapacity = 790 + +[SpatialParams] +Swr = 0.05 +Snr = 0.0 +VanGenuchtenAlpha = 0.0037 +VanGenuchtenN = 4.7 diff --git a/test/porousmediumflow/richards/implicit/nonisothermal/convection/params.input b/test/porousmediumflow/richards/implicit/nonisothermal/convection/params.input index a286867c03461c87f34f1215ef041c7520bd563f..e0841d4f4ada4b42f0d7d4096884ec86ba325ffa 100644 --- a/test/porousmediumflow/richards/implicit/nonisothermal/convection/params.input +++ b/test/porousmediumflow/richards/implicit/nonisothermal/convection/params.input @@ -20,3 +20,9 @@ EnableChop = false # chop for better convergence SolidDensity = 2700 SolidThermalConductivity = 2.8 SolidHeatCapacity = 790 + +[SpatialParams] +Swr = 0.05 +Snr = 0.0 +VanGenuchtenAlpha = 0.0037 +VanGenuchtenN = 4.7 diff --git a/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/params.input b/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/params.input index 1f6701d4efafbab233c7a9037cd8dbe981e16e0e..49e1c6baa09b0faff04dae607a3cd913e920cdaf 100644 --- a/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/params.input +++ b/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/params.input @@ -20,3 +20,9 @@ EnableChop = false # chop for better convergence SolidDensity = 2700 SolidThermalConductivity = 2.8 SolidHeatCapacity = 790 + +[SpatialParams] +Swr = 0.05 +Snr = 0.0 +VanGenuchtenAlpha = 0.0037 +VanGenuchtenN = 4.7 diff --git a/test/porousmediumflow/richards/implicit/nonisothermal/spatialparams.hh b/test/porousmediumflow/richards/implicit/nonisothermal/spatialparams.hh index 6b6da0eb446682db076772b5257a92724424deb7..7afce1ac6a23a19ff2da436a3195a1fd99f842b5 100644 --- a/test/porousmediumflow/richards/implicit/nonisothermal/spatialparams.hh +++ b/test/porousmediumflow/richards/implicit/nonisothermal/spatialparams.hh @@ -26,9 +26,7 @@ #define DUMUX_RICHARDSNI_SPATIAL_PARAMS_HH #include <dumux/porousmediumflow/richards/model.hh> -#include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh> -#include <dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh> -#include <dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh> +#include <dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh> #include <dumux/material/spatialparams/fv.hh> namespace Dumux { @@ -47,33 +45,20 @@ class RichardsNISpatialParams enum { dimWorld=GridView::dimensionworld }; - using EffectiveLaw = RegularizedVanGenuchten<Scalar>; - using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using PcKrSwCurve = FluidMatrix::VanGenuchtenDefault<Scalar>; + public: // export permeability type using PermeabilityType = Scalar; - using MaterialLaw = EffToAbsLaw<EffectiveLaw>; - using MaterialLawParams = typename MaterialLaw::Params; - RichardsNISpatialParams(std::shared_ptr<const GridGeometry> gridGeometry) - : ParentType(gridGeometry) + : ParentType(gridGeometry) + , pcKrSwCurve_("SpatialParams") { permeability_ = 1e-10; porosity_ = 0.4; - - - // residual saturations - materialParams_.setSwr(0.05); - materialParams_.setSnr(0.0); - - // parameters for the Van Genuchten law - // alpha and n - - materialParams_.setVgAlpha(0.0037); - materialParams_.setVgn(4.7); } /*! @@ -96,20 +81,18 @@ public: return porosity_; } - /*! - * \brief Returns the parameter object for the Brooks-Corey material law - * which depends on the position - * - * \param globalPos The global position where we evaluate + /*! + * \brief Returns the parameters for the material law at a given location + * \param globalPos The global coordinates for the given location */ - const MaterialLawParams& materialLawParamsAtPos(const GlobalPosition &globalPos) const + auto fluidMatrixInteractionAtPos(const GlobalPosition& globalPos) const { - return materialParams_; + return makeFluidMatrixInteraction(pcKrSwCurve_); } private: - MaterialLawParams materialParams_; + const PcKrSwCurve pcKrSwCurve_; Scalar permeability_; Scalar porosity_; };