57#ifndef DUMUX_1PNC_MODEL_HH
58#define DUMUX_1PNC_MODEL_HH
88template<
int nComp,
bool useM,
int repCompEqIdx = nComp>
93 static constexpr int numEq() {
return nComp; }
98 static constexpr bool useMoles() {
return useM; }
104namespace Properties {
122template<
class TypeTag>
126template<
class TypeTag>
134template<
class TypeTag>
144template<
class TypeTag>
156template<
class TypeTag>
161template<
class TypeTag>
162struct UseMoles<TypeTag, TTag::OnePNC> {
static constexpr bool value =
true; };
165template<
class TypeTag>
169template<
class TypeTag>
180 static_assert(FSY::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid system");
181 static_assert(FST::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid state");
182 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
183 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
188 template<
class BaseTraits,
class DT,
class EDM>
191 using DiffusionType = DT;
200template<
class TypeTag>
208template<
class TypeTag>
212template<
class TypeTag>
217template<
class TypeTag>
226template<
class TypeTag>
237 static_assert(FSY::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid system");
238 static_assert(FST::numComponents == MT::numFluidComponents(),
"Number of components mismatch between model and fluid state");
239 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
240 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
246 template<
class BaseTraits,
class DT,
class EDM,
class ETCM>
249 using DiffusionType = DT;
251 using EffectiveThermalConductivityModel = ETCM;
260template<
class OnePNCModelTraits>
266namespace Properties {
279template<
class TypeTag>
283template<
class TypeTag>
286template<
class TypeTag>
291 static constexpr bool enableTNE = getPropValue<TypeTag, Properties::EnableThermalNonEquilibrium>();
292 static constexpr bool enableCNE = getPropValue<TypeTag, Properties::EnableChemicalNonEquilibrium>();
293 static constexpr int numEF = getPropValue<TypeTag, Properties::NumEnergyEqFluid>();
294 static constexpr int numES = getPropValue<TypeTag, Properties::NumEnergyEqSolid>();
295 static constexpr auto nf = getPropValue<TypeTag, Properties::NusseltFormulation>();
296 static constexpr auto ns = getPropValue<TypeTag, Properties::SherwoodFormulation>();
304template<
class TypeTag>
308template<
class TypeTag>
319template<
class TypeTag>
329template<
class TypeTag>
345 template<
class BaseTraits,
class DT,
class EDM,
class ETCM>
348 using DiffusionType = DT;
350 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 (equivalent to old macro GET_PROP_TYPE(....
Definition: propertysystem.hh:149
Traits class encapsulating model specifications.
Definition: common/properties.hh:66
Model traits to be used as a base for nonisothermal, mineralization ... models.
Definition: common/properties.hh:68
A class helping models to define input and output fields.
Definition: common/properties.hh:76
Definition: common/properties.hh:89
Property whether to use moles or kg as amount unit for balance equations.
Definition: common/properties.hh:100
The component balance index that should be replaced by the total mass/mole balance.
Definition: common/properties.hh:102
The secondary variables within a sub-control volume.
Definition: common/properties.hh:118
The type of the fluid state to use.
Definition: common/properties.hh:169
The employed model for the computation of the effective diffusivity.
Definition: common/properties.hh:175
Model to be used for the calculation of the effective conductivity.
Definition: common/properties.hh:177
the formulation of the pressure e.g most wetting first
Definition: common/properties.hh:262
Definition: common/properties.hh:264
Definition: common/properties.hh:268
Definition: common/properties.hh:274
Relation for a simple effective thermal conductivity.
Definition: thermalconductivityaverage.hh:37
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 volume variables of the single-phase model.
Definition: porousmediumflow/1p/model.hh:91
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:90
static constexpr bool enableEnergyBalance()
Definition: porousmediumflow/1pnc/model.hh:101
static constexpr bool useMoles()
Definition: porousmediumflow/1pnc/model.hh:98
static constexpr int numFluidPhases()
Definition: porousmediumflow/1pnc/model.hh:94
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/1pnc/model.hh:100
static constexpr int numFluidComponents()
Definition: porousmediumflow/1pnc/model.hh:95
static constexpr bool enableAdvection()
Definition: porousmediumflow/1pnc/model.hh:99
static constexpr int numEq()
Definition: porousmediumflow/1pnc/model.hh:93
static constexpr int replaceCompEqIdx()
Definition: porousmediumflow/1pnc/model.hh:96
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:135
Definition: porousmediumflow/1pnc/model.hh:262
static constexpr int numConstraintEq()
Definition: porousmediumflow/1pnc/model.hh:263
Definition: porousmediumflow/1pnc/model.hh:271
std::tuple< NonEquilibrium, OnePNC > InheritsFrom
Definition: porousmediumflow/1pnc/model.hh:271
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:43
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.
Base class for the model specific class which provides access to all volume averaged quantities.
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.