3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
porenetwork/1p/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 *****************************************************************************/
51#ifndef DUMUX_PNM1P_MODEL_HH
52#define DUMUX_PNM1P_MODEL_HH
53
57
61
63
66
67#include "iofields.hh"
68#include "volumevariables.hh"
69#include "fluxvariablescache.hh"
70
71namespace Dumux::Properties {
72
74 // Type tags
76
78namespace TTag {
79struct PNMOneP { using InheritsFrom = std::tuple<PoreNetworkModel, OneP>; };
80
82struct PNMOnePNI { using InheritsFrom = std::tuple<PNMOneP>; };
83} // end namespace TTag
84
86// properties for the isothermal single phase model
88
90template<class TypeTag>
91struct VolumeVariables<TypeTag, TTag::PNMOneP>
92{
93private:
101
103public:
105};
106
109template<class TypeTag>
110struct SpatialParams<TypeTag, TTag::PNMOneP>
111{
112private:
115public:
117};
118
120template<class TypeTag>
121struct FluxVariablesCache<TypeTag, TTag::PoreNetworkModel>
123
125template<class TypeTag>
126struct IOFields<TypeTag, TTag::PNMOneP> { using type = Dumux::PoreNetwork::OnePIOFields; };
127
129template<class TypeTag>
130struct AdvectionType<TypeTag, TTag::PNMOneP>
131{
132private:
134 using TransmissibilityLaw = Dumux::PoreNetwork::TransmissibilityPatzekSilin<Scalar, false/*considerPoreBodyResistance*/>;
135public:
137};
138
140// Property values for isothermal model required for the general non-isothermal model
142
144template<class TypeTag>
145struct VolumeVariables<TypeTag, TTag::PNMOnePNI>
146{
147private:
156
158 template<class BaseTraits, class ETCM>
159 struct NITraits : public BaseTraits { using EffectiveThermalConductivityModel = ETCM; };
160
161public:
163};
164
166template<class TypeTag>
167struct IOFields<TypeTag, TTag::PNMOnePNI> { using type = EnergyIOFields<Dumux::PoreNetwork::OnePIOFields>; };
168
170template<class TypeTag>
171struct ModelTraits<TypeTag, TTag::PNMOnePNI> { using type = PorousMediumFlowNIModelTraits<OnePModelTraits>; };
172
174template<class TypeTag>
176
177} // end namespace Dumux::Properies
178
179#endif
This file contains the data which is required to calculate the fluxes of the pore network model over ...
Implementation of the single-phase transmissibility laws for throats.
The default class for spatial parameters for single-phase pore-network models.
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:150
Definition: common/properties.hh:37
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 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 a simple effective thermal conductivity.
Definition: thermalconductivityaverage.hh:37
Single-phase flow throat transmissibility based on Patzek & Silin (2001) https://doi....
Definition: transmissibility1p.hh:123
The default class for spatial parameters for single-phase pore-network models.
Definition: porenetwork1p.hh:39
Flux variables cache for the single-phase-flow PNM Store data required for flux calculation.
Definition: porenetwork/1p/fluxvariablescache.hh:38
Adds output fields specific to the PNM 1p model.
Definition: porenetwork/1p/iofields.hh:37
Definition: porenetwork/1p/model.hh:79
std::tuple< PoreNetworkModel, OneP > InheritsFrom
Definition: porenetwork/1p/model.hh:79
The type tags for the corresponding non-isothermal problems.
Definition: porenetwork/1p/model.hh:82
std::tuple< PNMOneP > InheritsFrom
Definition: porenetwork/1p/model.hh:82
Contains the quantities which are constant within a finite volume (the pore body) in the one-phase mo...
Definition: porenetwork/1p/volumevariables.hh:41
Traits class for the volume variables of the single-phase model.
Definition: porousmediumflow/1p/model.hh:91
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.
A single-phase, isothermal flow model using the fully implicit scheme.
The implicit non-isothermal model.
Base class for the flux variables.
Adds I/O fields specific to non-isothermal models.
Adds I/O fields specific to the tracer model.
Element-wise calculation of the residual for problems using the n-phase immiscible fully implicit mod...
Base class for the model specific class which provides access to all volume averaged quantities.