version 3.10-dev
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// SPDX-FileCopyrightInfo: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
39#ifndef DUMUX_PNM1P_MODEL_HH
40#define DUMUX_PNM1P_MODEL_HH
41
44
47
52
54
55#include "iofields.hh"
56#include "volumevariables.hh"
57#include "fluxvariablescache.hh"
58
59namespace Dumux::Properties {
60
62 // Type tags
64
66namespace TTag {
67struct PNMOneP { using InheritsFrom = std::tuple<PoreNetworkModel, OneP>; };
68
70struct PNMOnePNI { using InheritsFrom = std::tuple<PNMOneP>; };
71} // end namespace TTag
72
74// properties for the isothermal single phase model
76
78template<class TypeTag>
79struct VolumeVariables<TypeTag, TTag::PNMOneP>
80{
81private:
89
91public:
93};
94
97template<class TypeTag>
98struct SpatialParams<TypeTag, TTag::PNMOneP>
99{
100private:
103public:
105};
106
108template<class TypeTag>
109struct FluxVariablesCache<TypeTag, TTag::PoreNetworkModel>
111
113template<class TypeTag>
114struct IOFields<TypeTag, TTag::PNMOneP> { using type = PoreNetwork::OnePIOFields; };
115
117template<class TypeTag>
118struct AdvectionType<TypeTag, TTag::PNMOneP>
119{
120private:
122 using TransmissibilityLaw = PoreNetwork::TransmissibilityPatzekSilin<Scalar, false/*considerPoreBodyResistance*/>;
123public:
125};
126
128// Property values for isothermal model required for the general non-isothermal model
130
132template<class TypeTag>
133struct VolumeVariables<TypeTag, TTag::PNMOnePNI>
134{
135private:
144
146 template<class BaseTraits, class ETCM>
147 struct NITraits : public BaseTraits { using EffectiveThermalConductivityModel = ETCM; };
148
149public:
151};
152
154template<class TypeTag>
155struct IOFields<TypeTag, TTag::PNMOnePNI> { using type = EnergyIOFields<PoreNetwork::OnePIOFields>; };
156
158template<class TypeTag>
159struct ModelTraits<TypeTag, TTag::PNMOnePNI> { using type = PorousMediumFlowNIModelTraits<OnePModelTraits>; };
160
162template<class TypeTag>
163struct ThermalConductivityModel<TypeTag, TTag::PNMOnePNI> { using type = ThermalConductivityAverage<GetPropType<TypeTag, Properties::Scalar>>; };
164
165} // end namespace Dumux::Properties
166
167#endif
This file contains the data which is required to calculate the fluxes of the pore network model over ...
Adds I/O fields specific to non-isothermal models.
Definition: porousmediumflow/nonisothermal/iofields.hh:27
Hagen–Poiseuille-type flux law to describe the advective flux for pore-network models.
Definition: advection.hh:34
The default class for spatial parameters for single-phase pore-network models.
Definition: porenetwork/1p/spatialparams.hh:44
Flux variables cache for the single-phase-flow PNM Store data required for flux calculation.
Definition: porenetwork/1p/fluxvariablescache.hh:26
Adds output fields specific to the PNM 1p model.
Definition: porenetwork/1p/iofields.hh:25
Contains the quantities which are constant within a finite volume (the pore body) in the one-phase mo...
Definition: porenetwork/1p/volumevariables.hh:29
Single-phase flow throat transmissibility based on Patzek & Silin (2001) https://doi....
Definition: transmissibility1p.hh:114
Effective thermal conductivity based on weighted arithmetic average.
Definition: thermalconductivityaverage.hh:43
Defines all properties used in Dumux.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:296
The energy balance equation for a porous solid.
Definition: common/properties.hh:26
The spatial parameters for single-phase pore-network models.
Defines common properties required for all pore-network models.
A single-phase, isothermal flow model using the fully implicit scheme.
Base class for the flux variables.
Element-wise calculation of the residual for problems using the n-phase immiscible fully implicit mod...
Adds I/O fields specific to non-isothermal models.
The implicit non-isothermal model.
Adds I/O fields specific to the tracer model.
Python wrapper for volume variables (finite volume schemes)
Traits class for the volume variables of the single-phase model.
Definition: porousmediumflow/1p/model.hh:83
Specifies a number properties of non-isothermal porous medium flow models based on the specifics of a...
Definition: porousmediumflow/nonisothermal/model.hh:76
Definition: porenetwork/1p/model.hh:67
std::tuple< PoreNetworkModel, OneP > InheritsFrom
Definition: porenetwork/1p/model.hh:67
The type tags for the corresponding non-isothermal problems.
Definition: porenetwork/1p/model.hh:70
std::tuple< PNMOneP > InheritsFrom
Definition: porenetwork/1p/model.hh:70
Implementation of the single-phase transmissibility laws for throats.