Commit b9e5d439 authored by Gabi Seitz's avatar Gabi Seitz
Browse files

[fluidstate] add fluidstate property

Add fluidstate property for all implicit porous media models
if not yet defined

Conflicts:
	dumux/implicit/2pncmin/2pncminvolumevariables.hh
parent 1288fcfa
......@@ -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
......
......@@ -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);
......
......@@ -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
......
......@@ -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
......
......@@ -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);
......
......@@ -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
......
......@@ -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)
......
......@@ -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);
......
......@@ -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
......
......@@ -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
......
......@@ -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);
......
......@@ -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
......
......@@ -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,
......
......@@ -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
*/
......
......@@ -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)
......
......@@ -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
/*!
......
......@@ -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
......
......@@ -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
......
......@@ -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);
......
......@@ -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
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment