79#ifndef DUMUX_MPNC_MODEL_HH
80#define DUMUX_MPNC_MODEL_HH
114template<
int nPhases,
int nComp, MpNcPressureFormulation formulation,
bool useM,
int repCompEqIdx = nComp>
149template<
class NonEquilTraits>
156 NonEquilTraits::numTransportEq()+NonEquilTraits::numConstraintEq() >;
159 NonEquilTraits::numEnergyEqFluid(),
160 NonEquilTraits::numEnergyEqSolid(),
161 NonEquilTraits::numEq() >;
175template<
class PV,
class FSY,
class FST,
class SSY,
class SST,
class PT,
class MT,
class DT,
class EDM>
208template<
class TypeTag>
212template<
class TypeTag>
213struct ModelTraits<TypeTag, TTag::MPNC>
219 FluidSystem::numComponents,
220 getPropValue<TypeTag, Properties::PressureFormulation>(),
221 getPropValue<TypeTag, Properties::UseMoles>(),
222 getPropValue<TypeTag, Properties::ReplaceCompEqIdx>()>;
226template<
class TypeTag>
227struct FluidState<TypeTag, TTag::MPNC>
237template<
class TypeTag>
238struct VolumeVariables<TypeTag, TTag::MPNC>
257template<
class TypeTag>
260template<
class TypeTag>
261struct UseMoles<TypeTag, TTag::MPNC> {
static constexpr bool value =
true; };
263template<
class TypeTag>
266template<
class TypeTag>
267struct PressureFormulation<TypeTag, TTag::MPNC>
274template<
class TypeTag>
282template<
class TypeTag>
283struct ModelTraits<TypeTag, TTag::MPNCNI>
288 FluidSystem::numComponents,
289 getPropValue<TypeTag, Properties::PressureFormulation>(),
290 getPropValue<TypeTag, Properties::UseMoles>(),
291 getPropValue<TypeTag, Properties::ReplaceCompEqIdx>()>;
297template<
class TypeTag>
298struct VolumeVariables<TypeTag, TTag::MPNCNI>
313 template<
class BaseTraits,
class ETCM>
314 struct NITraits :
public BaseTraits {
using EffectiveThermalConductivityModel = ETCM; };
320template<
class TypeTag>
321struct ThermalConductivityModel<TypeTag, TTag::MPNCNI>
328template<
class TypeTag>
332template<
class TypeTag>
337template<
class TypeTag>
338struct ModelTraits<TypeTag, TTag::MPNCNonequil>
342 static constexpr bool enableTNE = getPropValue<TypeTag, Properties::EnableThermalNonEquilibrium>();
343 static constexpr bool enableCNE = getPropValue<TypeTag, Properties::EnableChemicalNonEquilibrium>();
344 static constexpr int numEF = getPropValue<TypeTag, Properties::NumEnergyEqFluid>();
345 static constexpr int numES = getPropValue<TypeTag, Properties::NumEnergyEqSolid>();
346 static constexpr auto nf = getPropValue<TypeTag, Properties::NusseltFormulation>();
347 static constexpr auto ns = getPropValue<TypeTag, Properties::SherwoodFormulation>();
355template<
class TypeTag>
356struct EquilibriumModelTraits<TypeTag, TTag::MPNCNonequil>
362 FluidSystem::numComponents,
363 getPropValue<TypeTag, Properties::PressureFormulation>(),
364 getPropValue<TypeTag, Properties::UseMoles>(),
365 getPropValue<TypeTag, Properties::ReplaceCompEqIdx>()>;
369template<
class TypeTag>
370struct ThermalConductivityModel<TypeTag, TTag::MPNCNonequil>
374template<
class TypeTag>
375struct VolumeVariables<TypeTag, TTag::MPNCNonequil>
390 template<
class BaseTraits,
class ETCM>
391 struct NITraits :
public BaseTraits {
using EffectiveThermalConductivityModel = ETCM; };
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
Definition: compositional.hh:35
Relation for the saturation-dependent effective diffusion coefficient.
Definition: diffusivitymillingtonquirk.hh:40
Adds I/O fields specific to the mpnc model.
Definition: porousmediumflow/mpnc/iofields.hh:28
MpNc specific details needed to approximately calculate the local defect in the fully implicit scheme...
Definition: porousmediumflow/mpnc/localresidual.hh:34
Definition: porousmediumflow/mpnc/volumevariables.hh:30
The primary variable and equation indices for the MpNc model.
Definition: porousmediumflow/nonequilibrium/indices.hh:24
This class contains the volume variables required for the modules which require the specific interfac...
Definition: porousmediumflow/nonequilibrium/volumevariables.hh:37
Relation for the saturation-dependent effective thermal conductivity.
Definition: simplefluidlumping.hh:26
Relation for the saturation-dependent effective thermal conductivity.
Definition: somerton.hh:48
Defines all properties used in Dumux.
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
Relation for the saturation-dependent effective diffusion coefficient.
MpNcPressureFormulation
Enumerates the formulations which the MpNc model accepts.
Definition: pressureformulation.hh:24
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:267
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system witho...
Element-wise calculation of the local residual for problems using compositional fully implicit model.
This specifies models which are able to capture non-equilibrium mass and / or energy transfer.
This class contains the volume variables required for the modules which require the specific interfac...
Defines the indices used by the non-isothermal two-phase two-component model.
Adds I/O fields specific to non-isothermal models.
The implicit non-isothermal model.
Defines a type tag and some properties for models using the box scheme.
Defines the primary variable and equation indices used by the isothermal tracer model.
Adds I/O fields specific to the tracer model.
Element-wise calculation of the local residual for problems using fully implicit tracer model.
Python wrapper for volume variables (finite volume schemes)
Relation for the saturation-dependent effective thermal conductivity.
Relation for the saturation-dependent effective thermal conductivity.
The primary variable and equation indices for the MpNc model.
Definition: porousmediumflow/mpnc/indices.hh:27
Specifies a number properties of the m-phase n-component model.
Definition: porousmediumflow/mpnc/model.hh:116
static constexpr int numConstraintEq()
Definition: porousmediumflow/mpnc/model.hh:121
static constexpr bool enableThermalNonEquilibrium()
Definition: porousmediumflow/mpnc/model.hh:128
static constexpr bool enableThermalDispersion()
Definition: porousmediumflow/mpnc/model.hh:131
static constexpr bool useMoles()
Definition: porousmediumflow/mpnc/model.hh:124
static constexpr bool enableEnergyBalance()
Definition: porousmediumflow/mpnc/model.hh:127
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/mpnc/model.hh:126
static constexpr bool enableCompositionalDispersion()
Definition: porousmediumflow/mpnc/model.hh:130
static constexpr int replaceCompEqIdx()
Definition: porousmediumflow/mpnc/model.hh:122
static constexpr int numEq()
Definition: porousmediumflow/mpnc/model.hh:117
static constexpr int numFluidPhases()
Definition: porousmediumflow/mpnc/model.hh:118
static constexpr int numTransportEq()
Definition: porousmediumflow/mpnc/model.hh:120
static constexpr bool enableChemicalNonEquilibrium()
Definition: porousmediumflow/mpnc/model.hh:129
static constexpr bool enableAdvection()
Definition: porousmediumflow/mpnc/model.hh:125
static constexpr MpNcPressureFormulation pressureFormulation()
Definition: porousmediumflow/mpnc/model.hh:133
static constexpr int numFluidComponents()
Definition: porousmediumflow/mpnc/model.hh:119
Specifies a number properties of the m-phase n-component model in conjunction with non-equilibrium....
Definition: porousmediumflow/mpnc/model.hh:151
Traits class for the mpnc volume variables.
Definition: porousmediumflow/mpnc/model.hh:177
DT DiffusionType
Definition: porousmediumflow/mpnc/model.hh:185
SSY SolidSystem
Definition: porousmediumflow/mpnc/model.hh:181
EDM EffectiveDiffusivityModel
Definition: porousmediumflow/mpnc/model.hh:186
SST SolidState
Definition: porousmediumflow/mpnc/model.hh:182
FSY FluidSystem
Definition: porousmediumflow/mpnc/model.hh:179
MT ModelTraits
Definition: porousmediumflow/mpnc/model.hh:184
FST FluidState
Definition: porousmediumflow/mpnc/model.hh:180
PT PermeabilityType
Definition: porousmediumflow/mpnc/model.hh:183
PV PrimaryVariables
Definition: porousmediumflow/mpnc/model.hh:178
Specifies a number properties of porous-medium flow non-equilibrium models.
Definition: porousmediumflow/nonequilibrium/model.hh:45
Specifies a number properties of non-isothermal porous medium flow models based on the specifics of a...
Definition: porousmediumflow/nonisothermal/model.hh:58
Definition: porousmediumflow/mpnc/model.hh:198
std::tuple< PorousMediumFlow > InheritsFrom
Definition: porousmediumflow/mpnc/model.hh:198
Definition: porousmediumflow/mpnc/model.hh:199
std::tuple< MPNC > InheritsFrom
Definition: porousmediumflow/mpnc/model.hh:199
Definition: porousmediumflow/mpnc/model.hh:200
std::tuple< NonEquilibrium, MPNC > InheritsFrom
Definition: porousmediumflow/mpnc/model.hh:200