From 12f46df5d92850a543aff695777fd9e08af7fdcc Mon Sep 17 00:00:00 2001
From: Kilian Weishaupt <kilian.weishaupt@iws.uni-stuttgart.de>
Date: Thu, 5 Apr 2018 12:15:50 +0200
Subject: [PATCH] [fluidsystems][2pimmiscible] Rename template parameters

* add static_assert to make sure one Fluidsystems with one component are used
---
 dumux/material/fluidsystems/2pimmiscible.hh | 75 +++++++++++----------
 1 file changed, 40 insertions(+), 35 deletions(-)

diff --git a/dumux/material/fluidsystems/2pimmiscible.hh b/dumux/material/fluidsystems/2pimmiscible.hh
index 410f9d3b44..9d50675849 100644
--- a/dumux/material/fluidsystems/2pimmiscible.hh
+++ b/dumux/material/fluidsystems/2pimmiscible.hh
@@ -45,19 +45,24 @@ namespace FluidSystems {
  *
  * The fluid phases are completely specified by means of their
  * constituting components.
- * The wetting and the non-wetting phase can be defined individually
- * via FluidSystem::OnePLiquid<Component> and
- * FluidSystem::OnePGas<Component>. These phases consist of one pure
+ * The wetting and the non-wetting fluids can be defined individually
+ * via FluidSystem::OnePLiquid<Scalar, Component> and
+ * FluidSystem::OnePGas<Scalar, Component>. These fluids consist of one pure
  * component.
  * \tparam Scalar the scalar type
- * \tparam WettingPhase the wetting phase fluid system (use FluidSystem::OnePLiquid<Component> / FluidSystem::OnePGas<Component>)
- * \tparam NonwettingPhase the wetting phase fluid system (use FluidSystem::OnePLiquid<Component> / FluidSystem::OnePGas<Component>)
+ * \tparam WettingFluid the wetting phase fluid system (use FluidSystem::OnePLiquid<Scalar, Component> / FluidSystem::OnePGas<Scalar, Component>)
+ * \tparam NonwettingFluid the wetting phase fluid system (use FluidSystem::OnePLiquid<Scalar, Component> / FluidSystem::OnePGas<Scalar, Component>)
  */
-template <class Scalar, class WettingPhase, class NonwettingPhase>
+template <class Scalar, class WettingFluid, class NonwettingFluid>
 class TwoPImmiscible
-: public BaseFluidSystem<Scalar, TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase> >
+: public BaseFluidSystem<Scalar, TwoPImmiscible<Scalar, WettingFluid, NonwettingFluid> >
 {
-    using ThisType = TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase>;
+    static_assert((WettingFluid::numPhases == 1), "WettingFluid has more than one phase");
+    static_assert((NonwettingFluid::numPhases == 1), "NonwettingFluid has more than one phase");
+    static_assert((WettingFluid::numComponents == 1), "WettingFluid has more than one component");
+    static_assert((NonwettingFluid::numComponents == 1), "NonwettingFluid has more than one component");
+
+    using ThisType = TwoPImmiscible<Scalar, WettingFluid, NonwettingFluid>;
     using Base = BaseFluidSystem<Scalar, ThisType>;
 public:
     /****************************************
@@ -96,8 +101,8 @@ public:
         assert(0 <= phaseIdx && phaseIdx < numPhases);
 
         if (phaseIdx == wPhaseIdx)
-            return WettingPhase::isLiquid();
-        return NonwettingPhase::isLiquid();
+            return WettingFluid::isLiquid();
+        return NonwettingFluid::isLiquid();
     }
 
     /*!
@@ -136,8 +141,8 @@ public:
 
         // let the fluids decide
         if (phaseIdx == wPhaseIdx)
-            return WettingPhase::isCompressible();
-        return NonwettingPhase::isCompressible();
+            return WettingFluid::isCompressible();
+        return NonwettingFluid::isCompressible();
     }
 
     /*!
@@ -152,8 +157,8 @@ public:
 
         // let the fluids decide
         if (phaseIdx == wPhaseIdx)
-            return WettingPhase::isIdealGas();
-        return NonwettingPhase::isIdealGas();
+            return WettingFluid::isIdealGas();
+        return NonwettingFluid::isIdealGas();
     }
 
     /****************************************
@@ -178,8 +183,8 @@ public:
         assert(0 <= compIdx && compIdx < numComponents);
 
         if (compIdx == wCompIdx)
-            return WettingPhase::name();
-        return NonwettingPhase::name();
+            return WettingFluid::name();
+        return NonwettingFluid::name();
     }
 
     /*!
@@ -191,8 +196,8 @@ public:
         assert(0 <= compIdx && compIdx < numComponents);
 
         if (compIdx == wCompIdx)
-            return WettingPhase::molarMass();
-        return NonwettingPhase::molarMass();
+            return WettingFluid::molarMass();
+        return NonwettingFluid::molarMass();
     }
 
     /*!
@@ -204,8 +209,8 @@ public:
         assert(0 <= compIdx && compIdx < numComponents);
 
         if (compIdx == wCompIdx)
-            return WettingPhase::criticalTemperature();
-        return NonwettingPhase::criticalTemperature();
+            return WettingFluid::criticalTemperature();
+        return NonwettingFluid::criticalTemperature();
     }
 
     /*!
@@ -217,8 +222,8 @@ public:
         assert(0 <= compIdx && compIdx < numComponents);
 
         if (compIdx == wCompIdx)
-            return WettingPhase::criticalPressure();
-        return NonwettingPhase::criticalPressure();
+            return WettingFluid::criticalPressure();
+        return NonwettingFluid::criticalPressure();
     }
 
     /*!
@@ -230,8 +235,8 @@ public:
         assert(0 <= compIdx && compIdx < numComponents);
 
         if (compIdx == wCompIdx)
-            return WettingPhase::acentricFactor();
-        return NonwettingPhase::acentricFactor();
+            return WettingFluid::acentricFactor();
+        return NonwettingFluid::acentricFactor();
     }
 
     /****************************************
@@ -245,7 +250,7 @@ public:
     {
         // two gaseous phases at once do not make sense physically!
         // (But two liquids are fine)
-        assert(WettingPhase::isLiquid() || NonwettingPhase::isLiquid());
+        assert(WettingFluid::isLiquid() || NonwettingFluid::isLiquid());
     }
 
     using Base::density;
@@ -262,8 +267,8 @@ public:
         Scalar temperature = fluidState.temperature(phaseIdx);
         Scalar pressure = fluidState.pressure(phaseIdx);
         if (phaseIdx == wPhaseIdx)
-            return WettingPhase::density(temperature, pressure);
-        return NonwettingPhase::density(temperature, pressure);
+            return WettingFluid::density(temperature, pressure);
+        return NonwettingFluid::density(temperature, pressure);
     }
 
     using Base::viscosity;
@@ -281,8 +286,8 @@ public:
         Scalar temperature = fluidState.temperature(phaseIdx);
         Scalar pressure = fluidState.pressure(phaseIdx);
         if (phaseIdx == wPhaseIdx)
-            return WettingPhase::viscosity(temperature, pressure);
-        return NonwettingPhase::viscosity(temperature, pressure);
+            return WettingFluid::viscosity(temperature, pressure);
+        return NonwettingFluid::viscosity(temperature, pressure);
     }
 
     using Base::fugacityCoefficient;
@@ -389,8 +394,8 @@ public:
         Scalar temperature = fluidState.temperature(phaseIdx);
         Scalar pressure = fluidState.pressure(phaseIdx);
         if (phaseIdx == wPhaseIdx)
-            return WettingPhase::enthalpy(temperature, pressure);
-        return NonwettingPhase::enthalpy(temperature, pressure);
+            return WettingFluid::enthalpy(temperature, pressure);
+        return NonwettingFluid::enthalpy(temperature, pressure);
     }
 
     using Base::thermalConductivity;
@@ -408,8 +413,8 @@ public:
         Scalar temperature = fluidState.temperature(phaseIdx);
         Scalar pressure = fluidState.pressure(phaseIdx);
         if (phaseIdx == wPhaseIdx)
-            return WettingPhase::thermalConductivity(temperature, pressure);
-        return NonwettingPhase::thermalConductivity(temperature, pressure);
+            return WettingFluid::thermalConductivity(temperature, pressure);
+        return NonwettingFluid::thermalConductivity(temperature, pressure);
     }
 
     using Base::heatCapacity;
@@ -433,8 +438,8 @@ public:
         Scalar temperature = fluidState.temperature(phaseIdx);
         Scalar pressure = fluidState.pressure(phaseIdx);
         if (phaseIdx == wPhaseIdx)
-            return WettingPhase::heatCapacity(temperature, pressure);
-        return NonwettingPhase::heatCapacity(temperature, pressure);
+            return WettingFluid::heatCapacity(temperature, pressure);
+        return NonwettingFluid::heatCapacity(temperature, pressure);
     }
 };
 
-- 
GitLab