3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
porenetwork/2p/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 *****************************************************************************/
53
54#ifndef DUMUX_PNM2P_MODEL_HH
55#define DUMUX_PNM2P_MODEL_HH
56
58
61
63
67
73
74#include "fluxvariablescache.hh"
76#include "iofields.hh"
77#include "volumevariables.hh"
78#include "spatialparams.hh"
79
80namespace Dumux::Properties {
81// \{
83// Type tags
85
87// Create new type tags
88namespace TTag {
89struct PNMTwoP { using InheritsFrom = std::tuple<PoreNetworkModel, TwoP>; };
90
92struct PNMTwoPNI { using InheritsFrom = std::tuple<PNMTwoP>; };
93} // end namespace TTag
94
96// properties for the isothermal two-phase model
98
100template<class TypeTag>
121
123template<class TypeTag>
126
128template<class TypeTag>
142
145template<class TypeTag>
155
157template<class TypeTag>
169
170template<class TypeTag>
171struct EnergyLocalResidual<TypeTag, TTag::PNMTwoP> { using type = Dumux::EnergyLocalResidual<TypeTag> ; };
172
173template<class TypeTag>
174struct IOFields<TypeTag, TTag::PNMTwoP> { using type = PoreNetwork::TwoPIOFields; };
175
177// Property values for isothermal model required for the general non-isothermal model
179
181template<class TypeTag>
182struct ModelTraits<TypeTag, TTag::PNMTwoPNI>
183{
184private:
187public:
189};
190
192template<class TypeTag>
193struct VolumeVariables<TypeTag, TTag::PNMTwoPNI>
194{
195private:
204 static constexpr bool enableIS = getPropValue<TypeTag, Properties::EnableBoxInterfaceSolver>();
205 // class used for scv-wise reconstruction of non-wetting phase saturations
208
210
211 template<class BaseTraits, class ETCM>
212 struct NITraits : public BaseTraits { using EffectiveThermalConductivityModel = ETCM; };
213
214public:
216};
217
219template<class TypeTag>
220struct IOFields<TypeTag, TTag::PNMTwoPNI> { using type = EnergyIOFields<PoreNetwork::TwoPIOFields>; };
221
222template<class TypeTag>
227
228} // end namespace Dumux::Properties
229
230#endif
Classes related to flux variables caching.
This file contains the data which is required to calculate the fluxes of the pore network model over ...
Implementation of capillary pressure curves for multiple pore body geometries.
Implementation of the single-phase transmissibility laws for throats.
Implementation of the transmissibility laws for throats.
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:188
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition propertysystem.hh:180
typename GetPropOr< TypeTag, Property, T >::type GetPropTypeOr
get the type alias defined in the property or the type T if the property is undefined
Definition propertysystem.hh:184
EnergyLocalResidualImplementation< TypeTag, GetPropType< TypeTag, Properties::ModelTraits >::enableEnergyBalance()> EnergyLocalResidual
Definition porousmediumflow/nonisothermal/localresidual.hh:39
Definition common/properties.hh:37
Type tag for numeric models.
Definition grid.hh:36
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
The secondary variables within a sub-control volume.
Definition common/properties.hh:105
Stores data associated with flux vars.
Definition common/properties.hh:113
The global vector of flux variable containers.
Definition common/properties.hh:117
The local residual of the energy equation.
Definition common/properties.hh:137
The type for the calculation the advective fluxes.
Definition common/properties.hh:139
The type of the spatial parameters object.
Definition common/properties.hh:158
Model to be used for the calculation of the effective conductivity.
Definition common/properties.hh:170
An empty flux variables cache.
Definition fluxvariablescaching.hh:47
Hagen–Poiseuille-type flux law to describe the advective flux for pore-network models.
Definition advection.hh:46
Relation for the saturation-dependent effective thermal conductivity.
Definition somerton.hh:60
Implementation of capillary pressure curves for multiple pore body geometries.
Definition multishapelocalrules.hh:55
Single-phase flow throat transmissibility based on Patzek & Silin (2001) https://doi....
Definition transmissibility1p.hh:126
Flux variables cache for the two-phase-flow PNM Store data required for flux calculation.
Definition porenetwork/2p/fluxvariablescache.hh:41
Flux variable caches traits.
Definition porenetwork/2p/gridfluxvariablescache.hh:41
Flux variable caches on a gridview.
Definition porenetwork/2p/gridfluxvariablescache.hh:59
Adds output fields specific to the PNM 2p model.
Definition porenetwork/2p/iofields.hh:37
Definition porenetwork/2p/model.hh:89
std::tuple< PoreNetworkModel, TwoP > InheritsFrom
Definition porenetwork/2p/model.hh:89
The type tags for the corresponding non-isothermal problems.
Definition porenetwork/2p/model.hh:92
std::tuple< PNMTwoP > InheritsFrom
Definition porenetwork/2p/model.hh:92
PoreNetwork::TwoPVolumeVariables< Traits > type
Definition porenetwork/2p/model.hh:119
PoreNetwork::TwoPFluxVariablesCache< GetPropType< TypeTag, Properties::AdvectionType > > type
Definition porenetwork/2p/model.hh:125
PoreNetwork::PNMTwoPGridFluxVariablesCache< Problem, FluxVariablesCache, enableCache, Traits > type
Definition porenetwork/2p/model.hh:140
PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > type
Definition porenetwork/2p/model.hh:153
PoreNetwork::CreepingFlow< Scalar, S, W, N > type
Definition porenetwork/2p/model.hh:167
Dumux::EnergyLocalResidual< TypeTag > type
Definition porenetwork/2p/model.hh:171
PoreNetwork::TwoPIOFields type
Definition porenetwork/2p/model.hh:174
PorousMediumFlowNIModelTraits< IsothermalTraits > type
Definition porenetwork/2p/model.hh:188
PoreNetwork::TwoPVolumeVariables< NITraits< BaseTraits, ETCM > > type
Definition porenetwork/2p/model.hh:215
EnergyIOFields< PoreNetwork::TwoPIOFields > type
Definition porenetwork/2p/model.hh:220
ThermalConductivitySomerton< GetPropType< TypeTag, Properties::Scalar > > type
Definition porenetwork/2p/model.hh:225
The default class for spatial parameters for two-phase pore-network models.
Definition porenetwork/2p/spatialparams.hh:239
Contains the quantities which are are constant within a finite volume (the pore body) in the two-phas...
Definition porenetwork/2p/volumevariables.hh:41
Specifies a number properties of two-phase models.
Definition porousmediumflow/2p/model.hh:78
Traits class for the two-phase model.
Definition porousmediumflow/2p/model.hh:109
Class that computes the nonwetting saturation in an scv from the saturation at the global degree of f...
Definition saturationreconstruction.hh:43
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 common properties required for all pore-network models.
Adaption of the fully implicit scheme to the two-phase flow model.
The implicit non-isothermal model.
Flux variables cache for the two-phase-flow PNM.
Global flux variable cache.
Adds output fields specific to the PNM 2p model.
Adds I/O fields specific to non-isothermal models.
Defines the indices used by the non-isothermal two-phase two-component model.
Element-wise calculation of the residual for problems using the n-phase immiscible fully implicit mod...
Contains the quantities which are are constant within a finite volume (the pore body) in the two-phas...
The two-phase spatial parameters for pore-network models.