78#ifndef DUMUX_2P2C_MODEL_HH
79#define DUMUX_2P2C_MODEL_HH
100namespace Properties {
118template<
class TypeTag>
123 static_assert(FluidSystem::numComponents == 2,
"Only fluid systems with 2 components are supported by the 2p-2c model!");
124 static_assert(FluidSystem::numPhases == 2,
"Only fluid systems with 2 phases are supported by the 2p-2c model!");
128 getPropValue<TypeTag, Properties::UseMoles>(),
130 getPropValue<TypeTag, Properties::Formulation>(),
131 getPropValue<TypeTag, Properties::ReplaceCompEqIdx>()>;
133template<
class TypeTag>
137template<
class TypeTag>
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!");
152 static constexpr bool useConstraintSolver = getPropValue<TypeTag, Properties::UseConstraintSolver>();
160template<
class TypeTag>
168template<
class TypeTag>
178template<
class TypeTag>
182template<
class TypeTag>
187template<
class TwoPTwoCModelTraits>
193namespace Properties {
205template<
class TypeTag>
209template<
class TypeTag>
212template<
class TypeTag>
217 static constexpr bool enableTNE = getPropValue<TypeTag, Properties::EnableThermalNonEquilibrium>();
218 static constexpr bool enableCNE = getPropValue<TypeTag, Properties::EnableChemicalNonEquilibrium>();
219 static constexpr int numEF = getPropValue<TypeTag, Properties::NumEnergyEqFluid>();
220 static constexpr int numES = getPropValue<TypeTag, Properties::NumEnergyEqSolid>();
221 static constexpr auto nf = getPropValue<TypeTag, Properties::NusseltFormulation>();
222 static constexpr auto ns = getPropValue<TypeTag, Properties::SherwoodFormulation>();
230template<
class TypeTag>
241template<
class TypeTag>
251template<
class TypeTag>
263 static constexpr bool useConstraintSolver = getPropValue<TypeTag, Properties::UseConstraintSolver>();
280template<
class TypeTag>
286 static constexpr bool enableTNE = getPropValue<TypeTag, Properties::EnableThermalNonEquilibrium>();
287 static constexpr bool enableCNE = getPropValue<TypeTag, Properties::EnableChemicalNonEquilibrium>();
288 static constexpr int numEF = getPropValue<TypeTag, Properties::NumEnergyEqFluid>();
289 static constexpr int numES = getPropValue<TypeTag, Properties::NumEnergyEqSolid>();
290 static constexpr auto nf = getPropValue<TypeTag, Properties::NusseltFormulation>();
291 static constexpr auto ns = getPropValue<TypeTag, Properties::SherwoodFormulation>();
299template<
class TypeTag>
309template<
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.
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
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:65
Model traits to be used as a base for nonisothermal, mineralization ... models.
Definition: common/properties.hh:67
A class helping models to define input and output fields.
Definition: common/properties.hh:78
The secondary variables within a sub-control volume.
Definition: common/properties.hh:174
Model to be used for the calculation of the effective conductivity.
Definition: common/properties.hh:233
Whether to use a contraint solver for computing the secondary variables.
Definition: common/properties.hh:240
the formulation of the pressure e.g most wetting first
Definition: common/properties.hh:318
Definition: common/properties.hh:320
Definition: common/properties.hh:324
Relation for the saturation-dependent effective thermal conductivity.
Definition: thermalconductivitysimplefluidlumping.hh:39
Relation for the saturation-dependent effective thermal conductivity.
Definition: thermalconductivitysomerton.hh:60
Definition: porousmediumflow/2p2c/model.hh:107
std::tuple< TwoPNC > InheritsFrom
Definition: porousmediumflow/2p2c/model.hh:107
Definition: porousmediumflow/2p2c/model.hh:108
std::tuple< TwoPTwoC > InheritsFrom
Definition: porousmediumflow/2p2c/model.hh:108
GetPropType< TypeTag, Properties::BaseModelTraits > type
Definition: porousmediumflow/2p2c/model.hh:134
Definition: porousmediumflow/2p2c/model.hh:189
static constexpr int numConstraintEq()
Definition: porousmediumflow/2p2c/model.hh:190
Definition: porousmediumflow/2p2c/model.hh:198
std::tuple< NonEquilibrium, TwoPTwoC > InheritsFrom
Definition: porousmediumflow/2p2c/model.hh:198
Definition: porousmediumflow/2p2c/model.hh:276
std::tuple< TwoPTwoCNonEquil > InheritsFrom
Definition: porousmediumflow/2p2c/model.hh:276
Definition: porousmediumflow/2p2c/volumevariables.hh:44
Adds I/O fields specific to the TwoPNC model.
Definition: dumux/porousmediumflow/2pnc/iofields.hh:39
Specifies a number properties of two-phase n-component models.
Definition: porousmediumflow/2pnc/model.hh:120
Traits class for the volume variables of the single-phase model.
Definition: porousmediumflow/2pnc/model.hh:152
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:58
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: dumux/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...