version 3.8
porousmediumflow/solidenergy/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//
7
28#ifndef DUMUX_SOLID_ENERGY_MODEL_HH
29#define DUMUX_SOLID_ENERGY_MODEL_HH
30
33
37
38namespace Dumux {
39
45{
46 static constexpr int temperatureIdx = 0;
47 static constexpr int energyEqIdx = 0;
48};
49
55{
57 static constexpr int numEq() { return 1; }
58 static constexpr int numFluidPhases() { return 0; }
59 static constexpr int numFluidComponents() { return 0; }
60 static constexpr int numSolidComponents() { return 1; }
61
62 static constexpr bool enableAdvection() { return false; }
63 static constexpr bool enableMolecularDiffusion() { return false; }
64 static constexpr bool enableEnergyBalance() { return true; }
65};
66
71template<class PV, class SSY, class SST, class MT>
73{
74 using PrimaryVariables = PV;
75 using SolidSystem = SSY;
76 using SolidState = SST;
77 using ModelTraits = MT;
78};
79
81{
93 template<class VolumeVariables, class SpatialParams, class Element, class FVGeometry>
94 static typename VolumeVariables::PrimaryVariables::value_type
95 effectiveThermalConductivity(const VolumeVariables& volVars,
96 const SpatialParams& spatialParams,
97 const Element& element,
98 const FVGeometry& fvGeometry,
99 const typename FVGeometry::SubControlVolume& scv)
100 {
101 return volVars.solidThermalConductivity()*(1.0-volVars.porosity());
102 }
103};
104
105// \{
106namespace Properties {
107
109// Type tags
111
113// Create new type tags
114namespace TTag {
115struct SolidEnergy { using InheritsFrom = std::tuple<PorousMediumFlow>; };
116} // end namespace TTag
117
119// Properties
121
123template<class TypeTag>
124struct ModelTraits<TypeTag, TTag::SolidEnergy> { using type = SolidEnergyModelTraits; };
125
127template<class TypeTag>
128struct LocalResidual<TypeTag, TTag::SolidEnergy> { using type = SolidEnergyLocalResidual<TypeTag>; };
129
131template<class TypeTag>
132struct IOFields<TypeTag, TTag::SolidEnergy> { using type = EnergyIOFields<>; };
133
135template<class TypeTag>
136struct VolumeVariables<TypeTag, TTag::SolidEnergy>
137{
138private:
143
145public:
147};
148
150template<class TypeTag>
151struct ThermalConductivityModel<TypeTag, TTag::SolidEnergy>
153
154} // end namespace Properties
155// \}
156} // end namespace Dumux
157
158#endif
Adds I/O fields specific to non-isothermal models.
Definition: porousmediumflow/nonisothermal/iofields.hh:27
Element-wise calculation of the residual.
Definition: porousmediumflow/solidenergy/localresidual.hh:26
Class for computation of all volume averaged quantities.
Definition: porousmediumflow/solidenergy/volumevariables.hh:29
Defines all properties used in Dumux.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:296
Definition: adapt.hh:17
Adds I/O fields specific to non-isothermal models.
Defines a type tag and some properties for models using the box scheme.
Element-wise calculation of the residual.
Class for computation of all volume averaged quantities.
Definition: porousmediumflow/solidenergy/model.hh:115
std::tuple< PorousMediumFlow > InheritsFrom
Definition: porousmediumflow/solidenergy/model.hh:115
The indices.
Definition: porousmediumflow/solidenergy/model.hh:45
static constexpr int energyEqIdx
Definition: porousmediumflow/solidenergy/model.hh:47
static constexpr int temperatureIdx
Definition: porousmediumflow/solidenergy/model.hh:46
The energy balance equation for a porous solid.
Definition: porousmediumflow/solidenergy/model.hh:55
static constexpr int numSolidComponents()
Definition: porousmediumflow/solidenergy/model.hh:60
static constexpr int numFluidPhases()
Definition: porousmediumflow/solidenergy/model.hh:58
static constexpr int numFluidComponents()
Definition: porousmediumflow/solidenergy/model.hh:59
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/solidenergy/model.hh:63
static constexpr bool enableEnergyBalance()
Definition: porousmediumflow/solidenergy/model.hh:64
static constexpr bool enableAdvection()
Definition: porousmediumflow/solidenergy/model.hh:62
static constexpr int numEq()
Definition: porousmediumflow/solidenergy/model.hh:57
The volume variable traits.
Definition: porousmediumflow/solidenergy/model.hh:73
MT ModelTraits
Definition: porousmediumflow/solidenergy/model.hh:77
PV PrimaryVariables
Definition: porousmediumflow/solidenergy/model.hh:74
SSY SolidSystem
Definition: porousmediumflow/solidenergy/model.hh:75
SST SolidState
Definition: porousmediumflow/solidenergy/model.hh:76
Definition: porousmediumflow/solidenergy/model.hh:81
static VolumeVariables::PrimaryVariables::value_type effectiveThermalConductivity(const VolumeVariables &volVars, const SpatialParams &spatialParams, const Element &element, const FVGeometry &fvGeometry, const typename FVGeometry::SubControlVolume &scv)
Relation for a simple effective thermal conductivity .
Definition: porousmediumflow/solidenergy/model.hh:95