78#ifndef DUMUX_2P2C_MODEL_HH
79#define DUMUX_2P2C_MODEL_HH
117template<
class TypeTag>
122 static_assert(FluidSystem::numComponents == 2,
"Only fluid systems with 2 components are supported by the 2p-2c model!");
123 static_assert(FluidSystem::numPhases == 2,
"Only fluid systems with 2 phases are supported by the 2p-2c model!");
127 getPropValue<TypeTag, Properties::UseMoles>(),
129 getPropValue<TypeTag, Properties::Formulation>(),
130 getPropValue<TypeTag, Properties::ReplaceCompEqIdx>()>;
132template<
class TypeTag>
136template<
class TypeTag>
148 static constexpr bool enableIS = getPropValue<TypeTag, Properties::EnableBoxInterfaceSolver>();
149 static_assert(FSY::numComponents == 2,
"Only fluid systems with 2 components are supported by the 2p2c model!");
150 static_assert(FSY::numPhases == 2,
"Only fluid systems with 2 phases are supported by the 2p2c model!");
157 template<
class BaseTraits,
class DT,
class EDM>
160 using DiffusionType = DT;
163 static constexpr bool useConstraintSolver = getPropValue<TypeTag, Properties::UseConstraintSolver>();
169template<
class TypeTag>
177template<
class TypeTag>
187template<
class TypeTag>
199 static constexpr bool enableIS = getPropValue<TypeTag, Properties::EnableBoxInterfaceSolver>();
208 template<
class BaseTraits,
class DT,
class EDM,
class ETCM>
211 using DiffusionType = DT;
213 using EffectiveThermalConductivityModel = ETCM;
221template<
class TypeTag>
225template<
class TypeTag>
230template<
class TwoPTwoCModelTraits>
236namespace Properties {
248template<
class TypeTag>
252template<
class TypeTag>
255template<
class TypeTag>
260 static constexpr bool enableTNE = getPropValue<TypeTag, Properties::EnableThermalNonEquilibrium>();
261 static constexpr bool enableCNE = getPropValue<TypeTag, Properties::EnableChemicalNonEquilibrium>();
262 static constexpr int numEF = getPropValue<TypeTag, Properties::NumEnergyEqFluid>();
263 static constexpr int numES = getPropValue<TypeTag, Properties::NumEnergyEqSolid>();
264 static constexpr auto nf = getPropValue<TypeTag, Properties::NusseltFormulation>();
265 static constexpr auto ns = getPropValue<TypeTag, Properties::SherwoodFormulation>();
273template<
class TypeTag>
285template<
class TypeTag>
290template<
class TypeTag>
302 static constexpr bool enableIS = getPropValue<TypeTag, Properties::EnableBoxInterfaceSolver>();
309 template<
class BaseTraits,
class DT,
class EDM>
312 using DiffusionType = DT;
316 static constexpr bool useConstraintSolver = getPropValue<TypeTag, Properties::UseConstraintSolver>();
331template<
class TypeTag>
337 static constexpr bool enableTNE = getPropValue<TypeTag, Properties::EnableThermalNonEquilibrium>();
338 static constexpr bool enableCNE = getPropValue<TypeTag, Properties::EnableChemicalNonEquilibrium>();
339 static constexpr int numEF = getPropValue<TypeTag, Properties::NumEnergyEqFluid>();
340 static constexpr int numES = getPropValue<TypeTag, Properties::NumEnergyEqSolid>();
341 static constexpr auto nf = getPropValue<TypeTag, Properties::NusseltFormulation>();
342 static constexpr auto ns = getPropValue<TypeTag, Properties::SherwoodFormulation>();
350template<
class TypeTag>
360template<
class TypeTag>
372 static constexpr bool enableIS = getPropValue<TypeTag, Properties::EnableBoxInterfaceSolver>();
381 template<
class BaseTraits,
class DT,
class EDM,
class ETCM>
384 using DiffusionType = DT;
386 using EffectiveThermalConductivityModel = ETCM;
388 static constexpr bool useConstraintSolver = getPropValue<TypeTag, Properties::UseConstraintSolver>();
395template<
class TypeTag>
Relation for the saturation-dependent effective thermal conductivity.
Relation for the saturation-dependent effective thermal conductivity.
Defines an enumeration for the formulations accepted by the two-phase model.
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition: propertysystem.hh:149
Traits class encapsulating model specifications.
Definition: common/properties.hh:66
Model traits to be used as a base for nonisothermal, mineralization ... models.
Definition: common/properties.hh:68
A class helping models to define input and output fields.
Definition: common/properties.hh:76
The secondary variables within a sub-control volume.
Definition: common/properties.hh:118
The employed model for the computation of the effective diffusivity.
Definition: common/properties.hh:175
Model to be used for the calculation of the effective conductivity.
Definition: common/properties.hh:177
Whether to use a contraint solver for computing the secondary variables.
Definition: common/properties.hh:184
the formulation of the pressure e.g most wetting first
Definition: common/properties.hh:262
Definition: common/properties.hh:264
Definition: common/properties.hh:268
Relation for the saturation-dependent effective thermal conductivity.
Definition: thermalconductivitysimplefluidlumping.hh:38
Relation for the saturation-dependent effective thermal conductivity.
Definition: thermalconductivitysomerton.hh:60
Traits class for the two-phase model.
Definition: porousmediumflow/2p/model.hh:118
Class that computes the non-wetting saturation in an scv from the saturation at the global degree of ...
Definition: saturationreconstruction.hh:43
Definition: porousmediumflow/2p2c/model.hh:106
std::tuple< TwoPNC > InheritsFrom
Definition: porousmediumflow/2p2c/model.hh:106
Definition: porousmediumflow/2p2c/model.hh:107
std::tuple< TwoPTwoC > InheritsFrom
Definition: porousmediumflow/2p2c/model.hh:107
GetPropType< TypeTag, Properties::BaseModelTraits > type
Definition: porousmediumflow/2p2c/model.hh:133
Definition: porousmediumflow/2p2c/model.hh:232
static constexpr int numConstraintEq()
Definition: porousmediumflow/2p2c/model.hh:233
Definition: porousmediumflow/2p2c/model.hh:241
std::tuple< NonEquilibrium, TwoPTwoC > InheritsFrom
Definition: porousmediumflow/2p2c/model.hh:241
Definition: porousmediumflow/2p2c/model.hh:327
std::tuple< TwoPTwoCNonEquil > InheritsFrom
Definition: porousmediumflow/2p2c/model.hh:327
Definition: porousmediumflow/2p2c/volumevariables.hh:44
Adds I/O fields specific to the TwoPNC model.
Definition: porousmediumflow/2pnc/iofields.hh:39
Specifies a number properties of two-phase n-component models.
Definition: porousmediumflow/2pnc/model.hh:120
Element-wise calculation of the local residual for problems using compositional fully implicit model.
Definition: porousmediumflow/compositional/localresidual.hh:43
Specifies a number properties of porous-medium flow non-equilibrium models.
Definition: porousmediumflow/nonequilibrium/model.hh:57
This class contains the volume variables required for the modules which require the specific interfac...
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:49
Adds I/O fields specific to non-isothermal models.
Definition: porousmediumflow/nonisothermal/iofields.hh:39
Specifies a number properties of non-isothermal porous medium flow models based on the specifics of a...
Definition: porousmediumflow/nonisothermal/model.hh:70
Declares all properties used in Dumux.
Adaption of the fully implicit scheme to the two-phase n-component fully implicit model.
This specifies models which are able to capture non-equilibrium mass and / or energy transfer.
The implicit non-isothermal model.
Adds I/O fields specific to non-isothermal models.
Base class for the model specific class which provides access to all volume averaged quantities.
This class contains the volume variables required for the modules which require the specific interfac...