3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
porousmediumflow/properties.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 *****************************************************************************/
24
25#ifndef DUMUX_POROUSMEDIUM_FLOW_PROPERTIES_HH
26#define DUMUX_POROUSMEDIUM_FLOW_PROPERTIES_HH
27
31
37
42
47
48namespace Dumux {
49namespace Properties {
50
52// Create new type tags
53namespace TTag {
54struct PorousMediumFlow { using InheritsFrom = std::tuple<ModelProperties>; };
55} // end namespace TTag
56
58template<class TypeTag>
59struct FluxVariables<TypeTag, TTag::PorousMediumFlow> { using type = PorousMediumFluxVariables<TypeTag>; };
60
62template<class TypeTag>
63struct FluxVariablesCache<TypeTag, TTag::PorousMediumFlow> { using type = PorousMediumFluxVariablesCache<TypeTag>; };
64
67template<class TypeTag>
69
71template<class TypeTag>
72struct AdvectionType<TypeTag, TTag::PorousMediumFlow> { using type = DarcysLaw<TypeTag>; };
73
75template<class TypeTag>
76struct MolecularDiffusionType<TypeTag, TTag::PorousMediumFlow> { using type = FicksLaw<TypeTag>; };
77
79template<class TypeTag>
80struct EnableCompositionalDispersion<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = false; };
81
83template<class TypeTag>
84struct EnableThermalDispersion<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = false; };
85
87template<class TypeTag>
88struct DispersionFluxType<TypeTag, TTag::PorousMediumFlow> { using type = DiffusiveDispersionFlux<TypeTag>; };
89
91template<class TypeTag>
92struct CompositionalDispersionModel<TypeTag, TTag::PorousMediumFlow> { using type = ScheideggersDispersionTensor<TypeTag>; };
93
95template<class TypeTag>
98
100template<class TypeTag>
101struct HeatConductionType<TypeTag, TTag::PorousMediumFlow> { using type = FouriersLaw<TypeTag>; };
102
104template<class TypeTag>
105struct SolutionDependentAdvection<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = true; };
106template<class TypeTag>
107struct SolutionDependentMolecularDiffusion<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = true; };
108template<class TypeTag>
109struct SolutionDependentHeatConduction<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = true; };
110
112template<class TypeTag>
113struct EnergyLocalResidual<TypeTag, TTag::PorousMediumFlow> { using type = Dumux::EnergyLocalResidual<TypeTag> ; };
114
116template<class TypeTag>
122
123template<class TypeTag>
124struct EnableThermalNonEquilibrium<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = false; };
125
127template<class TypeTag>
128struct EnableBoxInterfaceSolver<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = false; };
129
131template<class TypeTag>
132struct SolidState<TypeTag, TTag::PorousMediumFlow>
133{
134private:
137public:
139};
140
141// per default the solid system is inert with one constant component
142template<class TypeTag>
149
150} // namespace Properties
151} // namespace Dumux
152
153 #endif
Dispersion flux for different discretization schemes.
Setting constant fluid properties via the input file.
Scheidegger's dispersion tensor.
Represents all relevant thermodynamic quantities of a inert solid system.
The simplest solid phase consisting of a single solid component.
A helper class to fill the flux variables cache.
PorousMediumFluxVariablesCacheImplementation< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod > PorousMediumFluxVariablesCache
The flux variables cache classes for porous media.
Definition porousmediumflow/fluxvariablescache.hh:53
PorousMediumFluxVariablesCacheFillerImplementation< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod > PorousMediumFluxVariablesCacheFiller
The flux variables cache filler class for porous media.
Definition fluxvariablescachefiller.hh:48
FicksLawImplementation< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod, referenceSystem > FicksLaw
Evaluates the diffusive mass flux according to Fick's law.
Definition fickslaw_fwd.hh:45
DispersionFluxImplementation< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod, referenceSystem > DiffusiveDispersionFlux
Evaluates the dispersive flux.
Definition dispersionflux_fwd.hh:42
FouriersLawImplementation< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod > FouriersLaw
Evaluates the heat conduction flux according to Fouriers's law.
Definition fourierslaw_fwd.hh:43
DarcysLawImplementation< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod > DarcysLaw
Evaluates the normal component of the Darcy velocity on a (sub)control volume face.
Definition darcyslaw_fwd.hh:46
OneCSolid< Scalar, ComponentT, true > InertSolidPhase
A solid phase consisting of a single inert solid component.
Definition 1csolid.hh:137
Adaption of the non-isothermal two-phase two-component flow model to problems with CO2.
Definition adapt.hh:29
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition propertysystem.hh:180
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
Property whether to include compositional dispersion.
Definition common/properties.hh:89
Property whether to include thermal dispersion.
Definition common/properties.hh:91
Container storing the different types of flux variables.
Definition common/properties.hh:111
Stores data associated with flux vars.
Definition common/properties.hh:113
The engine behind the global flux cache (how to fill caches for the stencil).
Definition common/properties.hh:115
The local residual of the energy equation.
Definition common/properties.hh:137
The type for the calculation the advective fluxes.
Definition common/properties.hh:139
specifies if the parameters for the advective fluxes depend on the solution
Definition common/properties.hh:141
The type for the calculation of the molecular diffusion fluxes.
Definition common/properties.hh:143
The type for the calculation of the dispersive fluxes.
Definition common/properties.hh:145
specifies if the parameters for the diffusive fluxes depend on the solution
Definition common/properties.hh:147
The type for the calculation of the heat conduction fluxes.
Definition common/properties.hh:149
The type for the calculation of the compositional dispersion tensor.
Definition common/properties.hh:151
The type for the calculation of the thermal dispersion tensor.
Definition common/properties.hh:153
specifies if the parameters for the heat conduction fluxes depend on the solution
Definition common/properties.hh:155
The type of the solid system to use.
Definition common/properties.hh:164
The type of the solid state to use.
Definition common/properties.hh:166
specifies the velocity calculation module to be used
Definition common/properties.hh:172
Definition common/properties.hh:181
Definition common/properties.hh:265
A component which returns run time specified values for all fluid properties.
Definition constant.hh:61
Scheidegger's dispersion tensor.
Definition scheidegger.hh:55
Represents all relevant thermodynamic quantities of a inert solid system.
Definition inertsolidstate.hh:35
The porous medium flux variables class that computes advective / convective, molecular diffusive and ...
Definition porousmediumflow/fluxvariables.hh:53
Definition porousmediumflow/properties.hh:54
std::tuple< ModelProperties > InheritsFrom
Definition porousmediumflow/properties.hh:54
PorousMediumFluxVariables< TypeTag > type
Definition porousmediumflow/properties.hh:59
PorousMediumFluxVariablesCache< TypeTag > type
Definition porousmediumflow/properties.hh:63
PorousMediumFluxVariablesCacheFiller< TypeTag > type
Definition porousmediumflow/properties.hh:68
DarcysLaw< TypeTag > type
Definition porousmediumflow/properties.hh:72
FicksLaw< TypeTag > type
Definition porousmediumflow/properties.hh:76
static constexpr bool value
Definition porousmediumflow/properties.hh:80
static constexpr bool value
Definition porousmediumflow/properties.hh:84
DiffusiveDispersionFlux< TypeTag > type
Definition porousmediumflow/properties.hh:88
ScheideggersDispersionTensor< TypeTag > type
Definition porousmediumflow/properties.hh:92
GetPropType< TypeTag, Properties::CompositionalDispersionModel > type
Definition porousmediumflow/properties.hh:97
FouriersLaw< TypeTag > type
Definition porousmediumflow/properties.hh:101
static constexpr bool value
Definition porousmediumflow/properties.hh:105
static constexpr bool value
Definition porousmediumflow/properties.hh:107
static constexpr bool value
Definition porousmediumflow/properties.hh:109
Dumux::EnergyLocalResidual< TypeTag > type
Definition porousmediumflow/properties.hh:113
PorousMediumFlowVelocityOutput< GetPropType< TypeTag, Properties::GridVariables >, GetPropType< TypeTag, Properties::FluxVariables > > type
Definition porousmediumflow/properties.hh:119
static constexpr bool value
Definition porousmediumflow/properties.hh:124
static constexpr bool value
Definition porousmediumflow/properties.hh:128
InertSolidState< Scalar, SolidSystem > type
Definition porousmediumflow/properties.hh:138
SolidSystems::InertSolidPhase< Scalar, InertComponent > type
Definition porousmediumflow/properties.hh:147
Components::Constant< 1, Scalar > InertComponent
Definition porousmediumflow/properties.hh:146
GetPropType< TypeTag, Properties::Scalar > Scalar
Definition porousmediumflow/properties.hh:145
Velocity output policy for implicit (porous media) models.
Definition porousmediumflow/velocityoutput.hh:45
Declares all properties used in Dumux.
Defines a type tags and some fundamental properties for all models.
Base class for the flux variables.
Velocity output for porous media models.
Advective fluxes according to Darcy's law.
Diffusive mass flux according to Fick's law.
Diffusive heat flux according to Fourier's law.
Base class for the flux variables in porous medium models.
Element-wise calculation of the local residual for non-isothermal fully implicit models.
A VTK output module to simplify writing dumux simulation data to VTK format.