diff --git a/dumux/material/fluidstates/2p2c.hh b/dumux/material/fluidstates/2p2c.hh index c628adde8cfa901829cdb57ee9c644c8eb8a55c8..1642a873a1cd21fb9f8614cae86376bfc8ff8230 100644 --- a/dumux/material/fluidstates/2p2c.hh +++ b/dumux/material/fluidstates/2p2c.hh @@ -32,7 +32,7 @@ namespace Dumux { * sequential 2p2c model. * This boils down to so-called "flash calculation", in this case isothermal and isobaric. */ -template <class Scalar, class FluidSystem> +template <class ScalarType, class FluidSystem> class TwoPTwoCFluidState { public: @@ -47,6 +47,8 @@ public: }; public: + //! export the scalar type + using Scalar = ScalarType; // comply with new style 2p2c models int wettingPhase() const diff --git a/dumux/material/fluidstates/compositional.hh b/dumux/material/fluidstates/compositional.hh index 35f58e3dc21bd5b90636a4f127a0857b1a650e67..6a92bc71d467a4078450133acac1f6a88c4000d8 100644 --- a/dumux/material/fluidstates/compositional.hh +++ b/dumux/material/fluidstates/compositional.hh @@ -40,13 +40,16 @@ namespace Dumux { * multi-phase, multi-component fluid system assuming * thermodynamic equilibrium. */ -template <class Scalar, class FluidSystem> +template <class ScalarType, class FluidSystem> class CompositionalFluidState { public: enum { numPhases = FluidSystem::numPhases }; enum { numComponents = FluidSystem::numComponents }; + //! export the scalar type + using Scalar = ScalarType; + //! default constructor CompositionalFluidState() = default; diff --git a/dumux/material/fluidstates/immiscible.hh b/dumux/material/fluidstates/immiscible.hh index ec7b05b630a18e62f62fd53f30c2c85c3346795f..03f7d698c6727c064af484960063c8f1a4e5842f 100644 --- a/dumux/material/fluidstates/immiscible.hh +++ b/dumux/material/fluidstates/immiscible.hh @@ -37,7 +37,7 @@ namespace Dumux { * multi-phase fluid system assuming immiscibility and * thermodynamic equilibrium. */ -template <class Scalar, class FluidSystem> +template <class ScalarType, class FluidSystem> class ImmiscibleFluidState { public: @@ -47,6 +47,9 @@ public: "The number of phases must be equal to the number of " "components if immiscibility is assumed!"); + //! export the scalar type + using Scalar = ScalarType; + //! default constructor ImmiscibleFluidState() = default; diff --git a/dumux/material/fluidstates/isothermalimmiscible.hh b/dumux/material/fluidstates/isothermalimmiscible.hh index 6885d05baf9abd25f0d744165350aefa37b285bf..41d89e189b302439421d96d0a38f2099017171a6 100644 --- a/dumux/material/fluidstates/isothermalimmiscible.hh +++ b/dumux/material/fluidstates/isothermalimmiscible.hh @@ -37,11 +37,15 @@ namespace Dumux { * multi-phase fluid system assuming immiscibility and * thermodynamic equilibrium. */ -template <class Scalar, class FluidSystem> +template <class ScalarType, class FluidSystem> class IsothermalImmiscibleFluidState { public: static constexpr int numPhases = FluidSystem::numPhases; + static constexpr int numComponents = FluidSystem::numComponents; + + //! export the scalar type + using Scalar = ScalarType; //! default constructor IsothermalImmiscibleFluidState() = default; diff --git a/dumux/material/fluidstates/nonequilibrium.hh b/dumux/material/fluidstates/nonequilibrium.hh index 0c1a34ad5f25ef0b79157cfef58d3adecfa68daa..879dd662322cfce06606749e42ca5e1c26324ca6 100644 --- a/dumux/material/fluidstates/nonequilibrium.hh +++ b/dumux/material/fluidstates/nonequilibrium.hh @@ -38,13 +38,16 @@ namespace Dumux { * multi-phase, multi-component fluid system without using * any assumptions. */ -template <class Scalar, class FluidSystem> +template <class ScalarType, class FluidSystem> class NonEquilibriumFluidState { public: static constexpr int numPhases = FluidSystem::numPhases; static constexpr int numComponents = FluidSystem::numComponents; + //! export the scalar type + using Scalar = ScalarType; + /***************************************************** * Generic access to fluid properties (No assumptions * on thermodynamic equilibrium required) diff --git a/dumux/material/fluidstates/nonequilibriumenergy.hh b/dumux/material/fluidstates/nonequilibriumenergy.hh index c9584df750eb5ade3948f5eaf9baca0964b720ab..4c641647b6b0190255a9ea310bd5c36527874722 100644 --- a/dumux/material/fluidstates/nonequilibriumenergy.hh +++ b/dumux/material/fluidstates/nonequilibriumenergy.hh @@ -40,15 +40,18 @@ namespace Dumux { * - local thermal non-equilibrium * - local chemical equilibrium */ -template <class Scalar, class FluidSystem> +template <class ScalarType, class FluidSystem> class NonEquilibriumEnergyFluidState -: public NonEquilibriumFluidState<Scalar, FluidSystem> +: public NonEquilibriumFluidState<ScalarType, FluidSystem> { - using ParentType = NonEquilibriumFluidState<Scalar, FluidSystem>; + using ParentType = NonEquilibriumFluidState<ScalarType, FluidSystem>; public: enum { numPhases = FluidSystem::numPhases }; enum { numComponents = FluidSystem::numComponents }; + //! export the scalar type + using Scalar = ScalarType; + using ParentType::ParentType; /***************************************************** diff --git a/dumux/material/fluidstates/nonequilibriummass.hh b/dumux/material/fluidstates/nonequilibriummass.hh index c450d2fc3b9931dcabe38338ea91c378aaab73f3..db4012bfaaf1737dac5e724962bb2fcac6a84908 100644 --- a/dumux/material/fluidstates/nonequilibriummass.hh +++ b/dumux/material/fluidstates/nonequilibriummass.hh @@ -40,15 +40,18 @@ namespace Dumux { * - local thermal equilibrium * - local chemical non-equilibrium */ -template <class Scalar, class FluidSystem> +template <class ScalarType, class FluidSystem> class NonEquilibriumMassFluidState -: public NonEquilibriumFluidState<Scalar, FluidSystem> +: public NonEquilibriumFluidState<ScalarType, FluidSystem> { - using ParentType = NonEquilibriumFluidState<Scalar, FluidSystem>; + using ParentType = NonEquilibriumFluidState<ScalarType, FluidSystem>; public: enum { numPhases = FluidSystem::numPhases }; enum { numComponents = FluidSystem::numComponents }; + //! export the scalar type + using Scalar = ScalarType; + using ParentType::ParentType; /***************************************************** diff --git a/dumux/material/fluidstates/pressureoverlay.hh b/dumux/material/fluidstates/pressureoverlay.hh index 5ee250dedaa6ed3f4f6cbaa9086d748a0405b5dc..502a09ee6d4e076fc346938526b62c8ecd4937d8 100644 --- a/dumux/material/fluidstates/pressureoverlay.hh +++ b/dumux/material/fluidstates/pressureoverlay.hh @@ -34,13 +34,16 @@ namespace Dumux { * pressures and takes all other quantities from an other * fluid state. */ -template <class Scalar, class FluidState> +template <class FluidState> class PressureOverlayFluidState { public: enum { numPhases = FluidState::numPhases }; enum { numComponents = FluidState::numComponents }; + //! export the scalar type + using Scalar = typename FluidState::Scalar; + /*! * \brief Constructor * diff --git a/dumux/material/fluidstates/pseudo1p2c.hh b/dumux/material/fluidstates/pseudo1p2c.hh index 81213dd393af0a4a6e10fcbaf3daf872f94f086d..cd33f6fd46863c7139b3b43a98068bbee2465015 100644 --- a/dumux/material/fluidstates/pseudo1p2c.hh +++ b/dumux/material/fluidstates/pseudo1p2c.hh @@ -39,7 +39,7 @@ namespace Dumux { * The "flash" calculation routines are in the sequential flash constrain solver, see * CompositionalFlash . */ -template <class Scalar, class FluidSystem> +template <class ScalarType, class FluidSystem> class PseudoOnePTwoCFluidState { @@ -48,6 +48,10 @@ public: numPhases = FluidSystem::numPhases, numComponents = FluidSystem::numComponents }; + + //! export the scalar type + using Scalar = ScalarType; + enum { phase0Idx = FluidSystem::phase0Idx, phase1Idx = FluidSystem::phase1Idx, @@ -56,7 +60,6 @@ public: comp1Idx = FluidSystem::comp1Idx }; -public: /*! \name Acess functions */ //@{ /*! diff --git a/dumux/material/fluidstates/saturationoverlay.hh b/dumux/material/fluidstates/saturationoverlay.hh index c3d2f81a9dda90d38debd5ec5be831a4ca44a2ac..f930a77cafaf88c0719b81ae16871b27ab12330b 100644 --- a/dumux/material/fluidstates/saturationoverlay.hh +++ b/dumux/material/fluidstates/saturationoverlay.hh @@ -34,13 +34,16 @@ namespace Dumux { * saturations and takes all other quantities from an other * fluid state. */ -template <class Scalar, class FluidState> +template <class FluidState> class SaturationOverlayFluidState { public: enum { numPhases = FluidState::numPhases }; enum { numComponents = FluidState::numComponents }; + //! export the scalar type + using Scalar = typename FluidState::Scalar; + /*! * \brief Constructor * diff --git a/dumux/material/fluidstates/temperatureoverlay.hh b/dumux/material/fluidstates/temperatureoverlay.hh index 65d52b8724a99d4ab3bd254864f7e72057e0c3d1..28e37dbe7aba54a252e6cf41734144c848a6e145 100644 --- a/dumux/material/fluidstates/temperatureoverlay.hh +++ b/dumux/material/fluidstates/temperatureoverlay.hh @@ -34,13 +34,16 @@ namespace Dumux { * temperatures and takes all other quantities from an other * fluid state. */ -template <class Scalar, class FluidState> +template <class FluidState> class TemperatureOverlayFluidState { public: enum { numPhases = FluidState::numPhases }; enum { numComponents = FluidState::numComponents }; + //! export the scalar type + using Scalar = typename FluidState::Scalar; + /*! * \brief Constructor * diff --git a/test/material/fluidsystems/checkfluidsystem.hh b/test/material/fluidsystems/checkfluidsystem.hh index dff2e241e41f8c1050c20b479608190050254215..7f8bb33017709a33b278681af3dce6b0279593f3 100644 --- a/test/material/fluidsystems/checkfluidsystem.hh +++ b/test/material/fluidsystems/checkfluidsystem.hh @@ -64,18 +64,15 @@ namespace Dumux /*! \brief This fluid state ensures that only the allowed quantities * are accessed */ -template<class Scalar, class FluidSystem, class BaseFluidState = CompositionalFluidState<Scalar, FluidSystem> > +template<class ScalarType, class FluidSystem, class BaseFluidState = CompositionalFluidState<ScalarType, FluidSystem> > class HairSplittingFluidState: protected BaseFluidState { public: - enum - { - numPhases = FluidSystem::numPhases - }; - enum - { - numComponents = FluidSystem::numComponents - }; + //! export the type used for scalars + using typename BaseFluidState::Scalar; + + static constexpr int numPhases = FluidSystem::numPhases; + static constexpr int numComponents = FluidSystem::numComponents; HairSplittingFluidState() { diff --git a/test/material/fluidsystems/test_fluidsystems.cc b/test/material/fluidsystems/test_fluidsystems.cc index 469a983cc3712fae9a35b1a5128843525936dad3..8d53730d4d392673729205a23972074a82927700 100644 --- a/test/material/fluidsystems/test_fluidsystems.cc +++ b/test/material/fluidsystems/test_fluidsystems.cc @@ -104,15 +104,15 @@ int main() success += checkFluidState<Scalar>(nonEquilibriumMassFluidState); // PressureOverlayFluidState - PressureOverlayFluidState<Scalar, BaseFluidState> pressureOverlayFluidState(baseFs); + PressureOverlayFluidState<BaseFluidState> pressureOverlayFluidState(baseFs); success += checkFluidState<Scalar>(pressureOverlayFluidState); // SaturationOverlayFluidState - SaturationOverlayFluidState<Scalar, BaseFluidState> saturationOverlayFluidState(baseFs); + SaturationOverlayFluidState<BaseFluidState> saturationOverlayFluidState(baseFs); success += checkFluidState<Scalar>(saturationOverlayFluidState); // TemperatureOverlayFluidState - TemperatureOverlayFluidState<Scalar, BaseFluidState> temperatureOverlayFluidState(baseFs); + TemperatureOverlayFluidState<BaseFluidState> temperatureOverlayFluidState(baseFs); success += checkFluidState<Scalar>(temperatureOverlayFluidState); }