Adapt to upstream addition of traits for hyst and eps.

This commit is contained in:
Atgeirr Flø Rasmussen committed 2025-10-02 15:58:25 +02:00
1 parent 00d6bf213c
commit ce81e1c4d9
9 files changed
+34 -8

No files matched your search

+3 -1
View File
@@ -131,7 +131,9 @@ private:
using Traits = Opm::ThreePhaseMaterialTraits<Scalar,
/*wettingPhaseIdx=*/FluidSystem::waterPhaseIdx,
/*nonWettingPhaseIdx=*/FluidSystem::oilPhaseIdx,
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx>;
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx,
/* hysteresis */ false,
/* endpointscaling */ false>;
// define the material law which is parameterized by effective saturation
using EffMaterialLaw = Opm::NullMaterial<Traits>;
+3 -1
View File
@@ -88,7 +88,9 @@ private:
Scalar,
/*wettingPhaseIdx=*/FluidSystem::waterPhaseIdx,
/*nonWettingPhaseIdx=*/FluidSystem::naplPhaseIdx,
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx>;
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx,
/* hysteresis */ false,
/* endpointscaling */ false>;
public:
using type = Opm::ThreePhaseParkerVanGenuchten<Traits>;
+3 -1
View File
@@ -86,7 +86,9 @@ private:
Scalar,
/*wettingPhaseIdx=*/FluidSystem::waterPhaseIdx,
/*nonWettingPhaseIdx=*/FluidSystem::naplPhaseIdx,
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx>;
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx,
/* hysteresis */ false,
/* endpointscaling */ false>;
public:
using type = Opm::ThreePhaseParkerVanGenuchten<Traits>;
+3 -1
View File
@@ -93,7 +93,9 @@ private:
ThreePhaseMaterialTraits<Scalar,
/*wettingPhaseIdx=*/FluidSystem::waterPhaseIdx,
/*nonWettingPhaseIdx=*/FluidSystem::oilPhaseIdx,
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx>;
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx,
/* hysteresis */ false,
/* endpointscaling */ false>;
public:
using type = Opm::LinearMaterial<Traits>;
@@ -77,6 +77,12 @@ struct EnableApiTracking { using type = UndefinedProperty; };
template<class TypeTag, class MyTypeTag>
struct EnableDebuggingChecks { using type = Properties::UndefinedProperty; };
template<class TypeTag, class MyTypeTag>
struct EnableHysteresis { using type = Properties::UndefinedProperty; };
template<class TypeTag, class MyTypeTag>
struct EnableEndpointScaling { using type = Properties::UndefinedProperty; };
// Avoid using ElementContext-based code if possible.
template<class TypeTag, class MyTypeTag>
struct AvoidElementContext { using type = Properties::UndefinedProperty; };
@@ -245,6 +251,14 @@ template<class TypeTag>
struct EnableDebuggingChecks<TypeTag, TTag::FlowBaseProblem>
{ static constexpr bool value = true; };
template<class TypeTag>
struct EnableHysteresis<TypeTag, TTag::FlowBaseProblem>
{ static constexpr bool value = true; };
template<class TypeTag>
struct EnableEndpointScaling<TypeTag, TTag::FlowBaseProblem>
{ static constexpr bool value = true; };
// Most modules are implemented only in terms of element contexts,
// so this must default to false.
template<class TypeTag>
@@ -82,7 +82,9 @@ private:
using Traits = ThreePhaseMaterialTraits<Scalar,
/*wettingPhaseIdx=*/FluidSystem::waterPhaseIdx,
/*nonWettingPhaseIdx=*/FluidSystem::oilPhaseIdx,
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx>;
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx,
getPropValue<TypeTag, Properties::EnableHysteresis>(),
getPropValue<TypeTag, Properties::EnableEndpointScaling>()>;
public:
using EclMaterialLawManager = ::Opm::EclMaterialLaw::Manager<Traits>;
@@ -72,7 +72,9 @@ private:
using Traits = ThreePhaseMaterialTraits<Scalar,
/*wettingPhaseIdx=*/FluidSystem::waterPhaseIdx,
/*nonWettingPhaseIdx=*/FluidSystem::oilPhaseIdx,
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx>;
/*gasPhaseIdx=*/FluidSystem::gasPhaseIdx,
/* hysteresis */ true,
/* endpointscaling */ true>;
public:
using EclMaterialLawManager = ::Opm::EclMaterialLaw::Manager<Traits>;
@@ -28,7 +28,7 @@ namespace Opm {
namespace EQUIL {
template<class Scalar>
using MatLaw = EclMaterialLaw::Manager<ThreePhaseMaterialTraits<Scalar,0,1,2>>;
using MatLaw = EclMaterialLaw::Manager<ThreePhaseMaterialTraits<Scalar,0,1,2,true,true>>;
template<class Scalar> using FS = BlackOilFluidSystem<Scalar>;
#define INSTANTIATE_TYPE(T) \
+1 -1
View File
@@ -35,7 +35,7 @@
namespace Opm {
template<class Scalar>
using MatLaw = EclMaterialLaw::Manager<ThreePhaseMaterialTraits<Scalar,0,1,2>>;
using MatLaw = EclMaterialLaw::Manager<ThreePhaseMaterialTraits<Scalar,0,1,2,true,true>>;
namespace EQUIL {
namespace DeckDependent {