Loading [MathJax]/extensions/tex2jax.js
3.4
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 *****************************************************************************/
67#ifndef DUMUX_1PNCMIN_MODEL_HH
68#define DUMUX_1PNCMIN_MODEL_HH
69
73
75
80
84
85namespace Dumux {
86namespace Properties {
88// Type tags
90// Create new type tags
91namespace TTag {
92struct OnePNCMin { using InheritsFrom = std::tuple<OnePNC>; };
93struct OnePNCMinNI { using InheritsFrom = std::tuple<OnePNCMin>; };
94} // end namespace TTag
95
97// Property tags for the isothermal 1pncmin model
99
101template<class TypeTag>
102struct VolumeVariables<TypeTag, TTag::OnePNCMin>
103{
104private:
112 static_assert(FSY::numComponents == MT::numFluidComponents(), "Number of components mismatch between model and fluid system");
113 static_assert(FST::numComponents == MT::numFluidComponents(), "Number of components mismatch between model and fluid state");
114 static_assert(FSY::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid system");
115 static_assert(FST::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid state");
117
120 template<class BaseTraits, class DT, class EDM>
121 struct NCTraits : public BaseTraits
122 {
123 using DiffusionType = DT;
124 using EffectiveDiffusivityModel = EDM;
125 };
126
128public:
130};
131
132// Use the mineralization local residual
133template<class TypeTag>
134struct LocalResidual<TypeTag, TTag::OnePNCMin> { using type = MineralizationLocalResidual<TypeTag>; };
135
137template<class TypeTag>
138struct ModelTraits<TypeTag, TTag::OnePNCMin>
139{
140private:
143public:
145};
146
148template<class TypeTag>
149struct SolidState<TypeTag, TTag::OnePNCMin>
150{
151private:
154public:
156};
157
159template<class TypeTag>
160struct IOFields<TypeTag, TTag::OnePNCMin> { using type = MineralizationIOFields<OnePNCIOFields>; };
161
163// Properties for the non-isothermal 1pncmin model
165
167template<class TypeTag>
168struct IOFields<TypeTag, TTag::OnePNCMinNI>
169{
172};
173
175template<class TypeTag>
176struct ModelTraits<TypeTag, TTag::OnePNCMinNI>
177{
178private:
182public:
184};
185
187template<class TypeTag>
188struct VolumeVariables<TypeTag, TTag::OnePNCMinNI>
189{
190private:
198 static_assert(FSY::numComponents == MT::numFluidComponents(), "Number of components mismatch between model and fluid system");
199 static_assert(FST::numComponents == MT::numFluidComponents(), "Number of components mismatch between model and fluid state");
200 static_assert(FSY::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid system");
201 static_assert(FST::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid state");
203
207 template<class BaseTraits, class DT, class EDM, class ETCM>
208 struct NCNITraits : public BaseTraits
209 {
210 using DiffusionType = DT;
211 using EffectiveDiffusivityModel = EDM;
212 using EffectiveThermalConductivityModel = ETCM;
213 };
215public:
217};
219template<class TypeTag>
220struct ThermalConductivityModel<TypeTag, TTag::OnePNCMinNI>
222
223} // end namespace Properties
224} // end namespace Dumux
225
226#endif
Reation for a simple effective thermal conductivity.
Represents all relevant thermodynamic quantities of a compositional solid system.
Definition: adapt.hh:29
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
A class helping models to define input and output fields.
Definition: common/properties.hh:63
Definition: common/properties.hh:74
The secondary variables within a sub-control volume.
Definition: common/properties.hh:103
The type of the solid state to use.
Definition: common/properties.hh:158
The employed model for the computation of the effective diffusivity.
Definition: common/properties.hh:160
Model to be used for the calculation of the effective conductivity.
Definition: common/properties.hh:162
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:91
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:92
std::tuple< OnePNC > InheritsFrom
Definition: porousmediumflow/1pncmin/model.hh:92
Definition: porousmediumflow/1pncmin/model.hh:93
std::tuple< OnePNCMin > InheritsFrom
Definition: porousmediumflow/1pncmin/model.hh:93
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 proceses.
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...