54#ifndef DUMUX_1PNC_MODEL_HH
55#define DUMUX_1PNC_MODEL_HH
85template<
int nComp,
bool useM,
int enableCompDisp,
int enableThermDisp,
int repCompEqIdx = nComp,
class CDM =
void>
91 static constexpr int numEq() {
return nComp; }
96 static constexpr bool useMoles() {
return useM; }
104namespace Properties {
122template<
class TypeTag>
126template<
class TypeTag>
134 getPropValue<TypeTag, Properties::UseMoles>(),
135 getPropValue<TypeTag, Properties::EnableCompositionalDispersion>(),
136 getPropValue<TypeTag, Properties::EnableThermalDispersion>(),
137 getPropValue<TypeTag, Properties::ReplaceCompEqIdx>(),
140template<
class TypeTag>
150template<
class TypeTag>
162template<
class TypeTag>
167template<
class TypeTag>
168struct UseMoles<TypeTag, TTag::OnePNC> {
static constexpr bool value =
true; };
171template<
class TypeTag>
175template<
class TypeTag>
186 static_assert(FSY::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid system");
187 static_assert(FST::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid state");
188 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
189 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
194 template<
class BaseTraits,
class DT,
class EDM>
197 using DiffusionType = DT;
206template<
class TypeTag>
214template<
class TypeTag>
218template<
class TypeTag>
223template<
class TypeTag>
233template<
class TypeTag>
244 static_assert(FSY::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid system");
245 static_assert(FST::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid state");
246 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
247 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
253 template<
class BaseTraits,
class DT,
class EDM,
class ETCM>
256 using DiffusionType = DT;
258 using EffectiveThermalConductivityModel = ETCM;
267template<
class OnePNCModelTraits>
273namespace Properties {
286template<
class TypeTag>
290template<
class TypeTag>
293template<
class TypeTag>
298 static constexpr bool enableTNE = getPropValue<TypeTag, Properties::EnableThermalNonEquilibrium>();
299 static constexpr bool enableCNE = getPropValue<TypeTag, Properties::EnableChemicalNonEquilibrium>();
300 static constexpr int numEF = getPropValue<TypeTag, Properties::NumEnergyEqFluid>();
301 static constexpr int numES = getPropValue<TypeTag, Properties::NumEnergyEqSolid>();
302 static constexpr auto nf = getPropValue<TypeTag, Properties::NusseltFormulation>();
303 static constexpr auto ns = getPropValue<TypeTag, Properties::SherwoodFormulation>();
311template<
class TypeTag>
315template<
class TypeTag>
321 getPropValue<TypeTag, Properties::UseMoles>(),
322 getPropValue<TypeTag, Properties::EnableCompositionalDispersion>(),
323 getPropValue<TypeTag, Properties::EnableThermalDispersion>(),
324 getPropValue<TypeTag, Properties::ReplaceCompEqIdx>()>;
330template<
class TypeTag>
340template<
class TypeTag>
356 template<
class BaseTraits,
class DT,
class EDM,
class ETCM>
359 using DiffusionType = DT;
361 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...
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:150
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:74
Property whether to use moles or kg as amount unit for balance equations.
Definition: common/properties.hh:85
The component balance index that should be replaced by the total mass/mole balance.
Definition: common/properties.hh:87
The secondary variables within a sub-control volume.
Definition: common/properties.hh:107
The type of the fluid state to use.
Definition: common/properties.hh:164
The employed model for the computation of the effective diffusivity.
Definition: common/properties.hh:170
Model to be used for the calculation of the effective conductivity.
Definition: common/properties.hh:172
the formulation of the pressure e.g most wetting first
Definition: common/properties.hh:257
Definition: common/properties.hh:259
Definition: common/properties.hh:263
Definition: common/properties.hh:269
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:90
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:87
static constexpr int numEq()
Definition: porousmediumflow/1pnc/model.hh:91
static constexpr bool enableAdvection()
Definition: porousmediumflow/1pnc/model.hh:97
static constexpr int numFluidComponents()
Definition: porousmediumflow/1pnc/model.hh:93
static constexpr int numFluidPhases()
Definition: porousmediumflow/1pnc/model.hh:92
static constexpr int replaceCompEqIdx()
Definition: porousmediumflow/1pnc/model.hh:94
static constexpr bool useMoles()
Definition: porousmediumflow/1pnc/model.hh:96
static constexpr bool enableCompositionalDispersion()
Definition: porousmediumflow/1pnc/model.hh:99
CDM CompositionalDispersionModel
Definition: porousmediumflow/1pnc/model.hh:89
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/1pnc/model.hh:98
static constexpr bool enableThermalDispersion()
Definition: porousmediumflow/1pnc/model.hh:100
static constexpr bool enableEnergyBalance()
Definition: porousmediumflow/1pnc/model.hh:101
Definition: porousmediumflow/1pnc/model.hh:113
std::tuple< PorousMediumFlow > InheritsFrom
Definition: porousmediumflow/1pnc/model.hh:113
Definition: porousmediumflow/1pnc/model.hh:114
std::tuple< OnePNC > InheritsFrom
Definition: porousmediumflow/1pnc/model.hh:114
GetPropType< TypeTag, Properties::BaseModelTraits > type
Definition: porousmediumflow/1pnc/model.hh:141
Definition: porousmediumflow/1pnc/model.hh:269
static constexpr int numConstraintEq()
Definition: porousmediumflow/1pnc/model.hh:270
Definition: porousmediumflow/1pnc/model.hh:278
std::tuple< NonEquilibrium, OnePNC > InheritsFrom
Definition: porousmediumflow/1pnc/model.hh:278
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:46
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...
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.