49#ifndef DUMUX_1PNC_MODEL_HH
50#define DUMUX_1PNC_MODEL_HH
80template<
int nComp,
bool useM,
int enableCompDisp,
int enableThermDisp,
int repCompEqIdx = nComp,
class CDM =
void>
86 static constexpr int numEq() {
return nComp; }
91 static constexpr bool useMoles() {
return useM; }
117template<
class TypeTag>
121template<
class TypeTag>
129 getPropValue<TypeTag, Properties::UseMoles>(),
130 getPropValue<TypeTag, Properties::EnableCompositionalDispersion>(),
131 getPropValue<TypeTag, Properties::EnableThermalDispersion>(),
132 getPropValue<TypeTag, Properties::ReplaceCompEqIdx>(),
135template<
class TypeTag>
145template<
class TypeTag>
157template<
class TypeTag>
162template<
class TypeTag>
163struct UseMoles<TypeTag, TTag::OnePNC> {
static constexpr bool value =
true; };
166template<
class TypeTag>
170template<
class TypeTag>
181 static_assert(FSY::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid system");
182 static_assert(FST::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid state");
183 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
184 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
189 template<
class BaseTraits,
class DT,
class EDM>
192 using DiffusionType = DT;
201template<
class TypeTag>
209template<
class TypeTag>
213template<
class TypeTag>
218template<
class TypeTag>
228template<
class TypeTag>
239 static_assert(FSY::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid system");
240 static_assert(FST::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid state");
241 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
242 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
248 template<
class BaseTraits,
class DT,
class EDM,
class ETCM>
251 using DiffusionType = DT;
253 using EffectiveThermalConductivityModel = ETCM;
262template<
class OnePNCModelTraits>
268namespace Properties {
281template<
class TypeTag>
285template<
class TypeTag>
288template<
class TypeTag>
293 static constexpr bool enableTNE = getPropValue<TypeTag, Properties::EnableThermalNonEquilibrium>();
294 static constexpr bool enableCNE = getPropValue<TypeTag, Properties::EnableChemicalNonEquilibrium>();
295 static constexpr int numEF = getPropValue<TypeTag, Properties::NumEnergyEqFluid>();
296 static constexpr int numES = getPropValue<TypeTag, Properties::NumEnergyEqSolid>();
297 static constexpr auto nf = getPropValue<TypeTag, Properties::NusseltFormulation>();
298 static constexpr auto ns = getPropValue<TypeTag, Properties::SherwoodFormulation>();
306template<
class TypeTag>
310template<
class TypeTag>
316 getPropValue<TypeTag, Properties::UseMoles>(),
317 getPropValue<TypeTag, Properties::EnableCompositionalDispersion>(),
318 getPropValue<TypeTag, Properties::EnableThermalDispersion>(),
319 getPropValue<TypeTag, Properties::ReplaceCompEqIdx>()>;
325template<
class TypeTag>
335template<
class TypeTag>
351 template<
class BaseTraits,
class DT,
class EDM,
class ETCM>
354 using DiffusionType = DT;
356 using EffectiveThermalConductivityModel = ETCM;
Reation for a simple 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...
Adaption of the non-isothermal two-phase two-component flow model to problems with CO2.
Definition: adapt.hh:29
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:180
Traits class encapsulating model specifications.
Definition: common/properties.hh:51
Model traits to be used as a base for nonisothermal, mineralization ... models.
Definition: common/properties.hh:53
A class helping models to define input and output fields.
Definition: common/properties.hh:61
Definition: common/properties.hh:72
Property whether to use moles or kg as amount unit for balance equations.
Definition: common/properties.hh:83
The component balance index that should be replaced by the total mass/mole balance.
Definition: common/properties.hh:85
The secondary variables within a sub-control volume.
Definition: common/properties.hh:105
The type of the fluid state to use.
Definition: common/properties.hh:162
The employed model for the computation of the effective diffusivity.
Definition: common/properties.hh:168
Model to be used for the calculation of the effective conductivity.
Definition: common/properties.hh:170
the formulation of the pressure e.g most wetting first
Definition: common/properties.hh:255
Definition: common/properties.hh:257
Definition: common/properties.hh:261
Definition: common/properties.hh:267
Relation for a simple effective thermal conductivity.
Definition: thermalconductivityaverage.hh:37
Relation for the saturation-dependent effective diffusion coefficient.
Definition: diffusivitymillingtonquirk.hh:52
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
Definition: compositional.hh:47
Traits class for the volume variables of the single-phase model.
Definition: porousmediumflow/1p/model.hh:86
The indices for the isothermal one-phase n-component model.
Definition: porousmediumflow/1pnc/indices.hh:38
Adds I/O fields specific to the OnePNC model.
Definition: porousmediumflow/1pnc/iofields.hh:38
Specifies a number properties of models that consider a single-phase with multiple components.
Definition: porousmediumflow/1pnc/model.hh:82
static constexpr int numEq()
Definition: porousmediumflow/1pnc/model.hh:86
static constexpr bool enableAdvection()
Definition: porousmediumflow/1pnc/model.hh:92
static constexpr int numFluidComponents()
Definition: porousmediumflow/1pnc/model.hh:88
static constexpr int numFluidPhases()
Definition: porousmediumflow/1pnc/model.hh:87
static constexpr int replaceCompEqIdx()
Definition: porousmediumflow/1pnc/model.hh:89
static constexpr bool useMoles()
Definition: porousmediumflow/1pnc/model.hh:91
static constexpr bool enableCompositionalDispersion()
Definition: porousmediumflow/1pnc/model.hh:94
CDM CompositionalDispersionModel
Definition: porousmediumflow/1pnc/model.hh:84
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/1pnc/model.hh:93
static constexpr bool enableThermalDispersion()
Definition: porousmediumflow/1pnc/model.hh:95
static constexpr bool enableEnergyBalance()
Definition: porousmediumflow/1pnc/model.hh:96
Definition: porousmediumflow/1pnc/model.hh:108
std::tuple< PorousMediumFlow > InheritsFrom
Definition: porousmediumflow/1pnc/model.hh:108
Definition: porousmediumflow/1pnc/model.hh:109
std::tuple< OnePNC > InheritsFrom
Definition: porousmediumflow/1pnc/model.hh:109
GetPropType< TypeTag, Properties::BaseModelTraits > type
Definition: porousmediumflow/1pnc/model.hh:136
Definition: porousmediumflow/1pnc/model.hh:264
static constexpr int numConstraintEq()
Definition: porousmediumflow/1pnc/model.hh:265
Definition: porousmediumflow/1pnc/model.hh:273
std::tuple< NonEquilibrium, OnePNC > InheritsFrom
Definition: porousmediumflow/1pnc/model.hh:273
Contains the quantities which are are constant within a finite volume in the one-phase,...
Definition: porousmediumflow/1pnc/volumevariables.hh:50
Element-wise calculation of the local residual for problems using compositional fully implicit model.
Definition: porousmediumflow/compositional/localresidual.hh:45
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.
Defines a type tag and some properties for models using the box scheme.
A single-phase, isothermal flow model using the fully implicit scheme.
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.
Adds I/O fields specific to the tracer model.
Element-wise calculation of the local residual for problems using compositional fully implicit model.
This class contains the volume variables required for the modules which require the specific interfac...
Python wrapper for volume variables (finite volume schemes)
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.