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
Implementation of capillary pressure curves for multiple pore body geometries.
Implementation of the transmissibility laws for throats.
Implementation of the single-phase transmissibility laws for throats.
The two-phase spatial parameters for pore-network models.
This file contains the data which is required to calculate the fluxes of the pore network model over ...
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
Flux variables cache for the two-phase-flow PNM.
Global flux variable cache.
Element-wise calculation of the residual for problems using the n-phase immiscible fully implicit mod...
Declares all properties used in Dumux.
Defines common properties required for all pore-network models.
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.
Adaption of the fully implicit scheme to the two-phase flow model.
The implicit non-isothermal model.
Contains the quantities which are are constant within a finite volume (the pore body) in the two-phas...