From c1082b22dc7b5621d049727b23231f1451f1ff02 Mon Sep 17 00:00:00 2001 From: Bernd Flemisch <bernd@iws.uni-stuttgart.de> Date: Tue, 27 Nov 2012 19:50:11 +0000 Subject: [PATCH] implicit branch: add CC* type tags in addition to Box* ones. git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/branches/implicit@9685 2fb0f335-1f38-0410-981e-8018bf24f1b0 --- dumux/implicit/1p/1pproperties.hh | 7 +- dumux/implicit/1p/1ppropertydefaults.hh | 26 ++--- dumux/implicit/1p2c/1p2cproperties.hh | 7 +- dumux/implicit/1p2c/1p2cpropertydefaults.hh | 28 ++--- dumux/implicit/2p/2pproperties.hh | 7 +- dumux/implicit/2p/2ppropertydefaults.hh | 36 +++---- dumux/implicit/2p2c/2p2cproperties.hh | 7 +- dumux/implicit/2p2c/2p2cpropertydefaults.hh | 36 +++---- dumux/implicit/2p2cni/2p2cniproperties.hh | 6 +- .../implicit/2p2cni/2p2cnipropertydefaults.hh | 12 +-- dumux/implicit/2pdfm/2pdfmproperties.hh | 7 +- dumux/implicit/2pdfm/2pdfmpropertydefaults.hh | 36 +++---- dumux/implicit/2pni/2pniproperties.hh | 6 +- dumux/implicit/2pni/2pnipropertydefaults.hh | 12 +-- dumux/implicit/3p3c/3p3cproperties.hh | 7 +- dumux/implicit/3p3c/3p3cpropertydefaults.hh | 32 +++--- dumux/implicit/3p3cni/3p3cniproperties.hh | 6 +- .../implicit/3p3cni/3p3cnipropertydefaults.hh | 12 +-- dumux/implicit/mpnc/mpncproperties.hh | 9 +- dumux/implicit/mpnc/mpncpropertydefaults.hh | 102 +++++++++--------- dumux/implicit/richards/richardsproperties.hh | 7 +- .../richards/richardspropertydefaults.hh | 32 +++--- 22 files changed, 234 insertions(+), 206 deletions(-) diff --git a/dumux/implicit/1p/1pproperties.hh b/dumux/implicit/1p/1pproperties.hh index 43c97bb0f4..13942f47df 100644 --- a/dumux/implicit/1p/1pproperties.hh +++ b/dumux/implicit/1p/1pproperties.hh @@ -28,6 +28,7 @@ #define DUMUX_1P_PROPERTIES_DATA_HH #include <dumux/implicit/box/boxproperties.hh> +#include <dumux/implicit/cellcentered/ccproperties.hh> namespace Dumux { @@ -41,8 +42,10 @@ namespace Properties { // Type tags ////////////////////////////////////////////////////////////////// -//! The type tag for the isothermal single phase problems -NEW_TYPE_TAG(BoxOneP, INHERITS_FROM(BoxModel)); +//! The type tags for the implicit single-phase problems +NEW_TYPE_TAG(OneP); +NEW_TYPE_TAG(BoxOneP, INHERITS_FROM(BoxModel, OneP)); +NEW_TYPE_TAG(CCOneP, INHERITS_FROM(CCModel, OneP)); ////////////////////////////////////////////////////////////////// // Property tags diff --git a/dumux/implicit/1p/1ppropertydefaults.hh b/dumux/implicit/1p/1ppropertydefaults.hh index 2738c782eb..34b3c254d4 100644 --- a/dumux/implicit/1p/1ppropertydefaults.hh +++ b/dumux/implicit/1p/1ppropertydefaults.hh @@ -49,42 +49,42 @@ namespace Dumux // default property values for the isothermal single phase model /////////////////////////////////////////////////////////////////////////// namespace Properties { -SET_INT_PROP(BoxOneP, NumEq, 1); //!< set the number of equations to 1 -SET_INT_PROP(BoxOneP, NumPhases, 1); //!< The number of phases in the 1p model is 1 +SET_INT_PROP(OneP, NumEq, 1); //!< set the number of equations to 1 +SET_INT_PROP(OneP, NumPhases, 1); //!< The number of phases in the 1p model is 1 //! The local residual function -SET_TYPE_PROP(BoxOneP, +SET_TYPE_PROP(OneP, LocalResidual, OnePLocalResidual<TypeTag>); //! the Model property -SET_TYPE_PROP(BoxOneP, Model, OnePBoxModel<TypeTag>); +SET_TYPE_PROP(OneP, Model, OnePBoxModel<TypeTag>); //! the VolumeVariables property -SET_TYPE_PROP(BoxOneP, VolumeVariables, OnePVolumeVariables<TypeTag>); +SET_TYPE_PROP(OneP, VolumeVariables, OnePVolumeVariables<TypeTag>); //! the FluxVariables property -SET_TYPE_PROP(BoxOneP, FluxVariables, BoxDarcyFluxVariables<TypeTag>); +SET_TYPE_PROP(OneP, FluxVariables, BoxDarcyFluxVariables<TypeTag>); //! The indices required by the isothermal single-phase model -SET_TYPE_PROP(BoxOneP, Indices, OnePIndices); +SET_TYPE_PROP(OneP, Indices, OnePIndices); //! The spatial parameters to be employed. //! Use BoxSpatialParamsOneP by default. -SET_TYPE_PROP(BoxOneP, SpatialParams, BoxSpatialParamsOneP<TypeTag>); +SET_TYPE_PROP(OneP, SpatialParams, BoxSpatialParamsOneP<TypeTag>); //! The weight of the upwind control volume when calculating //! fluxes. Use central differences by default. -SET_SCALAR_PROP(BoxOneP, ImplicitMassUpwindWeight, 0.5); +SET_SCALAR_PROP(OneP, ImplicitMassUpwindWeight, 0.5); //! weight for the upwind mobility in the velocity calculation //! fluxes. Use central differences by default. -SET_SCALAR_PROP(BoxOneP, ImplicitMobilityUpwindWeight, 0.5); +SET_SCALAR_PROP(OneP, ImplicitMobilityUpwindWeight, 0.5); //! The fluid system to use by default -SET_TYPE_PROP(BoxOneP, FluidSystem, Dumux::FluidSystems::OneP<typename GET_PROP_TYPE(TypeTag, Scalar), typename GET_PROP_TYPE(TypeTag, Fluid)>); +SET_TYPE_PROP(OneP, FluidSystem, Dumux::FluidSystems::OneP<typename GET_PROP_TYPE(TypeTag, Scalar), typename GET_PROP_TYPE(TypeTag, Fluid)>); -SET_PROP(BoxOneP, Fluid) +SET_PROP(OneP, Fluid) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; public: @@ -92,7 +92,7 @@ public: }; // enable gravity by default -SET_BOOL_PROP(BoxOneP, ProblemEnableGravity, true); +SET_BOOL_PROP(OneP, ProblemEnableGravity, true); //! default value for the forchheimer coefficient // Source: Ward, J.C. 1964 Turbulent flow in porous media. ASCE J. Hydraul. Div 90. diff --git a/dumux/implicit/1p2c/1p2cproperties.hh b/dumux/implicit/1p2c/1p2cproperties.hh index ff7641ac33..37aa1eb857 100644 --- a/dumux/implicit/1p2c/1p2cproperties.hh +++ b/dumux/implicit/1p2c/1p2cproperties.hh @@ -31,6 +31,7 @@ #include<dumux/implicit/box/boxproperties.hh> +#include<dumux/implicit/cellcentered/ccproperties.hh> namespace Dumux { @@ -42,8 +43,10 @@ namespace Properties // Type tags ////////////////////////////////////////////////////////////////// -//! The type tag for the isothermal single-phase, two-component problems -NEW_TYPE_TAG(BoxOnePTwoC, INHERITS_FROM(BoxModel)); +//! The type tags for the implicit one-phase two-component problems +NEW_TYPE_TAG(OnePTwoC); +NEW_TYPE_TAG(BoxOnePTwoC, INHERITS_FROM(BoxModel, OnePTwoC)); +NEW_TYPE_TAG(CCOnePTwoC, INHERITS_FROM(CCModel, OnePTwoC)); ////////////////////////////////////////////////////////////////// // Property tags diff --git a/dumux/implicit/1p2c/1p2cpropertydefaults.hh b/dumux/implicit/1p2c/1p2cpropertydefaults.hh index 79cd1e11f3..79cf057d37 100644 --- a/dumux/implicit/1p2c/1p2cpropertydefaults.hh +++ b/dumux/implicit/1p2c/1p2cpropertydefaults.hh @@ -48,39 +48,39 @@ namespace Properties // Property values ////////////////////////////////////////////////////////////////// -SET_INT_PROP(BoxOnePTwoC, NumEq, 2); //!< set the number of equations to 2 -SET_INT_PROP(BoxOnePTwoC, NumPhases, 1); //!< The number of phases in the 1p2c model is 1 -SET_INT_PROP(BoxOnePTwoC, NumComponents, 2); //!< The number of components in the 1p2c model is 2 -SET_SCALAR_PROP(BoxOnePTwoC, Scaling, 1); //!< Scaling of the model is set to 1 by default -SET_BOOL_PROP(BoxOnePTwoC, UseMoles, false); //!< Define that mass fractions are used in the balance equations +SET_INT_PROP(OnePTwoC, NumEq, 2); //!< set the number of equations to 2 +SET_INT_PROP(OnePTwoC, NumPhases, 1); //!< The number of phases in the 1p2c model is 1 +SET_INT_PROP(OnePTwoC, NumComponents, 2); //!< The number of components in the 1p2c model is 2 +SET_SCALAR_PROP(OnePTwoC, Scaling, 1); //!< Scaling of the model is set to 1 by default +SET_BOOL_PROP(OnePTwoC, UseMoles, false); //!< Define that mass fractions are used in the balance equations //! Use the 1p2c local residual function for the 1p2c model -SET_TYPE_PROP(BoxOnePTwoC, LocalResidual, OnePTwoCLocalResidual<TypeTag>); +SET_TYPE_PROP(OnePTwoC, LocalResidual, OnePTwoCLocalResidual<TypeTag>); //! define the model -SET_TYPE_PROP(BoxOnePTwoC, Model, OnePTwoCBoxModel<TypeTag>); +SET_TYPE_PROP(OnePTwoC, Model, OnePTwoCBoxModel<TypeTag>); //! define the VolumeVariables -SET_TYPE_PROP(BoxOnePTwoC, VolumeVariables, OnePTwoCVolumeVariables<TypeTag>); +SET_TYPE_PROP(OnePTwoC, VolumeVariables, OnePTwoCVolumeVariables<TypeTag>); //! define the FluxVariables -SET_TYPE_PROP(BoxOnePTwoC, FluxVariables, OnePTwoCFluxVariables<TypeTag>); +SET_TYPE_PROP(OnePTwoC, FluxVariables, OnePTwoCFluxVariables<TypeTag>); //! set default upwind weight to 1.0, i.e. fully upwind -SET_SCALAR_PROP(BoxOnePTwoC, ImplicitMassUpwindWeight, 1.0); +SET_SCALAR_PROP(OnePTwoC, ImplicitMassUpwindWeight, 1.0); //! Set the indices used by the 1p2c model -SET_TYPE_PROP(BoxOnePTwoC, Indices, Dumux::OnePTwoCIndices<TypeTag, 0>); +SET_TYPE_PROP(OnePTwoC, Indices, Dumux::OnePTwoCIndices<TypeTag, 0>); //! The spatial parameters to be employed. //! Use BoxSpatialParamsOneP by default. -SET_TYPE_PROP(BoxOnePTwoC, SpatialParams, BoxSpatialParamsOneP<TypeTag>); +SET_TYPE_PROP(OnePTwoC, SpatialParams, BoxSpatialParamsOneP<TypeTag>); //! Set the phaseIndex per default to zero (important for two-phase fluidsystems). -SET_INT_PROP(BoxOnePTwoC, PhaseIdx, 0); +SET_INT_PROP(OnePTwoC, PhaseIdx, 0); // enable gravity by default -SET_BOOL_PROP(BoxOnePTwoC, ProblemEnableGravity, true); +SET_BOOL_PROP(OnePTwoC, ProblemEnableGravity, true); //! default value for the forchheimer coefficient // Source: Ward, J.C. 1964 Turbulent flow in porous media. ASCE J. Hydraul. Div 90. diff --git a/dumux/implicit/2p/2pproperties.hh b/dumux/implicit/2p/2pproperties.hh index 18668890a3..69d1942c9c 100644 --- a/dumux/implicit/2p/2pproperties.hh +++ b/dumux/implicit/2p/2pproperties.hh @@ -31,6 +31,7 @@ #define DUMUX_2P_PROPERTIES_HH #include <dumux/implicit/box/boxproperties.hh> +#include <dumux/implicit/cellcentered/ccproperties.hh> namespace Dumux { @@ -47,8 +48,10 @@ namespace Properties // Type tags ////////////////////////////////////////////////////////////////// -//! The type tag for the two-phase problems -NEW_TYPE_TAG(BoxTwoP, INHERITS_FROM(BoxModel)); +//! The type tags for the implicit two-phase problems +NEW_TYPE_TAG(TwoP); +NEW_TYPE_TAG(BoxTwoP, INHERITS_FROM(BoxModel, TwoP)); +NEW_TYPE_TAG(CCTwoP, INHERITS_FROM(CCModel, TwoP)); ////////////////////////////////////////////////////////////////// // Property tags diff --git a/dumux/implicit/2p/2ppropertydefaults.hh b/dumux/implicit/2p/2ppropertydefaults.hh index 8d0c77d5ce..ff139c3bf7 100644 --- a/dumux/implicit/2p/2ppropertydefaults.hh +++ b/dumux/implicit/2p/2ppropertydefaults.hh @@ -48,66 +48,66 @@ namespace Properties ////////////////////////////////////////////////////////////////// // Property defaults ////////////////////////////////////////////////////////////////// -SET_INT_PROP(BoxTwoP, NumEq, 2); //!< set the number of equations to 2 -SET_INT_PROP(BoxTwoP, NumPhases, 2); //!< The number of phases in the 2p model is 2 +SET_INT_PROP(TwoP, NumEq, 2); //!< set the number of equations to 2 +SET_INT_PROP(TwoP, NumPhases, 2); //!< The number of phases in the 2p model is 2 //! Set the default formulation to pWsN -SET_INT_PROP(BoxTwoP, +SET_INT_PROP(TwoP, Formulation, TwoPFormulation::pwSn); //! Use the 2p local jacobian operator for the 2p model -SET_TYPE_PROP(BoxTwoP, +SET_TYPE_PROP(TwoP, LocalResidual, TwoPLocalResidual<TypeTag>); //! the Model property -SET_TYPE_PROP(BoxTwoP, Model, TwoPModel<TypeTag>); +SET_TYPE_PROP(TwoP, Model, TwoPModel<TypeTag>); //! the VolumeVariables property -SET_TYPE_PROP(BoxTwoP, VolumeVariables, TwoPVolumeVariables<TypeTag>); +SET_TYPE_PROP(TwoP, VolumeVariables, TwoPVolumeVariables<TypeTag>); //! the FluxVariables property -SET_TYPE_PROP(BoxTwoP, FluxVariables, BoxDarcyFluxVariables<TypeTag>); +SET_TYPE_PROP(TwoP, FluxVariables, BoxDarcyFluxVariables<TypeTag>); //! the upwind weight for the mass conservation equations. -SET_SCALAR_PROP(BoxTwoP, ImplicitMassUpwindWeight, 1.0); +SET_SCALAR_PROP(TwoP, ImplicitMassUpwindWeight, 1.0); //! weight for the upwind mobility in the velocity calculation -SET_SCALAR_PROP(BoxTwoP, ImplicitMobilityUpwindWeight, 1.0); +SET_SCALAR_PROP(TwoP, ImplicitMobilityUpwindWeight, 1.0); //! The indices required by the isothermal 2p model -SET_TYPE_PROP(BoxTwoP, +SET_TYPE_PROP(TwoP, Indices, TwoPIndices<TypeTag, GET_PROP_VALUE(TypeTag, Formulation), 0>); //! The spatial parameters to be employed. //! Use BoxSpatialParams by default. -SET_TYPE_PROP(BoxTwoP, SpatialParams, BoxSpatialParams<TypeTag>); +SET_TYPE_PROP(TwoP, SpatialParams, BoxSpatialParams<TypeTag>); /*! * \brief Set the property for the material parameters by extracting * it from the material law. */ -SET_TYPE_PROP(BoxTwoP, +SET_TYPE_PROP(TwoP, MaterialLawParams, typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params); -SET_PROP(BoxTwoP, WettingPhase) +SET_PROP(TwoP, WettingPhase) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; public: typedef Dumux::LiquidPhase<Scalar, Dumux::NullComponent<Scalar> > type; }; -SET_PROP(BoxTwoP, NonwettingPhase) +SET_PROP(TwoP, NonwettingPhase) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; public: typedef Dumux::LiquidPhase<Scalar, Dumux::NullComponent<Scalar> > type; }; -SET_PROP(BoxTwoP, FluidSystem) +SET_PROP(TwoP, FluidSystem) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; typedef typename GET_PROP_TYPE(TypeTag, WettingPhase) WettingPhase; @@ -119,7 +119,7 @@ public: NonwettingPhase> type; }; -SET_PROP(BoxTwoP, FluidState) +SET_PROP(TwoP, FluidState) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; @@ -129,10 +129,10 @@ public: }; // disable velocity output by default -SET_BOOL_PROP(BoxTwoP, VtkAddVelocity, false); +SET_BOOL_PROP(TwoP, VtkAddVelocity, false); // enable gravity by default -SET_BOOL_PROP(BoxTwoP, ProblemEnableGravity, true); +SET_BOOL_PROP(TwoP, ProblemEnableGravity, true); //! default value for the forchheimer coefficient // Source: Ward, J.C. 1964 Turbulent flow in porous media. ASCE J. Hydraul. Div 90. diff --git a/dumux/implicit/2p2c/2p2cproperties.hh b/dumux/implicit/2p2c/2p2cproperties.hh index c57ae2f635..35f26eb4e6 100644 --- a/dumux/implicit/2p2c/2p2cproperties.hh +++ b/dumux/implicit/2p2c/2p2cproperties.hh @@ -30,6 +30,7 @@ #define DUMUX_2P2C_PROPERTIES_HH #include <dumux/implicit/box/boxproperties.hh> +#include <dumux/implicit/cellcentered/ccproperties.hh> namespace Dumux { @@ -40,8 +41,10 @@ namespace Properties // Type tags ////////////////////////////////////////////////////////////////// -//! The type tag for the isothermal single phase problems -NEW_TYPE_TAG(BoxTwoPTwoC, INHERITS_FROM(BoxModel)); +//! The type tags for the implicit two-phase two-component problems +NEW_TYPE_TAG(TwoPTwoC); +NEW_TYPE_TAG(BoxTwoPTwoC, INHERITS_FROM(BoxModel, TwoPTwoC)); +NEW_TYPE_TAG(CCTwoPTwoC, INHERITS_FROM(CCModel, TwoPTwoC)); ////////////////////////////////////////////////////////////////// // Property tags diff --git a/dumux/implicit/2p2c/2p2cpropertydefaults.hh b/dumux/implicit/2p2c/2p2cpropertydefaults.hh index 83e73fbb4b..8a41d48987 100644 --- a/dumux/implicit/2p2c/2p2cpropertydefaults.hh +++ b/dumux/implicit/2p2c/2p2cpropertydefaults.hh @@ -52,7 +52,7 @@ namespace Properties { * We just forward the number from the fluid system and use an static * assert to make sure it is 2. */ -SET_PROP(BoxTwoPTwoC, NumComponents) +SET_PROP(TwoPTwoC, NumComponents) { private: typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; @@ -70,7 +70,7 @@ SET_PROP(BoxTwoPTwoC, NumComponents) * We just forward the number from the fluid system and use an static * assert to make sure it is 2. */ -SET_PROP(BoxTwoPTwoC, NumPhases) +SET_PROP(TwoPTwoC, NumPhases) { private: typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; @@ -81,21 +81,21 @@ SET_PROP(BoxTwoPTwoC, NumPhases) "Only fluid systems with 2 phases are supported by the 2p-2c model!"); }; -SET_INT_PROP(BoxTwoPTwoC, NumEq, 2); //!< set the number of equations to 2 +SET_INT_PROP(TwoPTwoC, NumEq, 2); //!< set the number of equations to 2 //! Set the default formulation to pw-Sn -SET_INT_PROP(BoxTwoPTwoC, +SET_INT_PROP(TwoPTwoC, Formulation, TwoPTwoCFormulation::pwSn); //! set as default that no component mass balance is replaced by the total mass balance -SET_INT_PROP(BoxTwoPTwoC, ReplaceCompEqIdx, 2); +SET_INT_PROP(TwoPTwoC, ReplaceCompEqIdx, 2); /*! * \brief Set the property for the material parameters by extracting * it from the material law. */ -SET_PROP(BoxTwoPTwoC, MaterialLawParams) +SET_PROP(TwoPTwoC, MaterialLawParams) { private: typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw; @@ -105,33 +105,33 @@ SET_PROP(BoxTwoPTwoC, MaterialLawParams) }; //! Use the 2p2c local jacobian operator for the 2p2c model -SET_TYPE_PROP(BoxTwoPTwoC, +SET_TYPE_PROP(TwoPTwoC, LocalResidual, TwoPTwoCLocalResidual<TypeTag>); //! Use the 2p2c specific newton controller for the 2p2c model -SET_TYPE_PROP(BoxTwoPTwoC, NewtonController, TwoPTwoCNewtonController<TypeTag>); +SET_TYPE_PROP(TwoPTwoC, NewtonController, TwoPTwoCNewtonController<TypeTag>); //! the Model property -SET_TYPE_PROP(BoxTwoPTwoC, Model, TwoPTwoCModel<TypeTag>); +SET_TYPE_PROP(TwoPTwoC, Model, TwoPTwoCModel<TypeTag>); //! the VolumeVariables property -SET_TYPE_PROP(BoxTwoPTwoC, VolumeVariables, TwoPTwoCVolumeVariables<TypeTag>); +SET_TYPE_PROP(TwoPTwoC, VolumeVariables, TwoPTwoCVolumeVariables<TypeTag>); //! the FluxVariables property -SET_TYPE_PROP(BoxTwoPTwoC, FluxVariables, TwoPTwoCFluxVariables<TypeTag>); +SET_TYPE_PROP(TwoPTwoC, FluxVariables, TwoPTwoCFluxVariables<TypeTag>); //! define the base flux variables to realize Darcy flow -SET_TYPE_PROP(BoxTwoPTwoC, BaseFluxVariables, BoxDarcyFluxVariables<TypeTag>); +SET_TYPE_PROP(TwoPTwoC, BaseFluxVariables, BoxDarcyFluxVariables<TypeTag>); //! the upwind weight for the mass conservation equations. -SET_SCALAR_PROP(BoxTwoPTwoC, ImplicitMassUpwindWeight, 1.0); +SET_SCALAR_PROP(TwoPTwoC, ImplicitMassUpwindWeight, 1.0); //! set default mobility upwind weight to 1.0, i.e. fully upwind -SET_SCALAR_PROP(BoxTwoPTwoC, ImplicitMobilityUpwindWeight, 1.0); +SET_SCALAR_PROP(TwoPTwoC, ImplicitMobilityUpwindWeight, 1.0); //! The indices required by the isothermal 2p2c model -SET_PROP(BoxTwoPTwoC, Indices) +SET_PROP(TwoPTwoC, Indices) { private: enum { Formulation = GET_PROP_VALUE(TypeTag, Formulation) }; public: @@ -140,13 +140,13 @@ SET_PROP(BoxTwoPTwoC, Indices) //! The spatial parameters to be employed. //! Use BoxSpatialParams by default. -SET_TYPE_PROP(BoxTwoPTwoC, SpatialParams, BoxSpatialParams<TypeTag>); +SET_TYPE_PROP(TwoPTwoC, SpatialParams, BoxSpatialParams<TypeTag>); // disable velocity output by default -SET_BOOL_PROP(BoxTwoPTwoC, VtkAddVelocity, false); +SET_BOOL_PROP(TwoPTwoC, VtkAddVelocity, false); // enable gravity by default -SET_BOOL_PROP(BoxTwoPTwoC, ProblemEnableGravity, true); +SET_BOOL_PROP(TwoPTwoC, ProblemEnableGravity, true); //! default value for the forchheimer coefficient // Source: Ward, J.C. 1964 Turbulent flow in porous media. ASCE J. Hydraul. Div 90. diff --git a/dumux/implicit/2p2cni/2p2cniproperties.hh b/dumux/implicit/2p2cni/2p2cniproperties.hh index ecf888a987..92fb6fab82 100644 --- a/dumux/implicit/2p2cni/2p2cniproperties.hh +++ b/dumux/implicit/2p2cni/2p2cniproperties.hh @@ -39,8 +39,10 @@ namespace Properties // Type tags ////////////////////////////////////////////////////////////////// -//! The type tag for the non-isothermal two-phase, two-component problems -NEW_TYPE_TAG(BoxTwoPTwoCNI, INHERITS_FROM(BoxTwoPTwoC)); +//! The type tags for the implicit non-isothermal two-phase two-component problems +NEW_TYPE_TAG(TwoPTwoCNI, INHERITS_FROM(TwoPTwoC)); +NEW_TYPE_TAG(BoxTwoPTwoCNI, INHERITS_FROM(BoxModel, TwoPTwoCNI)); +NEW_TYPE_TAG(CCTwoPTwoCNI, INHERITS_FROM(CCModel, TwoPTwoCNI)); } } diff --git a/dumux/implicit/2p2cni/2p2cnipropertydefaults.hh b/dumux/implicit/2p2cni/2p2cnipropertydefaults.hh index 1277dce919..a9c7e3063f 100644 --- a/dumux/implicit/2p2cni/2p2cnipropertydefaults.hh +++ b/dumux/implicit/2p2cni/2p2cnipropertydefaults.hh @@ -45,25 +45,25 @@ namespace Properties // Property values ////////////////////////////////////////////////////////////////// -SET_INT_PROP(BoxTwoPTwoCNI, NumEq, 3); //!< set the number of equations to 3 +SET_INT_PROP(TwoPTwoCNI, NumEq, 3); //!< set the number of equations to 3 //! Use the 2p2cni local jacobian operator for the 2p2cni model -SET_TYPE_PROP(BoxTwoPTwoCNI, +SET_TYPE_PROP(TwoPTwoCNI, LocalResidual, TwoPTwoCNILocalResidual<TypeTag>); //! the Model property -SET_TYPE_PROP(BoxTwoPTwoCNI, Model, TwoPTwoCNIModel<TypeTag>); +SET_TYPE_PROP(TwoPTwoCNI, Model, TwoPTwoCNIModel<TypeTag>); //! the VolumeVariables property -SET_TYPE_PROP(BoxTwoPTwoCNI, VolumeVariables, TwoPTwoCNIVolumeVariables<TypeTag>); +SET_TYPE_PROP(TwoPTwoCNI, VolumeVariables, TwoPTwoCNIVolumeVariables<TypeTag>); //! the FluxVariables property -SET_TYPE_PROP(BoxTwoPTwoCNI, FluxVariables, TwoPTwoCNIFluxVariables<TypeTag>); +SET_TYPE_PROP(TwoPTwoCNI, FluxVariables, TwoPTwoCNIFluxVariables<TypeTag>); //! The indices required by the non-isothermal 2p2c model -SET_PROP(BoxTwoPTwoCNI, Indices) +SET_PROP(TwoPTwoCNI, Indices) { private: enum { formulation = GET_PROP_VALUE(TypeTag, Formulation) }; public: diff --git a/dumux/implicit/2pdfm/2pdfmproperties.hh b/dumux/implicit/2pdfm/2pdfmproperties.hh index a3e7d4c9ad..2d7b414b10 100644 --- a/dumux/implicit/2pdfm/2pdfmproperties.hh +++ b/dumux/implicit/2pdfm/2pdfmproperties.hh @@ -28,6 +28,7 @@ #define DUMUX_BOXMODELS_2PDFM_PROPERTIES_HH #include <dumux/implicit/box/boxproperties.hh> +#include <dumux/implicit/cellcentered/ccproperties.hh> namespace Dumux { @@ -42,8 +43,10 @@ namespace Properties // Type tags ////////////////////////////////////////////////////////////////// -//! The type tag for 2pDFM problems -NEW_TYPE_TAG(BoxTwoPDFM, INHERITS_FROM(BoxModel)); +//! The type tags for the implicit two-phase DFM problems +NEW_TYPE_TAG(TwoPDFM); +NEW_TYPE_TAG(BoxTwoPDFM, INHERITS_FROM(BoxModel, TwoPDFM)); +NEW_TYPE_TAG(CCTwoPDFM, INHERITS_FROM(CCModel, TwoPDFM)); ////////////////////////////////////////////////////////////////// // Property tags diff --git a/dumux/implicit/2pdfm/2pdfmpropertydefaults.hh b/dumux/implicit/2pdfm/2pdfmpropertydefaults.hh index 9e34e57d83..1af745335d 100644 --- a/dumux/implicit/2pdfm/2pdfmpropertydefaults.hh +++ b/dumux/implicit/2pdfm/2pdfmpropertydefaults.hh @@ -49,36 +49,36 @@ namespace Properties ////////////////////////////////////////////////////////////////// // Property defaults ////////////////////////////////////////////////////////////////// -SET_INT_PROP(BoxTwoPDFM, NumEq, 2); //!< set the number of equations to 2 -SET_INT_PROP(BoxTwoPDFM, NumPhases, 2); //!< The number of phases in the 2p model is 2 +SET_INT_PROP(TwoPDFM, NumEq, 2); //!< set the number of equations to 2 +SET_INT_PROP(TwoPDFM, NumPhases, 2); //!< The number of phases in the 2p model is 2 //! Set the default formulation to pWsN -SET_INT_PROP(BoxTwoPDFM, +SET_INT_PROP(TwoPDFM, Formulation, TwoPFormulation::pwSn); //! Use the 2p local jacobian operator for the 2p model -SET_TYPE_PROP(BoxTwoPDFM, +SET_TYPE_PROP(TwoPDFM, LocalResidual, TwoPDFMLocalResidual<TypeTag>); //! the Model property -SET_TYPE_PROP(BoxTwoPDFM, Model, TwoPDFMModel<TypeTag>); +SET_TYPE_PROP(TwoPDFM, Model, TwoPDFMModel<TypeTag>); //! the VolumeVariables property -SET_TYPE_PROP(BoxTwoPDFM, VolumeVariables, TwoPDFMVolumeVariables<TypeTag>); +SET_TYPE_PROP(TwoPDFM, VolumeVariables, TwoPDFMVolumeVariables<TypeTag>); //! the FluxVariables property -SET_TYPE_PROP(BoxTwoPDFM, FluxVariables, TwoPDFMFluxVariables<TypeTag>); +SET_TYPE_PROP(TwoPDFM, FluxVariables, TwoPDFMFluxVariables<TypeTag>); //! the upwind weight for the mass conservation equations. -SET_SCALAR_PROP(BoxTwoPDFM, ImplicitMassUpwindWeight, 1.0); +SET_SCALAR_PROP(TwoPDFM, ImplicitMassUpwindWeight, 1.0); //! weight for the upwind mobility in the velocity calculation -SET_SCALAR_PROP(BoxTwoPDFM, ImplicitMobilityUpwindWeight, 1.0); +SET_SCALAR_PROP(TwoPDFM, ImplicitMobilityUpwindWeight, 1.0); //! The indices required by the isothermal 2pDFM model -SET_PROP(BoxTwoPDFM, Indices) +SET_PROP(TwoPDFM, Indices) { private: enum { Formulation = GET_PROP_VALUE(TypeTag, Formulation) }; public: @@ -88,31 +88,31 @@ SET_PROP(BoxTwoPDFM, Indices) //! The spatial parameters to be employed. //! Use BoxSpatialParams by default. -SET_TYPE_PROP(BoxTwoPDFM, SpatialParams, BoxSpatialParams<TypeTag>); +SET_TYPE_PROP(TwoPDFM, SpatialParams, BoxSpatialParams<TypeTag>); /*! * \brief Set the property for the material parameters by extracting * it from the material law. */ -SET_TYPE_PROP(BoxTwoPDFM, +SET_TYPE_PROP(TwoPDFM, MaterialLawParams, typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params); -SET_PROP(BoxTwoPDFM, WettingPhase) +SET_PROP(TwoPDFM, WettingPhase) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; public: typedef Dumux::LiquidPhase<Scalar, Dumux::NullComponent<Scalar> > type; }; -SET_PROP(BoxTwoPDFM, NonwettingPhase) +SET_PROP(TwoPDFM, NonwettingPhase) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; public: typedef Dumux::LiquidPhase<Scalar, Dumux::NullComponent<Scalar> > type; }; -SET_PROP(BoxTwoPDFM, FluidSystem) +SET_PROP(TwoPDFM, FluidSystem) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; typedef typename GET_PROP_TYPE(TypeTag, WettingPhase) WettingPhase; @@ -124,7 +124,7 @@ public: NonwettingPhase> type; }; -SET_PROP(BoxTwoPDFM, FluidState) +SET_PROP(TwoPDFM, FluidState) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; @@ -134,10 +134,10 @@ public: }; // disable velocity output by default -SET_BOOL_PROP(BoxTwoPDFM, VtkAddVelocity, false); +SET_BOOL_PROP(TwoPDFM, VtkAddVelocity, false); // enable gravity by default -SET_BOOL_PROP(BoxTwoPDFM, ProblemEnableGravity, true); +SET_BOOL_PROP(TwoPDFM, ProblemEnableGravity, true); } // end namespace Properties } // end namespace Dumux diff --git a/dumux/implicit/2pni/2pniproperties.hh b/dumux/implicit/2pni/2pniproperties.hh index 43da2c0ed4..7a77f2d0a9 100644 --- a/dumux/implicit/2pni/2pniproperties.hh +++ b/dumux/implicit/2pni/2pniproperties.hh @@ -38,8 +38,10 @@ namespace Properties // Type tags ////////////////////////////////////////////////////////////////// -//! The type tag for the non-isothermal two-phase problems -NEW_TYPE_TAG(BoxTwoPNI, INHERITS_FROM(BoxTwoP)); +//! The type tags for the implicit non-isothermal two-phase problems +NEW_TYPE_TAG(TwoPNI, INHERITS_FROM(TwoP)); +NEW_TYPE_TAG(BoxTwoPNI, INHERITS_FROM(BoxModel, TwoPNI)); +NEW_TYPE_TAG(CCTwoPNI, INHERITS_FROM(CCModel, TwoPNI)); } } diff --git a/dumux/implicit/2pni/2pnipropertydefaults.hh b/dumux/implicit/2pni/2pnipropertydefaults.hh index 2a96f75eb1..d19cbe21b6 100644 --- a/dumux/implicit/2pni/2pnipropertydefaults.hh +++ b/dumux/implicit/2pni/2pnipropertydefaults.hh @@ -46,24 +46,24 @@ namespace Properties // Property values ////////////////////////////////////////////////////////////////// -SET_INT_PROP(BoxTwoPNI, NumEq, 3); //!< set the number of equations to 3 +SET_INT_PROP(TwoPNI, NumEq, 3); //!< set the number of equations to 3 //! Use the 2pni local jacobian operator for the 2pni model -SET_TYPE_PROP(BoxTwoPNI, +SET_TYPE_PROP(TwoPNI, LocalResidual, TwoPNILocalResidual<TypeTag>); //! the Model property -SET_TYPE_PROP(BoxTwoPNI, Model, TwoPNIModel<TypeTag>); +SET_TYPE_PROP(TwoPNI, Model, TwoPNIModel<TypeTag>); //! the VolumeVariables property -SET_TYPE_PROP(BoxTwoPNI, VolumeVariables, TwoPNIVolumeVariables<TypeTag>); +SET_TYPE_PROP(TwoPNI, VolumeVariables, TwoPNIVolumeVariables<TypeTag>); //! the FluxVariables property -SET_TYPE_PROP(BoxTwoPNI, FluxVariables, TwoPNIFluxVariables<TypeTag>); +SET_TYPE_PROP(TwoPNI, FluxVariables, TwoPNIFluxVariables<TypeTag>); //! The indices required by the non-isothermal two-phase model -SET_TYPE_PROP(BoxTwoPNI, Indices, TwoPNIIndices<TypeTag, 0>); +SET_TYPE_PROP(TwoPNI, Indices, TwoPNIIndices<TypeTag, 0>); } diff --git a/dumux/implicit/3p3c/3p3cproperties.hh b/dumux/implicit/3p3c/3p3cproperties.hh index 29d4e3416c..b3f5a415e5 100644 --- a/dumux/implicit/3p3c/3p3cproperties.hh +++ b/dumux/implicit/3p3c/3p3cproperties.hh @@ -28,6 +28,7 @@ #define DUMUX_3P3C_PROPERTIES_HH #include <dumux/implicit/box/boxproperties.hh> +#include <dumux/implicit/cellcentered/ccproperties.hh> namespace Dumux { @@ -38,8 +39,10 @@ namespace Properties // Type tags ////////////////////////////////////////////////////////////////// -//! The type tag for the isothermal single phase problems -NEW_TYPE_TAG(BoxThreePThreeC, INHERITS_FROM(BoxModel)); +//! The type tags for the implicit three-phase three-component problems +NEW_TYPE_TAG(ThreePThreeC); +NEW_TYPE_TAG(BoxThreePThreeC, INHERITS_FROM(BoxModel, ThreePThreeC)); +NEW_TYPE_TAG(CCThreePThreeC, INHERITS_FROM(CCModel, ThreePThreeC)); ////////////////////////////////////////////////////////////////// // Property tags diff --git a/dumux/implicit/3p3c/3p3cpropertydefaults.hh b/dumux/implicit/3p3c/3p3cpropertydefaults.hh index 1815459d88..a644c778c9 100644 --- a/dumux/implicit/3p3c/3p3cpropertydefaults.hh +++ b/dumux/implicit/3p3c/3p3cpropertydefaults.hh @@ -55,7 +55,7 @@ namespace Properties { * We just forward the number from the fluid system and use an static * assert to make sure it is 2. */ -SET_PROP(BoxThreePThreeC, NumComponents) +SET_PROP(ThreePThreeC, NumComponents) { private: typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; @@ -73,7 +73,7 @@ SET_PROP(BoxThreePThreeC, NumComponents) * We just forward the number from the fluid system and use an static * assert to make sure it is 2. */ -SET_PROP(BoxThreePThreeC, NumPhases) +SET_PROP(ThreePThreeC, NumPhases) { private: typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; @@ -84,50 +84,50 @@ SET_PROP(BoxThreePThreeC, NumPhases) "Only fluid systems with 3 phases are supported by the 3p3c model!"); }; -SET_INT_PROP(BoxThreePThreeC, NumEq, 3); //!< set the number of equations to 2 +SET_INT_PROP(ThreePThreeC, NumEq, 3); //!< set the number of equations to 2 /*! * \brief Set the property for the material parameters by extracting * it from the material law. */ -SET_TYPE_PROP(BoxThreePThreeC, MaterialLawParams, typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params); +SET_TYPE_PROP(ThreePThreeC, MaterialLawParams, typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params); //! The local residual function of the conservation equations -SET_TYPE_PROP(BoxThreePThreeC, LocalResidual, ThreePThreeCLocalResidual<TypeTag>); +SET_TYPE_PROP(ThreePThreeC, LocalResidual, ThreePThreeCLocalResidual<TypeTag>); //! Use the 3p3c specific newton controller for the 3p3c model -SET_TYPE_PROP(BoxThreePThreeC, NewtonController, ThreePThreeCNewtonController<TypeTag>); +SET_TYPE_PROP(ThreePThreeC, NewtonController, ThreePThreeCNewtonController<TypeTag>); //! the Model property -SET_TYPE_PROP(BoxThreePThreeC, Model, ThreePThreeCModel<TypeTag>); +SET_TYPE_PROP(ThreePThreeC, Model, ThreePThreeCModel<TypeTag>); //! the VolumeVariables property -SET_TYPE_PROP(BoxThreePThreeC, VolumeVariables, ThreePThreeCVolumeVariables<TypeTag>); +SET_TYPE_PROP(ThreePThreeC, VolumeVariables, ThreePThreeCVolumeVariables<TypeTag>); //! the FluxVariables property -SET_TYPE_PROP(BoxThreePThreeC, FluxVariables, ThreePThreeCFluxVariables<TypeTag>); +SET_TYPE_PROP(ThreePThreeC, FluxVariables, ThreePThreeCFluxVariables<TypeTag>); //! define the base flux variables to realize Darcy flow -SET_TYPE_PROP(BoxThreePThreeC, BaseFluxVariables, BoxDarcyFluxVariables<TypeTag>); +SET_TYPE_PROP(ThreePThreeC, BaseFluxVariables, BoxDarcyFluxVariables<TypeTag>); //! the upwind factor for the mobility. -SET_SCALAR_PROP(BoxThreePThreeC, ImplicitMassUpwindWeight, 1.0); +SET_SCALAR_PROP(ThreePThreeC, ImplicitMassUpwindWeight, 1.0); //! set default mobility upwind weight to 1.0, i.e. fully upwind -SET_SCALAR_PROP(BoxThreePThreeC, ImplicitMobilityUpwindWeight, 1.0); +SET_SCALAR_PROP(ThreePThreeC, ImplicitMobilityUpwindWeight, 1.0); //! Determines whether a constraint solver should be used explicitly -SET_BOOL_PROP(BoxThreePThreeC, UseConstraintSolver, false); +SET_BOOL_PROP(ThreePThreeC, UseConstraintSolver, false); //! The indices required by the isothermal 3p3c model -SET_TYPE_PROP(BoxThreePThreeC, Indices, ThreePThreeCIndices<TypeTag, /*PVOffset=*/0>); +SET_TYPE_PROP(ThreePThreeC, Indices, ThreePThreeCIndices<TypeTag, /*PVOffset=*/0>); //! The spatial parameters to be employed. //! Use BoxSpatialParams by default. -SET_TYPE_PROP(BoxThreePThreeC, SpatialParams, BoxSpatialParams<TypeTag>); +SET_TYPE_PROP(ThreePThreeC, SpatialParams, BoxSpatialParams<TypeTag>); // enable gravity by default -SET_BOOL_PROP(BoxThreePThreeC, ProblemEnableGravity, true); +SET_BOOL_PROP(ThreePThreeC, ProblemEnableGravity, true); //! default value for the forchheimer coefficient // Source: Ward, J.C. 1964 Turbulent flow in porous media. ASCE J. Hydraul. Div 90. diff --git a/dumux/implicit/3p3cni/3p3cniproperties.hh b/dumux/implicit/3p3cni/3p3cniproperties.hh index 030449838e..009cf1abc4 100644 --- a/dumux/implicit/3p3cni/3p3cniproperties.hh +++ b/dumux/implicit/3p3cni/3p3cniproperties.hh @@ -39,8 +39,10 @@ namespace Properties // Type tags ////////////////////////////////////////////////////////////////// -//! The type tag for the non-isothermal three-phase, three-component problems -NEW_TYPE_TAG(BoxThreePThreeCNI, INHERITS_FROM(BoxThreePThreeC)); +//! The type tags for the implicit non-isothermal three-phase three-component problems +NEW_TYPE_TAG(ThreePThreeCNI, INHERITS_FROM(ThreePThreeC)); +NEW_TYPE_TAG(BoxThreePThreeCNI, INHERITS_FROM(BoxModel, ThreePThreeCNI)); +NEW_TYPE_TAG(CCThreePThreeCNI, INHERITS_FROM(CCModel, ThreePThreeCNI)); } } diff --git a/dumux/implicit/3p3cni/3p3cnipropertydefaults.hh b/dumux/implicit/3p3cni/3p3cnipropertydefaults.hh index bddfccabc9..ee65746658 100644 --- a/dumux/implicit/3p3cni/3p3cnipropertydefaults.hh +++ b/dumux/implicit/3p3cni/3p3cnipropertydefaults.hh @@ -45,25 +45,25 @@ namespace Properties // Property values ////////////////////////////////////////////////////////////////// -SET_INT_PROP(BoxThreePThreeCNI, NumEq, 4); //!< set the number of equations to 4 +SET_INT_PROP(ThreePThreeCNI, NumEq, 4); //!< set the number of equations to 4 //! Use the 3p3cni local jacobian operator for the 3p3cni model -SET_TYPE_PROP(BoxThreePThreeCNI, +SET_TYPE_PROP(ThreePThreeCNI, LocalResidual, ThreePThreeCNILocalResidual<TypeTag>); //! the Model property -SET_TYPE_PROP(BoxThreePThreeCNI, Model, ThreePThreeCNIModel<TypeTag>); +SET_TYPE_PROP(ThreePThreeCNI, Model, ThreePThreeCNIModel<TypeTag>); //! the VolumeVariables property -SET_TYPE_PROP(BoxThreePThreeCNI, VolumeVariables, ThreePThreeCNIVolumeVariables<TypeTag>); +SET_TYPE_PROP(ThreePThreeCNI, VolumeVariables, ThreePThreeCNIVolumeVariables<TypeTag>); //! the FluxVariables property -SET_TYPE_PROP(BoxThreePThreeCNI, FluxVariables, ThreePThreeCNIFluxVariables<TypeTag>); +SET_TYPE_PROP(ThreePThreeCNI, FluxVariables, ThreePThreeCNIFluxVariables<TypeTag>); //! The indices required by the non-isothermal 3p3c model -SET_TYPE_PROP(BoxThreePThreeCNI, Indices, ThreePThreeCNIIndices<TypeTag, 0>); +SET_TYPE_PROP(ThreePThreeCNI, Indices, ThreePThreeCNIIndices<TypeTag, 0>); } diff --git a/dumux/implicit/mpnc/mpncproperties.hh b/dumux/implicit/mpnc/mpncproperties.hh index 32651752ec..160fc74846 100644 --- a/dumux/implicit/mpnc/mpncproperties.hh +++ b/dumux/implicit/mpnc/mpncproperties.hh @@ -20,6 +20,7 @@ #define DUMUX_MPNC_PROPERTIES_HH #include <dumux/implicit/box/boxproperties.hh> +#include <dumux/implicit/cellcentered/ccproperties.hh> /*! * \ingroup Properties @@ -37,10 +38,10 @@ namespace Properties // Type tags ////////////////////////////////////////////////////////////////// -/*! - * \brief Define the type tag for the compositional twophase box model. - */ -NEW_TYPE_TAG(BoxMPNC, INHERITS_FROM(BoxModel)); +//! The type tags for the implicit m-phase n-component problems +NEW_TYPE_TAG(MPNC); +NEW_TYPE_TAG(BoxMPNC, INHERITS_FROM(BoxModel, MPNC)); +NEW_TYPE_TAG(CCMPNC, INHERITS_FROM(CCModel, MPNC)); ////////////////////////////////////////////////////////////////// // Property tags diff --git a/dumux/implicit/mpnc/mpncpropertydefaults.hh b/dumux/implicit/mpnc/mpncpropertydefaults.hh index 0ead27ef49..04c5948613 100644 --- a/dumux/implicit/mpnc/mpncpropertydefaults.hh +++ b/dumux/implicit/mpnc/mpncpropertydefaults.hh @@ -57,7 +57,7 @@ namespace Properties * * We just forward the number from the fluid system. */ -SET_PROP(BoxMPNC, NumComponents) +SET_PROP(MPNC, NumComponents) { private: typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; @@ -72,7 +72,7 @@ public: * We just forward the number from the fluid system and use an static * assert to make sure it is 2. */ -SET_PROP(BoxMPNC, NumPhases) +SET_PROP(MPNC, NumPhases) { private: typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; @@ -84,7 +84,7 @@ public: /*! * \brief Set the property for the number of equations and primary variables. */ -SET_PROP(BoxMPNC, NumEq) +SET_PROP(MPNC, NumEq) { private: typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; @@ -97,7 +97,7 @@ public: * \brief Set the property for the material parameters by extracting * it from the material law. */ -SET_PROP(BoxMPNC, MaterialLawParams) +SET_PROP(MPNC, MaterialLawParams) { private: typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw; @@ -112,7 +112,7 @@ public: * * \deprecated version. Use "ConstraintSolver" instead of "CompositionFromFugacitiesSolver" */ -SET_PROP(BoxMPNC, CompositionFromFugacitiesSolver) // DEPRECATED version. Use "ConstraintSolver" instead of "CompositionFromFugacitiesSolver" +SET_PROP(MPNC, CompositionFromFugacitiesSolver) // DEPRECATED version. Use "ConstraintSolver" instead of "CompositionFromFugacitiesSolver" { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; @@ -126,7 +126,7 @@ public: * \brief Set the thermodynamic constraint solver which calculates the * composition of any phase given all component fugacities. */ -SET_PROP(BoxMPNC, ConstraintSolver) +SET_PROP(MPNC, ConstraintSolver) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; @@ -138,68 +138,68 @@ public: //! Use the MpNc local jacobian operator for the MpNc model -SET_TYPE_PROP(BoxMPNC, +SET_TYPE_PROP(MPNC, LocalResidual, MPNCLocalResidual<TypeTag>); //! Use the MpNc specific newton controller for the MpNc model -SET_PROP(BoxMPNC, NewtonController) +SET_PROP(MPNC, NewtonController) {public: typedef MPNCNewtonController<TypeTag> type; }; //! the Model property -SET_TYPE_PROP(BoxMPNC, Model, MPNCModel<TypeTag>); +SET_TYPE_PROP(MPNC, Model, MPNCModel<TypeTag>); //! use an isothermal model by default -SET_BOOL_PROP(BoxMPNC, EnableEnergy, false); +SET_BOOL_PROP(MPNC, EnableEnergy, false); //! disable diffusion by default -SET_BOOL_PROP(BoxMPNC, EnableDiffusion, false); +SET_BOOL_PROP(MPNC, EnableDiffusion, false); //! disable kinetic mass transfer by default -SET_BOOL_PROP(BoxMPNC, EnableKinetic, false); +SET_BOOL_PROP(MPNC, EnableKinetic, false); //! disable kinetic energy transfer by default -SET_BOOL_PROP(BoxMPNC, EnableKineticEnergy, false); +SET_BOOL_PROP(MPNC, EnableKineticEnergy, false); //! enable smooth upwinding by default -SET_BOOL_PROP(BoxMPNC, ImplicitEnableSmoothUpwinding, false); +SET_BOOL_PROP(MPNC, ImplicitEnableSmoothUpwinding, false); //! the VolumeVariables property -SET_TYPE_PROP(BoxMPNC, VolumeVariables, MPNCVolumeVariables<TypeTag>); +SET_TYPE_PROP(MPNC, VolumeVariables, MPNCVolumeVariables<TypeTag>); //! the FluxVariables property -SET_TYPE_PROP(BoxMPNC, FluxVariables, MPNCFluxVariables<TypeTag>); +SET_TYPE_PROP(MPNC, FluxVariables, MPNCFluxVariables<TypeTag>); //! the Base of the Fluxvariables property (Darcy / Forchheimer) -SET_TYPE_PROP(BoxMPNC, BaseFluxVariables, BoxDarcyFluxVariables<TypeTag>); +SET_TYPE_PROP(MPNC, BaseFluxVariables, BoxDarcyFluxVariables<TypeTag>); //! truncate the newton update for the first few Newton iterations of a time step -SET_BOOL_PROP(BoxMPNC, NewtonEnableChop, true); +SET_BOOL_PROP(MPNC, NewtonEnableChop, true); //! The indices required by the mpnc model -SET_TYPE_PROP(BoxMPNC, Indices, MPNCIndices<TypeTag, 0>); +SET_TYPE_PROP(MPNC, Indices, MPNCIndices<TypeTag, 0>); //! the upwind weight for the mass conservation equations. -SET_SCALAR_PROP(BoxMPNC, ImplicitMassUpwindWeight, 1.0); +SET_SCALAR_PROP(MPNC, ImplicitMassUpwindWeight, 1.0); //! weight for the upwind mobility in the velocity calculation -SET_SCALAR_PROP(BoxMPNC, ImplicitMobilityUpwindWeight, 1.0); +SET_SCALAR_PROP(MPNC, ImplicitMobilityUpwindWeight, 1.0); //! The spatial parameters to be employed. //! Use BoxSpatialParams by default. -SET_TYPE_PROP(BoxMPNC, SpatialParams, BoxSpatialParams<TypeTag>); +SET_TYPE_PROP(MPNC, SpatialParams, BoxSpatialParams<TypeTag>); //! The VTK writer module for common quantities -SET_PROP(BoxMPNC, MPNCVtkCommonModule) +SET_PROP(MPNC, MPNCVtkCommonModule) { typedef MPNCVtkWriterCommon<TypeTag> type; }; //! The VTK writer module for quantities which are specific for each //! mass module -SET_PROP(BoxMPNC, MPNCVtkMassModule) +SET_PROP(MPNC, MPNCVtkMassModule) { private: enum { enableKinetic = GET_PROP_VALUE(TypeTag, EnableKinetic) }; public: typedef MPNCVtkWriterMass<TypeTag, enableKinetic> type; @@ -207,7 +207,7 @@ public: typedef MPNCVtkWriterMass<TypeTag, enableKinetic> type; //! The VTK writer module for quantities which are specific for each //! energy module -SET_PROP(BoxMPNC, MPNCVtkEnergyModule) +SET_PROP(MPNC, MPNCVtkEnergyModule) { private: enum { enableEnergy = GET_PROP_VALUE(TypeTag, EnableEnergy) }; @@ -217,7 +217,7 @@ public: }; //! The VTK writer for user specified data (does nothing by default) -SET_PROP(BoxMPNC, MPNCVtkCustomModule) +SET_PROP(MPNC, MPNCVtkCustomModule) { typedef MPNCVtkWriterModule<TypeTag> type; }; /*! @@ -226,7 +226,7 @@ SET_PROP(BoxMPNC, MPNCVtkCustomModule) * appropriately for the model ((non-)isothermal, equilibrium, ...). * This can be done in the problem. */ -SET_PROP(BoxMPNC, FluidState){ +SET_PROP(MPNC, FluidState){ private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; @@ -243,34 +243,34 @@ SET_SCALAR_PROP(BoxModel, SpatialParamsForchCoeff, 0.55); //!< Should the averaging of velocities be done in the Model? (By default in the output) -SET_BOOL_PROP(BoxMPNC, VelocityAveragingInModel, false); +SET_BOOL_PROP(MPNC, VelocityAveragingInModel, false); //! Specify what to add to the VTK output by default -SET_BOOL_PROP(BoxMPNC, VtkAddPorosity, true); -SET_BOOL_PROP(BoxMPNC, VtkAddBoundaryTypes, false); -SET_BOOL_PROP(BoxMPNC, VtkAddSaturations, true); -SET_BOOL_PROP(BoxMPNC, VtkAddPressures, true); -SET_BOOL_PROP(BoxMPNC, VtkAddVarPressures, false); -SET_BOOL_PROP(BoxMPNC, VtkAddVelocities, false); -SET_BOOL_PROP(BoxMPNC, VtkAddDensities, true); -SET_BOOL_PROP(BoxMPNC, VtkAddMobilities, true); -SET_BOOL_PROP(BoxMPNC, VtkAddAverageMolarMass, false); -SET_BOOL_PROP(BoxMPNC, VtkAddMassFractions, false); -SET_BOOL_PROP(BoxMPNC, VtkAddMoleFractions, true); -SET_BOOL_PROP(BoxMPNC, VtkAddMolarities, false); -SET_BOOL_PROP(BoxMPNC, VtkAddFugacities, false); -SET_BOOL_PROP(BoxMPNC, VtkAddFugacityCoefficients, false); -SET_BOOL_PROP(BoxMPNC, VtkAddTemperatures, false); -SET_BOOL_PROP(BoxMPNC, VtkAddEnthalpies, true); -SET_BOOL_PROP(BoxMPNC, VtkAddInternalEnergies, false); -SET_BOOL_PROP(BoxMPNC, VtkAddReynolds, false); -SET_BOOL_PROP(BoxMPNC, VtkAddPrandtl, false); -SET_BOOL_PROP(BoxMPNC, VtkAddNusselt, false); -SET_BOOL_PROP(BoxMPNC, VtkAddInterfacialArea, false); -SET_BOOL_PROP(BoxMPNC, VtkAddxEquil, false); +SET_BOOL_PROP(MPNC, VtkAddPorosity, true); +SET_BOOL_PROP(MPNC, VtkAddBoundaryTypes, false); +SET_BOOL_PROP(MPNC, VtkAddSaturations, true); +SET_BOOL_PROP(MPNC, VtkAddPressures, true); +SET_BOOL_PROP(MPNC, VtkAddVarPressures, false); +SET_BOOL_PROP(MPNC, VtkAddVelocities, false); +SET_BOOL_PROP(MPNC, VtkAddDensities, true); +SET_BOOL_PROP(MPNC, VtkAddMobilities, true); +SET_BOOL_PROP(MPNC, VtkAddAverageMolarMass, false); +SET_BOOL_PROP(MPNC, VtkAddMassFractions, false); +SET_BOOL_PROP(MPNC, VtkAddMoleFractions, true); +SET_BOOL_PROP(MPNC, VtkAddMolarities, false); +SET_BOOL_PROP(MPNC, VtkAddFugacities, false); +SET_BOOL_PROP(MPNC, VtkAddFugacityCoefficients, false); +SET_BOOL_PROP(MPNC, VtkAddTemperatures, false); +SET_BOOL_PROP(MPNC, VtkAddEnthalpies, true); +SET_BOOL_PROP(MPNC, VtkAddInternalEnergies, false); +SET_BOOL_PROP(MPNC, VtkAddReynolds, false); +SET_BOOL_PROP(MPNC, VtkAddPrandtl, false); +SET_BOOL_PROP(MPNC, VtkAddNusselt, false); +SET_BOOL_PROP(MPNC, VtkAddInterfacialArea, false); +SET_BOOL_PROP(MPNC, VtkAddxEquil, false); // enable gravity by default -SET_BOOL_PROP(BoxMPNC, ProblemEnableGravity, true); +SET_BOOL_PROP(MPNC, ProblemEnableGravity, true); } diff --git a/dumux/implicit/richards/richardsproperties.hh b/dumux/implicit/richards/richardsproperties.hh index 67b1ed751f..78cd276a9c 100644 --- a/dumux/implicit/richards/richardsproperties.hh +++ b/dumux/implicit/richards/richardsproperties.hh @@ -29,6 +29,7 @@ #define DUMUX_RICHARDS_PROPERTIES_HH #include <dumux/implicit/box/boxproperties.hh> +#include <dumux/implicit/cellcentered/ccproperties.hh> namespace Dumux { @@ -42,8 +43,10 @@ namespace Properties { // Type tags ////////////////////////////////////////////////////////////////// -//! The type tag for problems discretized using the Richards model -NEW_TYPE_TAG(BoxRichards, INHERITS_FROM(BoxModel)); +//! The type tags for the implicit Richards problems +NEW_TYPE_TAG(Richards); +NEW_TYPE_TAG(BoxRichards, INHERITS_FROM(BoxModel, Richards)); +NEW_TYPE_TAG(CCRichards, INHERITS_FROM(CCModel, Richards)); ////////////////////////////////////////////////////////////////// // Property tags diff --git a/dumux/implicit/richards/richardspropertydefaults.hh b/dumux/implicit/richards/richardspropertydefaults.hh index 44aeb46141..2e312d0805 100644 --- a/dumux/implicit/richards/richardspropertydefaults.hh +++ b/dumux/implicit/richards/richardspropertydefaults.hh @@ -49,46 +49,46 @@ namespace Properties { // Properties values ////////////////////////////////////////////////////////////////// //! Number of equations required by the model -SET_INT_PROP(BoxRichards, NumEq, 1); +SET_INT_PROP(Richards, NumEq, 1); //! Number of fluid phases considered -SET_INT_PROP(BoxRichards, NumPhases, 2); +SET_INT_PROP(Richards, NumPhases, 2); //! The local residual operator -SET_TYPE_PROP(BoxRichards, +SET_TYPE_PROP(Richards, LocalResidual, RichardsLocalResidual<TypeTag>); //! The global model used -SET_TYPE_PROP(BoxRichards, Model, RichardsModel<TypeTag>); +SET_TYPE_PROP(Richards, Model, RichardsModel<TypeTag>); //! The class for the volume averaged quantities -SET_TYPE_PROP(BoxRichards, VolumeVariables, RichardsVolumeVariables<TypeTag>); +SET_TYPE_PROP(Richards, VolumeVariables, RichardsVolumeVariables<TypeTag>); //! The class for the quantities required for the flux calculation -SET_TYPE_PROP(BoxRichards, FluxVariables, BoxDarcyFluxVariables<TypeTag>); +SET_TYPE_PROP(Richards, FluxVariables, BoxDarcyFluxVariables<TypeTag>); //! The class of the newton controller -SET_TYPE_PROP(BoxRichards, NewtonController, RichardsNewtonController<TypeTag>); +SET_TYPE_PROP(Richards, NewtonController, RichardsNewtonController<TypeTag>); //! The upwind weight for the mass conservation equations -SET_SCALAR_PROP(BoxRichards, ImplicitMassUpwindWeight, 1.0); +SET_SCALAR_PROP(Richards, ImplicitMassUpwindWeight, 1.0); //! weight for the upwind mobility in the velocity calculation -SET_SCALAR_PROP(BoxRichards, ImplicitMobilityUpwindWeight, 1.0); +SET_SCALAR_PROP(Richards, ImplicitMobilityUpwindWeight, 1.0); //! The class with all index definitions for the model -SET_TYPE_PROP(BoxRichards, Indices, RichardsIndices<TypeTag>); +SET_TYPE_PROP(Richards, Indices, RichardsIndices<TypeTag>); //! The spatial parameters to be employed. //! Use BoxSpatialParams by default. -SET_TYPE_PROP(BoxRichards, SpatialParams, BoxSpatialParams<TypeTag>); +SET_TYPE_PROP(Richards, SpatialParams, BoxSpatialParams<TypeTag>); /*! * \brief Set type of the parameter objects for the material law * * By default this is just retrieved from the material law. */ -SET_PROP(BoxRichards, MaterialLawParams) +SET_PROP(Richards, MaterialLawParams) { private: typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw; @@ -107,7 +107,7 @@ public: * of the liquid phase is _much_ lower than the viscosity of the * wetting phase. */ -SET_PROP(BoxRichards, WettingPhase) +SET_PROP(Richards, WettingPhase) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; public: @@ -122,7 +122,7 @@ public: * specified by the problem for the Richards model to work because the * Richards model does not conserve the non-wetting phase. */ -SET_PROP(BoxRichards, NonwettingPhase) +SET_PROP(Richards, NonwettingPhase) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; public: @@ -138,7 +138,7 @@ public: * using different fluid systems in conjunction with the Richards * model only makes very limited sense. */ -SET_PROP(BoxRichards, FluidSystem) +SET_PROP(Richards, FluidSystem) { private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; typedef typename GET_PROP_TYPE(TypeTag, WettingPhase) WettingPhase; @@ -151,7 +151,7 @@ public: }; // enable gravity by default -SET_BOOL_PROP(BoxRichards, ProblemEnableGravity, true); +SET_BOOL_PROP(Richards, ProblemEnableGravity, true); //! default value for the forchheimer coefficient // Source: Ward, J.C. 1964 Turbulent flow in porous media. ASCE J. Hydraul. Div 90. -- GitLab