version 3.10.0
Loading...
Searching...
No Matches
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-FileCopyrightText: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
38
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>
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:49
Defines all properties used in Dumux.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition propertysystem.hh:296
Type tag for numeric models.
Definition grid.hh:24
The energy balance equation for a porous solid.
Definition common/properties.hh:26
Flux variables cache for the single-phase-flow PNM Store data required for flux calculation.
Adds output fields specific to the PNM 1p model.
The spatial parameters for single-phase pore-network models.
Contains the quantities which are constant within a finite volume (the pore body) in the one-phase mo...
Defines common properties required for all pore-network models.
A single-phase, isothermal flow model using the fully implicit scheme.
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.
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
PoreNetwork::CreepingFlow< Scalar, TransmissibilityLaw > type
Definition porenetwork/1p/model.hh:124
PoreNetwork::OnePFluxVariablesCache< GetPropType< TypeTag, Properties::AdvectionType > > type
Definition porenetwork/1p/model.hh:110
PoreNetwork::OnePIOFields type
Definition porenetwork/1p/model.hh:114
EnergyIOFields< PoreNetwork::OnePIOFields > type
Definition porenetwork/1p/model.hh:155
PorousMediumFlowNIModelTraits< OnePModelTraits > type
Definition porenetwork/1p/model.hh:159
PoreNetwork::OnePDefaultSpatialParams< GridGeometry, Scalar > type
Definition porenetwork/1p/model.hh:104
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
ThermalConductivityAverage< GetPropType< TypeTag, Properties::Scalar > > type
Definition porenetwork/1p/model.hh:163
PoreNetwork::OnePVolumeVariables< Traits > type
Definition porenetwork/1p/model.hh:92
PoreNetwork::OnePVolumeVariables< NITraits< BaseTraits, ETCM > > type
Definition porenetwork/1p/model.hh:150
Implementation of the single-phase transmissibility laws for throats.