Loading [MathJax]/extensions/tex2jax.js
3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
porousmediumflow/1pncmin/model.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3/*****************************************************************************
4 * See the file COPYING for full copying permissions. *
5 * *
6 * This program is free software: you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation, either version 3 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
18 *****************************************************************************/
61#ifndef DUMUX_1PNCMIN_MODEL_HH
62#define DUMUX_1PNCMIN_MODEL_HH
63
67
69
74
78
79namespace Dumux {
80namespace Properties {
82// Type tags
84// Create new type tags
85namespace TTag {
86struct OnePNCMin { using InheritsFrom = std::tuple<OnePNC>; };
87struct OnePNCMinNI { using InheritsFrom = std::tuple<OnePNCMin>; };
88} // end namespace TTag
89
91// Property tags for the isothermal 1pncmin model
93
95template<class TypeTag>
96struct VolumeVariables<TypeTag, TTag::OnePNCMin>
97{
98private:
106 static_assert(FSY::numComponents == MT::numFluidComponents(), "Number of components mismatch between model and fluid system");
107 static_assert(FST::numComponents == MT::numFluidComponents(), "Number of components mismatch between model and fluid state");
108 static_assert(FSY::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid system");
109 static_assert(FST::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid state");
111
115 template<class BaseTraits, class CDM, class DT, class EDM>
116 struct NCTraits : public BaseTraits
117 {
119 using DiffusionType = DT;
120 using EffectiveDiffusivityModel = EDM;
121 };
122
124public:
126};
127
128// Use the mineralization local residual
129template<class TypeTag>
130struct LocalResidual<TypeTag, TTag::OnePNCMin> { using type = MineralizationLocalResidual<TypeTag>; };
131
133template<class TypeTag>
134struct ModelTraits<TypeTag, TTag::OnePNCMin>
135{
136private:
139public:
141};
142
144template<class TypeTag>
145struct SolidState<TypeTag, TTag::OnePNCMin>
146{
147private:
150public:
152};
153
155template<class TypeTag>
156struct IOFields<TypeTag, TTag::OnePNCMin> { using type = MineralizationIOFields<OnePNCIOFields>; };
157
159// Properties for the non-isothermal 1pncmin model
161
163template<class TypeTag>
164struct IOFields<TypeTag, TTag::OnePNCMinNI>
165{
168};
169
171template<class TypeTag>
172struct ModelTraits<TypeTag, TTag::OnePNCMinNI>
173{
174private:
178public:
180};
181
183template<class TypeTag>
184struct VolumeVariables<TypeTag, TTag::OnePNCMinNI>
185{
186private:
194 static_assert(FSY::numComponents == MT::numFluidComponents(), "Number of components mismatch between model and fluid system");
195 static_assert(FST::numComponents == MT::numFluidComponents(), "Number of components mismatch between model and fluid state");
196 static_assert(FSY::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid system");
197 static_assert(FST::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid state");
199
204 template<class BaseTraits, class CDM, class DT, class EDM, class ETCM>
205 struct NCNITraits : public BaseTraits
206 {
208 using DiffusionType = DT;
209 using EffectiveDiffusivityModel = EDM;
210 using EffectiveThermalConductivityModel = ETCM;
211 };
213public:
215};
217template<class TypeTag>
218struct ThermalConductivityModel<TypeTag, TTag::OnePNCMinNI>
220
221} // end namespace Properties
222} // end namespace Dumux
223
224#endif
Reation for a simple effective thermal conductivity.
Represents all relevant thermodynamic quantities of a compositional solid system.
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
A class helping models to define input and output fields.
Definition: common/properties.hh:61
Definition: common/properties.hh:72
The secondary variables within a sub-control volume.
Definition: common/properties.hh:105
The type for the calculation of the compositional dispersion tensor.
Definition: common/properties.hh:151
The type of the solid state to use.
Definition: common/properties.hh:166
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
Relation for a simple effective thermal conductivity.
Definition: thermalconductivityaverage.hh:37
Represents all relevant thermodynamic quantities of a compositional solid system.
Definition: compositionalsolidstate.hh:37
Traits class for the volume variables of the single-phase model.
Definition: porousmediumflow/1p/model.hh:86
Contains the quantities which are are constant within a finite volume in the one-phase,...
Definition: porousmediumflow/1pnc/volumevariables.hh:50
Definition: porousmediumflow/1pncmin/model.hh:86
std::tuple< OnePNC > InheritsFrom
Definition: porousmediumflow/1pncmin/model.hh:86
Definition: porousmediumflow/1pncmin/model.hh:87
std::tuple< OnePNCMin > InheritsFrom
Definition: porousmediumflow/1pncmin/model.hh:87
Adds I/O fields specific to a NCMin model.
Definition: porousmediumflow/mineralization/iofields.hh:39
Element-wise calculation of the local residual for problems using a one/two-phase n-component mineral...
Definition: porousmediumflow/mineralization/localresidual.hh:41
Specifies a number properties of models that consider mineralization processes.
Definition: porousmediumflow/mineralization/model.hh:50
Contains the quantities which are are constant within a sub-control volume of the finite volume grid ...
Definition: porousmediumflow/mineralization/volumevariables.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
Adaption of the fully implicit model to the one-phase n-component flow model.
Defines the properties required for compositional porous medium flow models considering mineralizatio...
Defines the primary variable and equation indices used by the 1pnc model.
Defines the indices used by the non-isothermal two-phase two-component model.
Element-wise calculation of the local residual for problems using a compositional model that also con...
Adds I/O fields specific to the models considering mineralization processes.
Adds I/O fields specific to non-isothermal models.
Quantities required by the single-phase, n-component box model defined on a vertex.
Contains the quantities which are constant within a sub-control volume of the finite volume grid in t...