version 3.8
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// SPDX-FileCopyrightInfo: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
13#ifndef DUMUX_POROUSMEDIUM_FLOW_PROPERTIES_HH
14#define DUMUX_POROUSMEDIUM_FLOW_PROPERTIES_HH
15
19
25
30
35
36namespace Dumux {
37namespace Properties {
38
40// Create new type tags
41namespace TTag {
42struct PorousMediumFlow { using InheritsFrom = std::tuple<ModelProperties>; };
43} // end namespace TTag
44
46template<class TypeTag>
47struct FluxVariables<TypeTag, TTag::PorousMediumFlow> { using type = PorousMediumFluxVariables<TypeTag>; };
48
50template<class TypeTag>
51struct FluxVariablesCache<TypeTag, TTag::PorousMediumFlow> { using type = PorousMediumFluxVariablesCache<TypeTag>; };
52
55template<class TypeTag>
56struct FluxVariablesCacheFiller<TypeTag, TTag::PorousMediumFlow> { using type = PorousMediumFluxVariablesCacheFiller<TypeTag>; };
57
59template<class TypeTag>
60struct AdvectionType<TypeTag, TTag::PorousMediumFlow> { using type = DarcysLaw<TypeTag>; };
61
63template<class TypeTag>
64struct MolecularDiffusionType<TypeTag, TTag::PorousMediumFlow> { using type = FicksLaw<TypeTag>; };
65
67template<class TypeTag>
68struct EnableCompositionalDispersion<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = false; };
69
71template<class TypeTag>
72struct EnableThermalDispersion<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = false; };
73
75template<class TypeTag>
76struct DispersionFluxType<TypeTag, TTag::PorousMediumFlow> { using type = DiffusiveDispersionFlux<TypeTag>; };
77
79template<class TypeTag>
80struct CompositionalDispersionModel<TypeTag, TTag::PorousMediumFlow> { using type = ScheideggersDispersionTensor<TypeTag>; };
81
83template<class TypeTag>
84struct ThermalDispersionModel<TypeTag, TTag::PorousMediumFlow>
86
88template<class TypeTag>
89struct HeatConductionType<TypeTag, TTag::PorousMediumFlow> { using type = FouriersLaw<TypeTag>; };
90
92template<class TypeTag>
93struct SolutionDependentAdvection<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = true; };
94template<class TypeTag>
95struct SolutionDependentMolecularDiffusion<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = true; };
96template<class TypeTag>
97struct SolutionDependentHeatConduction<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = true; };
98
100template<class TypeTag>
101struct EnergyLocalResidual<TypeTag, TTag::PorousMediumFlow> { using type = Dumux::EnergyLocalResidual<TypeTag> ; };
102
104template<class TypeTag>
105struct VelocityOutput<TypeTag, TTag::PorousMediumFlow>
106{
109};
110
111template<class TypeTag>
112struct EnableThermalNonEquilibrium<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = false; };
113
115template<class TypeTag>
116struct EnableBoxInterfaceSolver<TypeTag, TTag::PorousMediumFlow> { static constexpr bool value = false; };
117
119template<class TypeTag>
120struct SolidState<TypeTag, TTag::PorousMediumFlow>
121{
122private:
125public:
127};
128
129// per default the solid system is inert with one constant component
130template<class TypeTag>
131struct SolidSystem<TypeTag, TTag::PorousMediumFlow>
132{
136};
137
138} // namespace Properties
139} // namespace Dumux
140
141 #endif
The simplest solid phase consisting of a single solid component.
A component which returns run time specified values for all fluid properties.
Definition: constant.hh:49
forward declaration of the method-specific implementation
Definition: flux/ccmpfa/darcyslaw.hh:27
Definition: box/dispersionflux.hh:30
Definition: porousmediumflow/nonisothermal/localresidual.hh:24
forward declaration of the method-specific implementation
Definition: flux/box/fickslaw.hh:32
forward declaration of the method-specific implementation
Definition: flux/box/fourierslaw.hh:26
Represents all relevant thermodynamic quantities of a inert solid system.
Definition: inertsolidstate.hh:23
Velocity output policy for implicit (porous media) models.
Definition: porousmediumflow/velocityoutput.hh:33
Definition: fluxvariablescachefiller.hh:27
Definition: porousmediumflow/fluxvariablescache.hh:24
The porous medium flux variables class that computes advective / convective, molecular diffusive and ...
Definition: porousmediumflow/fluxvariables.hh:41
Scheidegger's dispersion tensor.
Definition: scheidegger.hh:43
The simplest solid phase consisting of a single solid component.
Definition: 1csolid.hh:29
Velocity output for implicit (porous media) models.
Definition: io/velocityoutput.hh:29
Defines a type tags and some fundamental properties for all models.
Defines all properties used in Dumux.
Setting constant fluid properties via the input file.
Dispersion flux for different discretization schemes.
Advective fluxes according to Darcy's law.
Diffusive mass flux according to Fick's law.
Diffusive heat flux according to Fourier's law.
A helper class to fill the flux variables cache.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:296
Represents all relevant thermodynamic quantities of a inert solid system.
A VTK output module to simplify writing dumux simulation data to VTK format.
Definition: adapt.hh:17
Base class for the flux variables in porous medium models.
Base class for the flux variables.
Element-wise calculation of the local residual for non-isothermal fully implicit models.
Velocity output for porous media models.
GetPropType< TypeTag, Properties::Scalar > Scalar
Definition: porousmediumflow/properties.hh:133
Definition: porousmediumflow/properties.hh:42
std::tuple< ModelProperties > InheritsFrom
Definition: porousmediumflow/properties.hh:42
GetPropType< TypeTag, Properties::CompositionalDispersionModel > type
Definition: porousmediumflow/properties.hh:85