85#ifndef DUMUX_2PNC_MODEL_HH
86#define DUMUX_2PNC_MODEL_HH
88#include <dune/common/fvector.hh>
118template<
int nComp,
bool useMol,
bool setMoleFractionForFP, TwoPFormulation formulation,
int repCompEqIdx = nComp>
123 static constexpr int numEq() {
return nComp; }
134 static constexpr bool useMoles() {
return useMol; }
140namespace Properties {
154template<
class TypeTag>
158 using PrimaryVariablesVector = Dune::FieldVector<GetPropType<TypeTag, Properties::Scalar>,
165template<
class TypeTag>
177 static constexpr bool enableIS = getPropValue<TypeTag, Properties::EnableBoxInterfaceSolver>();
185 template<
class BaseTraits,
class DT,
class EDM>
188 using DiffusionType = DT;
197template<
class TypeTag>
203 static_assert(FluidSystem::numPhases == 2,
"Only fluid systems with 2 fluid phases are supported by the 2p-nc model!");
206 getPropValue<TypeTag, Properties::UseMoles>(),
207 getPropValue<TypeTag, Properties::SetMoleFractionsForFirstPhase>(),
208 getPropValue<TypeTag, Properties::Formulation>(), getPropValue<TypeTag, Properties::ReplaceCompEqIdx>()>;
210template<
class TypeTag>
214template<
class TypeTag>
217template<
class TypeTag>
220template<
class TypeTag>
224template<
class TypeTag>
228template<
class TypeTag>
230template<
class TypeTag>
231struct UseMoles<TypeTag, TTag::TwoPNC> {
static constexpr bool value =
true; };
234template<
class TypeTag>
238template<
class TypeTag>
253template<
class TypeTag>
263template<
class TypeTag>
275 static constexpr bool enableIS = getPropValue<TypeTag, Properties::EnableBoxInterfaceSolver>();
284 template<
class BaseTraits,
class DT,
class EDM,
class ETCM>
287 using DiffusionType = DT;
289 using EffectiveThermalConductivityModel = ETCM;
296template<
class TypeTag>
300template<
class TypeTag>
Relation for the saturation-dependent effective thermal conductivity.
Relation for the saturation-dependent effective diffusion coefficient.
The base class for spatial parameters of multi-phase problems using a fully implicit discretization m...
Defines an enumeration for the formulations accepted by the two-phase model.
A primary variable vector with a state to allow variable switches.
TwoPFormulation
Enumerates the formulations which the two-phase model accepts.
Definition: formulation.hh:35
@ p0s1
first phase pressure and second phase saturation as primary variables
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
The formulation of the model.
Definition: common/properties.hh:169
Set the mole fraction in the wetting or nonwetting phase.
Definition: common/properties.hh:184
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/2p/model.hh:117
Class that computes the nonwetting saturation in an scv from the saturation at the global degree of f...
Definition: saturationreconstruction.hh:43
The indices for the isothermal two-phase n-component model.
Definition: porousmediumflow/2pnc/indices.hh:35
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
static constexpr int numFluidPhases()
Definition: porousmediumflow/2pnc/model.hh:124
static constexpr int numEq()
Definition: porousmediumflow/2pnc/model.hh:123
static constexpr int replaceCompEqIdx()
Definition: porousmediumflow/2pnc/model.hh:126
static constexpr bool enableAdvection()
Definition: porousmediumflow/2pnc/model.hh:128
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/2pnc/model.hh:129
static constexpr bool enableThermalNonEquilibrium()
Definition: porousmediumflow/2pnc/model.hh:131
static constexpr int numFluidComponents()
Definition: porousmediumflow/2pnc/model.hh:125
static constexpr bool useMoles()
Definition: porousmediumflow/2pnc/model.hh:134
static constexpr bool enableChemicalNonEquilibrium()
Definition: porousmediumflow/2pnc/model.hh:132
static constexpr TwoPFormulation priVarFormulation()
Definition: porousmediumflow/2pnc/model.hh:137
static constexpr bool setMoleFractionsForFirstPhase()
Definition: porousmediumflow/2pnc/model.hh:135
static constexpr bool enableEnergyBalance()
Definition: porousmediumflow/2pnc/model.hh:130
Definition: porousmediumflow/2pnc/model.hh:146
std::tuple< PorousMediumFlow > InheritsFrom
Definition: porousmediumflow/2pnc/model.hh:146
Definition: porousmediumflow/2pnc/model.hh:147
std::tuple< TwoPNC > InheritsFrom
Definition: porousmediumflow/2pnc/model.hh:147
GetPropType< TypeTag, Properties::BaseModelTraits > type
Definition: porousmediumflow/2pnc/model.hh:211
Contains the quantities which are are constant within a finite volume in the two-phase,...
Definition: porousmediumflow/2pnc/volumevariables.hh:60
Element-wise calculation of the local residual for problems using compositional fully implicit model.
Definition: porousmediumflow/compositional/localresidual.hh:43
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.
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 compositional fully implicit 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.