version 3.7
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
22#ifndef DUMUX_SOLID_ENERGY_MODEL_HH
23#define DUMUX_SOLID_ENERGY_MODEL_HH
24
27
31
32namespace Dumux {
33
39{
40 static constexpr int temperatureIdx = 0;
41 static constexpr int energyEqIdx = 0;
42};
43
49{
51 static constexpr int numEq() { return 1; }
52 static constexpr int numFluidPhases() { return 0; }
53 static constexpr int numFluidComponents() { return 0; }
54 static constexpr int numSolidComponents() { return 1; }
55
56 static constexpr bool enableAdvection() { return false; }
57 static constexpr bool enableMolecularDiffusion() { return false; }
58 static constexpr bool enableEnergyBalance() { return true; }
59};
60
65template<class PV, class SSY, class SST, class MT>
67{
68 using PrimaryVariables = PV;
69 using SolidSystem = SSY;
70 using SolidState = SST;
71 using ModelTraits = MT;
72};
73
75{
87 template<class VolumeVariables, class SpatialParams, class Element, class FVGeometry>
88 static typename VolumeVariables::PrimaryVariables::value_type
89 effectiveThermalConductivity(const VolumeVariables& volVars,
90 const SpatialParams& spatialParams,
91 const Element& element,
92 const FVGeometry& fvGeometry,
93 const typename FVGeometry::SubControlVolume& scv)
94 {
95 return volVars.solidThermalConductivity()*(1.0-volVars.porosity());
96 }
97};
98
99// \{
100namespace Properties {
101
103// Type tags
105
107// Create new type tags
108namespace TTag {
109struct SolidEnergy { using InheritsFrom = std::tuple<PorousMediumFlow>; };
110} // end namespace TTag
111
113// Properties
115
117template<class TypeTag>
118struct ModelTraits<TypeTag, TTag::SolidEnergy> { using type = SolidEnergyModelTraits; };
119
121template<class TypeTag>
122struct LocalResidual<TypeTag, TTag::SolidEnergy> { using type = SolidEnergyLocalResidual<TypeTag>; };
123
125template<class TypeTag>
126struct IOFields<TypeTag, TTag::SolidEnergy> { using type = EnergyIOFields<>; };
127
129template<class TypeTag>
130struct VolumeVariables<TypeTag, TTag::SolidEnergy>
131{
132private:
137
139public:
141};
142
144template<class TypeTag>
145struct ThermalConductivityModel<TypeTag, TTag::SolidEnergy>
147
148} // end namespace Properties
149// \}
150} // end namespace Dumux
151
152#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:267
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:109
std::tuple< PorousMediumFlow > InheritsFrom
Definition: porousmediumflow/solidenergy/model.hh:109
The indices.
Definition: porousmediumflow/solidenergy/model.hh:39
static constexpr int energyEqIdx
Definition: porousmediumflow/solidenergy/model.hh:41
static constexpr int temperatureIdx
Definition: porousmediumflow/solidenergy/model.hh:40
The energy balance equation for a porous solid.
Definition: porousmediumflow/solidenergy/model.hh:49
static constexpr int numSolidComponents()
Definition: porousmediumflow/solidenergy/model.hh:54
static constexpr int numFluidPhases()
Definition: porousmediumflow/solidenergy/model.hh:52
static constexpr int numFluidComponents()
Definition: porousmediumflow/solidenergy/model.hh:53
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/solidenergy/model.hh:57
static constexpr bool enableEnergyBalance()
Definition: porousmediumflow/solidenergy/model.hh:58
static constexpr bool enableAdvection()
Definition: porousmediumflow/solidenergy/model.hh:56
static constexpr int numEq()
Definition: porousmediumflow/solidenergy/model.hh:51
The volume variable traits.
Definition: porousmediumflow/solidenergy/model.hh:67
MT ModelTraits
Definition: porousmediumflow/solidenergy/model.hh:71
PV PrimaryVariables
Definition: porousmediumflow/solidenergy/model.hh:68
SSY SolidSystem
Definition: porousmediumflow/solidenergy/model.hh:69
SST SolidState
Definition: porousmediumflow/solidenergy/model.hh:70
Definition: porousmediumflow/solidenergy/model.hh:75
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:89