78#ifndef DUMUX_3P3C_MODEL_HH
79#define DUMUX_3P3C_MODEL_HH
81#include <dune/common/fvector.hh>
108template<
bool useCS,
bool useMol>
113 static constexpr int numEq() {
return 3; }
122 static constexpr bool useMoles() {
return useMol; }
125namespace Properties {
139template<
class TypeTag>
144 static_assert(FluidSystem::numComponents == 3,
"Only fluid systems with 3 components are supported by the 3p3c model!");
145 static_assert(FluidSystem::numPhases == 3,
"Only fluid systems with 3 phases are supported by the 3p3c model!");
149template<
class TypeTag>
153template<
class TypeTag>
157template<
class TypeTag>
165template<
class TypeTag>
175template<
class TypeTag>
179template<
class TypeTag>
183 using PrimaryVariablesVector = Dune::FieldVector<GetPropType<TypeTag, Properties::Scalar>,
190template<
class TypeTag>
205 template<
class BaseTraits,
class DT,
class EDM>
208 using DiffusionType = DT;
217template<
class TypeTag>
221template<
class TypeTag>
225template<
class TypeTag>
226struct UseMoles<TypeTag, TTag::ThreePThreeC> {
static constexpr bool value =
true; };
233template<
class TypeTag>
243template<
class TypeTag>
259 template<
class BaseTraits,
class DT,
class EDM,
class ETCM>
262 using DiffusionType = DT;
264 using EffectiveThermalConductivityModel = ETCM;
271template<
class TypeTag>
275template<
class TypeTag>
Relation for the saturation-dependent effective thermal conductivity.
Relation for the saturation-dependent effective diffusion coefficient.
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
The base class for spatial parameters of multi-phase problems using a fully implicit discretization m...
A primary variable vector with a state to allow variable switches.
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
A vector of primary variables.
Definition: common/properties.hh:49
Traits class encapsulating model specifications.
Definition: common/properties.hh:53
Model traits to be used as a base for nonisothermal, mineralization ... models.
Definition: common/properties.hh:55
A class helping models to define input and output fields.
Definition: common/properties.hh:63
Definition: common/properties.hh:77
Property whether to use moles or kg as amount unit for balance equations.
Definition: common/properties.hh:88
The component balance index that should be replaced by the total mass/mole balance.
Definition: common/properties.hh:90
The secondary variables within a sub-control volume.
Definition: common/properties.hh:106
The type of the fluid state to use.
Definition: common/properties.hh:157
The employed model for the computation of the effective diffusivity.
Definition: common/properties.hh:163
Model to be used for the calculation of the effective conductivity.
Definition: common/properties.hh:165
Whether to use a contraint solver for computing the secondary variables.
Definition: common/properties.hh:172
Relation for the saturation-dependent effective thermal conductivity.
Definition: somerton.hh:60
Relation for the saturation-dependent effective diffusion coefficient.
Definition: diffusivitymillingtonquirk.hh:51
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
Definition: compositional.hh:47
Traits class for the two-phase model.
Definition: porousmediumflow/3p/model.hh:106
The indices for the isothermal three-phase three-component model.
Definition: porousmediumflow/3p3c/indices.hh:35
Adds I/O fields specific to the three-phase three-component model.
Definition: porousmediumflow/3p3c/iofields.hh:38
Element-wise calculation of the Jacobian matrix for problems using the three-phase three-component fu...
Definition: porousmediumflow/3p3c/localresidual.hh:41
Specifies a number properties of two-phase models.
Definition: porousmediumflow/3p3c/model.hh:110
static constexpr bool useMoles()
Definition: porousmediumflow/3p3c/model.hh:122
static constexpr int numFluidComponents()
Definition: porousmediumflow/3p3c/model.hh:115
static constexpr int numFluidPhases()
Definition: porousmediumflow/3p3c/model.hh:114
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/3p3c/model.hh:118
static constexpr bool useConstraintSolver()
Definition: porousmediumflow/3p3c/model.hh:121
static constexpr bool enableAdvection()
Definition: porousmediumflow/3p3c/model.hh:117
static constexpr int numEq()
Definition: porousmediumflow/3p3c/model.hh:113
static constexpr bool enableEnergyBalance()
Definition: porousmediumflow/3p3c/model.hh:119
The type tags for the isothermal three-phase three-component model.
Definition: porousmediumflow/3p3c/model.hh:129
std::tuple< PorousMediumFlow > InheritsFrom
Definition: porousmediumflow/3p3c/model.hh:129
The type tags for the non-isothermal three-phase three-component model.
Definition: porousmediumflow/3p3c/model.hh:131
std::tuple< ThreePThreeC > InheritsFrom
Definition: porousmediumflow/3p3c/model.hh:131
GetPropType< TypeTag, Properties::BaseModelTraits > type
Definition: porousmediumflow/3p3c/model.hh:150
Contains the quantities which are are constant within a finite volume in the three-phase three-compon...
Definition: porousmediumflow/3p3c/volumevariables.hh:64
A primary variable vector with a state to allow variable switches.
Definition: switchableprimaryvariables.hh:38
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.
Defines a type tag and some properties for models using the box scheme.
Adaption of the fully implicit scheme to the three-phase flow model.
The implicit non-isothermal model.
Adds I/O fields specific to non-isothermal models.
Adds I/O fields specific to the tracer model.
Element-wise calculation of the local residual for problems using fully implicit tracer model.
Base class for the model specific class which provides access to all volume averaged quantities.
Defines the indices used by the non-isothermal two-phase two-component model.
Defines the primary variable and equation indices used by the isothermal tracer model.