3.4
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
60
62
67
73
74#include "fluxvariablescache.hh"
76#include "iofields.hh"
77#include "volumevariables.hh"
78
79namespace Dumux::Properties {
80// \{
82// Type tags
84
86// Create new type tags
87namespace TTag {
88struct PNMTwoP { using InheritsFrom = std::tuple<PoreNetworkModel, TwoP>; };
89
91struct PNMTwoPNI { using InheritsFrom = std::tuple<PNMTwoP>; };
92} // end namespace TTag
93
95// properties for the isothermal two-phase model
97
99template<class TypeTag>
120
122template<class TypeTag>
125
127template<class TypeTag>
138
141template<class TypeTag>
151
153template<class TypeTag>
165
166template<class TypeTag>
167struct EnergyLocalResidual<TypeTag, TTag::PNMTwoP> { using type = Dumux::EnergyLocalResidual<TypeTag> ; };
168
169template<class TypeTag>
170struct IOFields<TypeTag, TTag::PNMTwoP> { using type = Dumux::PoreNetwork::TwoPIOFields; };
171
173// Property values for isothermal model required for the general non-isothermal model
175
177template<class TypeTag>
178struct ModelTraits<TypeTag, TTag::PNMTwoPNI>
179{
180private:
183public:
185};
186
188template<class TypeTag>
189struct VolumeVariables<TypeTag, TTag::PNMTwoPNI>
190{
191private:
200 static constexpr bool enableIS = getPropValue<TypeTag, Properties::EnableBoxInterfaceSolver>();
201 // class used for scv-wise reconstruction of non-wetting phase saturations
204
206
207 template<class BaseTraits, class ETCM>
208 struct NITraits : public BaseTraits { using EffectiveThermalConductivityModel = ETCM; };
209
210public:
212};
213
215template<class TypeTag>
217
218template<class TypeTag>
223
224} // end namespace Dumux::Properties
225
226#endif
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.
The two-phase spatial parameters for pore-network models.
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:154
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property
Definition propertysystem.hh:150
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:53
A class helping models to define input and output fields.
Definition common/properties.hh:63
The secondary variables within a sub-control volume.
Definition common/properties.hh:103
Stores data associated with flux vars.
Definition common/properties.hh:111
The global vector of flux variable containers.
Definition common/properties.hh:115
The local residual of the energy equation.
Definition common/properties.hh:135
The type for the calculation the advective fluxes.
Definition common/properties.hh:137
The type of the spatial parameters object.
Definition common/properties.hh:150
Model to be used for the calculation of the effective conductivity.
Definition common/properties.hh:162
Definition advection.hh:47
Relation for the saturation-dependent effective thermal conductivity.
Definition somerton.hh:60
Single-phase flow throat transmissibility based on Patzek & Silin (2001) https://doi....
Definition transmissibility1p.hh:123
Definition porenetwork2p.hh:211
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:88
std::tuple< PoreNetworkModel, TwoP > InheritsFrom
Definition porenetwork/2p/model.hh:88
The type tags for the corresponding non-isothermal problems.
Definition porenetwork/2p/model.hh:91
std::tuple< PNMTwoP > InheritsFrom
Definition porenetwork/2p/model.hh:91
Dumux::PoreNetwork::TwoPVolumeVariables< Traits > type
Definition porenetwork/2p/model.hh:118
Dumux::PoreNetwork::TwoPFluxVariablesCache< GetPropType< TypeTag, Properties::AdvectionType > > type
Definition porenetwork/2p/model.hh:124
Dumux::PoreNetwork::PNMTwoPGridFluxVariablesCache< Problem, FluxVariablesCache, enableCache, Traits > type
Definition porenetwork/2p/model.hh:136
Dumux::PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > type
Definition porenetwork/2p/model.hh:149
Dumux::PoreNetwork::CreepingFlow< Scalar, S, W, N > type
Definition porenetwork/2p/model.hh:163
Dumux::EnergyLocalResidual< TypeTag > type
Definition porenetwork/2p/model.hh:167
Dumux::PoreNetwork::TwoPIOFields type
Definition porenetwork/2p/model.hh:170
PorousMediumFlowNIModelTraits< IsothermalTraits > type
Definition porenetwork/2p/model.hh:184
Dumux::PoreNetwork::TwoPVolumeVariables< NITraits< BaseTraits, ETCM > > type
Definition porenetwork/2p/model.hh:211
EnergyIOFields< Dumux::PoreNetwork::TwoPIOFields > type
Definition porenetwork/2p/model.hh:216
ThermalConductivitySomerton< GetPropType< TypeTag, Properties::Scalar > > type
Definition porenetwork/2p/model.hh:221
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:86
Traits class for the two-phase model.
Definition porousmediumflow/2p/model.hh:117
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.
Defines the indices used by the non-isothermal two-phase two-component model.
Adds output fields specific to the PNM 2p model.
Adds I/O fields specific to non-isothermal models.
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...