diff --git a/dumux/implicit/1p/1pproperties.hh b/dumux/implicit/1p/1pproperties.hh index 6d929c5bac9f61b25b9019a7a7318d1b745788b1..a88cdd4bbe4179caf383d98d27fddada0eaa096a 100644 --- a/dumux/implicit/1p/1pproperties.hh +++ b/dumux/implicit/1p/1pproperties.hh @@ -62,6 +62,7 @@ NEW_PROP_TAG(Indices); //!< Enumerations for the model NEW_PROP_TAG(SpatialParams); //!< The type of the spatial parameters object NEW_PROP_TAG(FluidSystem); //!< The type of the fluid system to use NEW_PROP_TAG(Fluid); //!< The fluid used for the default fluid system +NEW_PROP_TAG(FluidState); //!< The type of the fluid state to use NEW_PROP_TAG(ProblemEnableGravity); //!< Returns whether gravity is considered in the problem NEW_PROP_TAG(ImplicitMassUpwindWeight); //!< Returns weight of the upwind cell when calculating fluxes NEW_PROP_TAG(ImplicitMobilityUpwindWeight); //!< Weight for the upwind mobility in the velocity calculation diff --git a/dumux/implicit/1p/1ppropertydefaults.hh b/dumux/implicit/1p/1ppropertydefaults.hh index 856a4d06331d2493fc86ff61d97ea5cb72c81ad0..fb927d1de57289fd28971250731a22c7faf9feba 100644 --- a/dumux/implicit/1p/1ppropertydefaults.hh +++ b/dumux/implicit/1p/1ppropertydefaults.hh @@ -91,6 +91,20 @@ public: typedef Dumux::LiquidPhase<Scalar, Dumux::NullComponent<Scalar> > type; }; +/*! + * \brief The fluid state which is used by the volume variables to + * store the thermodynamic state. This should be chosen + * appropriately for the model ((non-)isothermal, equilibrium, ...). + * This can be done in the problem. + */ +SET_PROP(OneP, FluidState){ + private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + public: + typedef Dumux::ImmiscibleFluidState<Scalar, FluidSystem> type; +}; + // disable velocity output by default SET_BOOL_PROP(OneP, VtkAddVelocity, false); diff --git a/dumux/implicit/1p/1pvolumevariables.hh b/dumux/implicit/1p/1pvolumevariables.hh index a7a10cccb66f02c662ae7ae9b227a12174c6c75a..e1d3e671a4ee057979dc59090e32d2cc5ca1950c 100644 --- a/dumux/implicit/1p/1pvolumevariables.hh +++ b/dumux/implicit/1p/1pvolumevariables.hh @@ -55,8 +55,8 @@ class OnePVolumeVariables : public ImplicitVolumeVariables<TypeTag> typedef typename GridView::template Codim<0>::Entity Element; public: - //! Type of the fluid state - typedef Dumux::ImmiscibleFluidState<Scalar, FluidSystem> FluidState; + + typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState; /*! * \copydoc ImplicitVolumeVariables::update diff --git a/dumux/implicit/1p2c/1p2cproperties.hh b/dumux/implicit/1p2c/1p2cproperties.hh index 680d6eeab8eea79999a8aff1eea909ed39ea3538..f4190bc1ad15c2e738d7ef20b3ae29c2569893d5 100644 --- a/dumux/implicit/1p2c/1p2cproperties.hh +++ b/dumux/implicit/1p2c/1p2cproperties.hh @@ -65,6 +65,7 @@ NEW_PROP_TAG(Indices); //!< Enumerations for the model NEW_PROP_TAG(SpatialParams); //!< The type of the spatial parameters NEW_PROP_TAG(EffectiveDiffusivityModel); //!< The employed model for the computation of the effective diffusivity NEW_PROP_TAG(FluidSystem); //!< Type of the multi-component relations +NEW_PROP_TAG(FluidState); //!< Type of the fluid state to be used NEW_PROP_TAG(ImplicitMassUpwindWeight); //!< The default value of the upwind weight NEW_PROP_TAG(ImplicitMobilityUpwindWeight); //!< Weight for the upwind mobility in the velocity calculation NEW_PROP_TAG(ProblemEnableGravity); //!< Returns whether gravity is considered in the problem diff --git a/dumux/implicit/1p2c/1p2cpropertydefaults.hh b/dumux/implicit/1p2c/1p2cpropertydefaults.hh index 0cab4fc95dbd98695fd101fb9cd800b87e8ed57e..d57c8ce66a896c4faf4c80c91256360d7800c21a 100644 --- a/dumux/implicit/1p2c/1p2cpropertydefaults.hh +++ b/dumux/implicit/1p2c/1p2cpropertydefaults.hh @@ -69,6 +69,20 @@ SET_TYPE_PROP(OnePTwoC, VolumeVariables, typename GET_PROP_TYPE(TypeTag, Isother //! define the FluxVariables SET_TYPE_PROP(OnePTwoC, FluxVariables, typename GET_PROP_TYPE(TypeTag, IsothermalFluxVariables)); +/*! + * \brief The fluid state which is used by the volume variables to + * store the thermodynamic state. This should be chosen + * appropriately for the model ((non-)isothermal, equilibrium, ...). + * This can be done in the problem. + */ +SET_PROP(OnePTwoC, FluidState){ + private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + public: + typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> type; +}; + //! set default upwind weight to 1.0, i.e. fully upwind SET_SCALAR_PROP(OnePTwoC, ImplicitMassUpwindWeight, 1.0); diff --git a/dumux/implicit/1p2c/1p2cvolumevariables.hh b/dumux/implicit/1p2c/1p2cvolumevariables.hh index 05689101447bf130c1f6a62e0b36fa2a6ff982e2..807475142b858681fbb9bf32815bf638f6893af6 100644 --- a/dumux/implicit/1p2c/1p2cvolumevariables.hh +++ b/dumux/implicit/1p2c/1p2cvolumevariables.hh @@ -72,8 +72,8 @@ class OnePTwoCVolumeVariables : public ImplicitVolumeVariables<TypeTag> typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition; public: - //! The type returned by the fluidState() method - typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> FluidState; + + typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState; /*! * \copydoc ImplicitVolumeVariables::update diff --git a/dumux/implicit/2p2c/2p2cproperties.hh b/dumux/implicit/2p2c/2p2cproperties.hh index 37b329444a1fab78c528c5305f49e9e78952e4ae..05172090dcafd51f67b222475550a60b813ff569 100644 --- a/dumux/implicit/2p2c/2p2cproperties.hh +++ b/dumux/implicit/2p2c/2p2cproperties.hh @@ -62,6 +62,7 @@ NEW_PROP_TAG(Indices); //!< Enumerations for the model NEW_PROP_TAG(Formulation); //!< The formulation of the model NEW_PROP_TAG(SpatialParams); //!< The type of the spatial parameters NEW_PROP_TAG(FluidSystem); //!< The type of the multi-component relations +NEW_PROP_TAG(FluidState); //!< The type of the 2p2c fluid state NEW_PROP_TAG(MaterialLaw); //!< The material law which ought to be used (extracted from the spatial parameters) NEW_PROP_TAG(MaterialLawParams); //!< The parameters of the material law (extracted from the spatial parameters) diff --git a/dumux/implicit/2p2c/2p2cpropertydefaults.hh b/dumux/implicit/2p2c/2p2cpropertydefaults.hh index c1fe7e02fa3cebc7c21ea4efee110a8609f6b841..d4252a2bff5270335689e86fc741383021da122b 100644 --- a/dumux/implicit/2p2c/2p2cpropertydefaults.hh +++ b/dumux/implicit/2p2c/2p2cpropertydefaults.hh @@ -85,6 +85,20 @@ SET_PROP(TwoPTwoC, NumPhases) "Only fluid systems with 2 phases are supported by the 2p-2c model!"); }; +/*! + * \brief The fluid state which is used by the volume variables to + * store the thermodynamic state. This should be chosen + * appropriately for the model ((non-)isothermal, equilibrium, ...). + * This can be done in the problem. + */ +SET_PROP(TwoPTwoC, FluidState){ + private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + public: + typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> type; +}; + //! Set the number of equations to 2 SET_INT_PROP(TwoPTwoC, NumEq, 2); diff --git a/dumux/implicit/2p2c/2p2cvolumevariables.hh b/dumux/implicit/2p2c/2p2cvolumevariables.hh index 2c2f19441033ccf6d381e969b300a81b6162c334..41d4fddca5a2c33bc2e4f137e5c31c8bc956a2ed 100644 --- a/dumux/implicit/2p2c/2p2cvolumevariables.hh +++ b/dumux/implicit/2p2c/2p2cvolumevariables.hh @@ -102,8 +102,8 @@ class TwoPTwoCVolumeVariables : public ImplicitVolumeVariables<TypeTag> enum { dofCodim = isBox ? dim : 0 }; public: - //! The type of the object returned by the fluidState() method - typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> FluidState; + + typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState; /*! * \copydoc ImplicitVolumeVariables::update diff --git a/dumux/implicit/2pnc/2pncproperties.hh b/dumux/implicit/2pnc/2pncproperties.hh index 6af8b5c860b4865e69c3f75c3694243a0a3e8adb..2f4ace554442a649847e3609d80126655e6487b3 100644 --- a/dumux/implicit/2pnc/2pncproperties.hh +++ b/dumux/implicit/2pnc/2pncproperties.hh @@ -63,6 +63,7 @@ NEW_PROP_TAG(TwoPNCIndices); //!< Enumerations for the 2pncMin models NEW_PROP_TAG(Formulation); //!< The formulation of the model NEW_PROP_TAG(SpatialParams); //!< The type of the spatial parameters NEW_PROP_TAG(FluidSystem); //!< Type of the multi-component relations +NEW_PROP_TAG(FluidState); //!< Type of the fluid state of the 2pnc model NEW_PROP_TAG(Indices); //!< Enumerations for the model NEW_PROP_TAG(Chemistry); //!< The chemistry class with which solves equlibrium reactions diff --git a/dumux/implicit/2pnc/2pncpropertydefaults.hh b/dumux/implicit/2pnc/2pncpropertydefaults.hh index 3d4212c160f0e0e53d88e2a64a270093a1f9308f..7a8f14ed9d928bba7688ee7af09da9e4810ae314 100644 --- a/dumux/implicit/2pnc/2pncpropertydefaults.hh +++ b/dumux/implicit/2pnc/2pncpropertydefaults.hh @@ -113,6 +113,20 @@ public: static const int value = FluidSystem::numComponents; }; +/*! + * \brief The fluid state which is used by the volume variables to + * store the thermodynamic state. This should be chosen + * appropriately for the model ((non-)isothermal, equilibrium, ...). + * This can be done in the problem. + */ +SET_PROP(TwoPNC, FluidState){ + private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + public: + typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> type; +}; + //! Set the default formulation to pl-Sg: This can be over written in the problem. SET_INT_PROP(TwoPNC, Formulation, TwoPNCFormulation::plSg); diff --git a/dumux/implicit/2pnc/2pncvolumevariables.hh b/dumux/implicit/2pnc/2pncvolumevariables.hh index 27b7d97c861161af0fdbd0dfb282385baf7343d9..7bf1c928eb8e315d31d68da11a50e7e6f3477e34 100644 --- a/dumux/implicit/2pnc/2pncvolumevariables.hh +++ b/dumux/implicit/2pnc/2pncvolumevariables.hh @@ -104,8 +104,8 @@ class TwoPNCVolumeVariables : public ImplicitVolumeVariables<TypeTag> enum { dofCodim = isBox ? dim : 0 }; public: - //! The type of the object returned by the fluidState() method - typedef CompositionalFluidState<Scalar, FluidSystem> FluidState; + typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState; + /*! * \copydoc ImplicitVolumeVariables::update * \param primaryVariables The primary Variables diff --git a/dumux/implicit/2pncmin/2pncminpropertydefaults.hh b/dumux/implicit/2pncmin/2pncminpropertydefaults.hh index fa29ac3f81627793d536daddfff28a5da671b5c3..c52eb5097da2be0c7013993d7da940e01c11420a 100644 --- a/dumux/implicit/2pncmin/2pncminpropertydefaults.hh +++ b/dumux/implicit/2pncmin/2pncminpropertydefaults.hh @@ -94,6 +94,20 @@ public: static const int value = FluidSystem::numComponents + FluidSystem::numSPhases; }; +/*! + * \brief The fluid state which is used by the volume variables to + * store the thermodynamic state. This should be chosen + * appropriately for the model ((non-)isothermal, equilibrium, ...). + * This can be done in the problem. + */ +SET_PROP(TwoPNCMin, FluidState){ + private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + public: + typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> type; +}; + //! Use the 2pncmin local residual operator SET_TYPE_PROP(TwoPNCMin, LocalResidual, diff --git a/dumux/implicit/2pncmin/2pncminvolumevariables.hh b/dumux/implicit/2pncmin/2pncminvolumevariables.hh index f8e3b7a060eba1125c7236efbcc705abc22772f9..9ac07987746a6a7c7462a2d086718c826496a5cc 100644 --- a/dumux/implicit/2pncmin/2pncminvolumevariables.hh +++ b/dumux/implicit/2pncmin/2pncminvolumevariables.hh @@ -108,8 +108,8 @@ class TwoPNCMinVolumeVariables : public TwoPNCVolumeVariables<TypeTag> enum { dofCodim = isBox ? dim : 0 }; public: - //! The type of the object returned by the fluidState() method - typedef CompositionalFluidState<Scalar, FluidSystem> FluidState; + typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState; + /*! * \copydoc ImplicitVolumeVariables::update */ diff --git a/dumux/implicit/3p3c/3p3cproperties.hh b/dumux/implicit/3p3c/3p3cproperties.hh index 81a97b4c97a333884be0bc8bbaa75f96ca88325e..d9c974275af2046738a5508046082d41888357a7 100644 --- a/dumux/implicit/3p3c/3p3cproperties.hh +++ b/dumux/implicit/3p3c/3p3cproperties.hh @@ -63,6 +63,7 @@ NEW_PROP_TAG(NumComponents); //!< Number of fluid components in the system NEW_PROP_TAG(Indices); //!< Enumerations for the model NEW_PROP_TAG(SpatialParams); //!< The type of the spatial parameters NEW_PROP_TAG(FluidSystem); //!< Type of the multi-component relations +NEW_PROP_TAG(FluidState); //!< Type of the fluid state to be used NEW_PROP_TAG(MaterialLaw); //!< The material law which ought to be used (extracted from the spatial parameters) NEW_PROP_TAG(MaterialLawParams); //!< The parameters of the material law (extracted from the spatial parameters) diff --git a/dumux/implicit/3p3c/3p3cpropertydefaults.hh b/dumux/implicit/3p3c/3p3cpropertydefaults.hh index f8d9c5d5d80f49511b2eb4190d229d00e5c0e097..81b3af95202eb29da5a4b26dc21f473068841003 100644 --- a/dumux/implicit/3p3c/3p3cpropertydefaults.hh +++ b/dumux/implicit/3p3c/3p3cpropertydefaults.hh @@ -87,6 +87,20 @@ SET_PROP(ThreePThreeC, NumPhases) "Only fluid systems with 3 phases are supported by the 3p3c model!"); }; +/*! + * \brief The fluid state which is used by the volume variables to + * store the thermodynamic state. This should be chosen + * appropriately for the model ((non-)isothermal, equilibrium, ...). + * This can be done in the problem. + */ +SET_PROP(ThreePThreeC, FluidState){ + private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + public: + typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> type; +}; + SET_INT_PROP(ThreePThreeC, NumEq, 3); //!< set the number of equations to 2 /*! diff --git a/dumux/implicit/3p3c/3p3cvolumevariables.hh b/dumux/implicit/3p3c/3p3cvolumevariables.hh index b0d11c377683c43864dffc0052d452831ca82803..2e4a9a45977dc1ab5345e684a1602e7b018933c4 100644 --- a/dumux/implicit/3p3c/3p3cvolumevariables.hh +++ b/dumux/implicit/3p3c/3p3cvolumevariables.hh @@ -98,9 +98,8 @@ class ThreePThreeCVolumeVariables : public ImplicitVolumeVariables<TypeTag> enum { dofCodim = isBox ? dim : 0 }; public: - //! The type of the object returned by the fluidState() method - typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> FluidState; + typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState; /*! * \copydoc ImplicitVolumeVariables::update diff --git a/dumux/implicit/richards/richardsproperties.hh b/dumux/implicit/richards/richardsproperties.hh index b587344cd343cc65b4ffaf774a7d636ae8e4e36e..156e19027ac5743754c1322ad67b42d98bde94fc 100644 --- a/dumux/implicit/richards/richardsproperties.hh +++ b/dumux/implicit/richards/richardsproperties.hh @@ -64,6 +64,7 @@ NEW_PROP_TAG(SpatialParams); //!< The type of the spatial parameters NEW_PROP_TAG(MaterialLaw); //!< The material law which ought to be used (by default extracted from the spatial parameters) NEW_PROP_TAG(MaterialLawParams); //!< The type of the parameter object for the material law (by default extracted from the spatial parameters) NEW_PROP_TAG(FluidSystem); //!< The fluid system to be used for the Richards model +NEW_PROP_TAG(FluidState); //!< The fluid state to be used for the Richards model NEW_PROP_TAG(WettingPhase); //!< Fluid which represents the wetting phase NEW_PROP_TAG(NonwettingPhase); //!< Fluid which represents the non-wetting phase NEW_PROP_TAG(ProblemEnableGravity); //!< Returns whether gravity is considered in the problem diff --git a/dumux/implicit/richards/richardspropertydefaults.hh b/dumux/implicit/richards/richardspropertydefaults.hh index 68abd8c724dae03ebac3c9c8d408b3ae42205296..4aa82b1e1d61ae560959754977df9863ec7e5048 100644 --- a/dumux/implicit/richards/richardspropertydefaults.hh +++ b/dumux/implicit/richards/richardspropertydefaults.hh @@ -157,6 +157,20 @@ public: NonwettingPhase> type; }; +/*! + * \brief The fluid state which is used by the volume variables to + * store the thermodynamic state. This should be chosen + * appropriately for the model ((non-)isothermal, equilibrium, ...). + * This can be done in the problem. + */ +SET_PROP(Richards, FluidState){ + private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + public: + typedef Dumux::ImmiscibleFluidState<Scalar, FluidSystem> type; +}; + // disable velocity output by default SET_BOOL_PROP(Richards, VtkAddVelocity, false); diff --git a/dumux/implicit/richards/richardsvolumevariables.hh b/dumux/implicit/richards/richardsvolumevariables.hh index e3bdccf52cc4240f49906b1d70cf55c37fdf5c04..93c7979d5e03efb7147472b7e7a41040d7875f21 100644 --- a/dumux/implicit/richards/richardsvolumevariables.hh +++ b/dumux/implicit/richards/richardsvolumevariables.hh @@ -67,8 +67,8 @@ class RichardsVolumeVariables : public ImplicitVolumeVariables<TypeTag> static const bool useHead = GET_PROP_VALUE(TypeTag, UseHead); public: - //! The type returned by the fluidState() method - typedef Dumux::ImmiscibleFluidState<Scalar, FluidSystem> FluidState; + + typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState; /*! * \copydoc ImplicitVolumeVariables::update