version 3.10.0
Loading...
Searching...
No Matches
porousmediumflow/richardsextended/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//
49
50#ifndef DUMUX_RICHARDSEXTENDED_MODEL_HH
51#define DUMUX_RICHARDSEXTENDED_MODEL_HH
52
53#include <dune/common/fvector.hh>
54
56
64
72
73#include "indices.hh"
74#include "volumevariables.hh"
75#include "iofields.hh"
76#include "localresidual.hh"
77
78namespace Dumux {
79
85{
87
88 static constexpr bool enableMolecularDiffusion() { return true; }
89};
90
101template<class PV, class FSY, class FST, class SSY, class SST, class PT, class MT, class DT, class EDM>
103{
105 using FluidSystem = FSY;
106 using FluidState = FST;
107 using SolidSystem = SSY;
110 using ModelTraits = MT;
111 using DiffusionType = DT;
113};
114
115// \{
117// properties for the isothermal Richards model.
119namespace Properties {
120
122// Type tags
124
126// Create new type tags
127namespace TTag {
128struct ExtendedRichards { using InheritsFrom = std::tuple<Richards>; };
129struct ExtendedRichardsNI { using InheritsFrom = std::tuple<ExtendedRichards>; };
130} // end namespace TTag
131
133// Properties values
135
137template<class TypeTag>
138struct LocalResidual<TypeTag, TTag::ExtendedRichards> { using type = ExtendedRichardsLocalResidual<TypeTag>; };
139
141template<class TypeTag>
142struct IOFields<TypeTag, TTag::ExtendedRichards>
143{
145};
146
148template<class TypeTag>
149struct ModelTraits<TypeTag, TTag::ExtendedRichards> { using type = ExtendedRichardsModelTraits; };
150
152template<class TypeTag>
169
171template<class TypeTag>
172struct EffectiveDiffusivityModel<TypeTag, TTag::ExtendedRichards>
174
176template<class TypeTag>
177struct PrimaryVariables<TypeTag, TTag::ExtendedRichards>
178{
179private:
180 using PrimaryVariablesVector = Dune::FieldVector<GetPropType<TypeTag, Properties::Scalar>,
182public:
184};
185
187// Property values for non-isothermal Richars model
189
191template<class TypeTag>
192struct ModelTraits<TypeTag, TTag::ExtendedRichardsNI>
193{
194private:
195 using IsothermalTraits = ExtendedRichardsModelTraits;
196public:
198};
199
201template<class TypeTag>
202struct IOFields<TypeTag, TTag::ExtendedRichardsNI>
203{
205};
206
208template<class TypeTag>
209struct VolumeVariables<TypeTag, TTag::ExtendedRichardsNI>
210{
211private:
222
224 template<class BaseTraits, class ETCM>
225 struct NITraits : public BaseTraits { using EffectiveThermalConductivityModel = ETCM; };
226
227public:
229};
230
232template<class TypeTag>
233struct ThermalConductivityModel<TypeTag, TTag::ExtendedRichardsNI>
234{
235private:
237public:
239};
240
241// \}
242} // end namespace Properties
243} // end namespace Dumux
244
245#endif
Relation for the effective diffusion coefficient after Millington and Quirk.
Definition diffusivitymillingtonquirk.hh:43
Adds I/O fields specific to non-isothermal models.
Definition porousmediumflow/nonisothermal/iofields.hh:27
Adds I/O fields specific to the extended Richards model.
Definition porousmediumflow/richardsextended/iofields.hh:26
Element-wise calculation of the Jacobian matrix for problems using the extended Richards fully implic...
Definition porousmediumflow/richardsextended/localresidual.hh:34
Volume averaged quantities required by the extended Richards model.
Definition porousmediumflow/richardsextended/volumevariables.hh:41
A primary variable vector with a state to allow variable switches.
Definition switchableprimaryvariables.hh:28
Effective thermal conductivity after Somerton.
Definition somerton.hh:52
Defines all properties used in Dumux.
Relation for the effective diffusion coefficient after Millington and Quirk.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition propertysystem.hh:296
@ SST
Definition turbulencemodel.hh:63
A compositional two-phase fluid system with water and air as components in both, the liquid and the g...
Represents all relevant thermodynamic quantities of a multi-phase fluid system assuming immiscibility...
Type tag for numeric models.
Definition grid.hh:24
The energy balance equation for a porous solid.
Definition common/properties.hh:26
Definition adapt.hh:17
Element-wise calculation of the residual for problems using the n-phase immiscible fully implicit mod...
Defines the indices used by the non-isothermal two-phase two-component model.
Adds I/O fields specific to non-isothermal models.
The implicit non-isothermal model.
Defines a type tag and some properties for models using the box scheme.
Traits class to set options used by the local residual when when evaluating the balance equations.
This model implements a variant of the Richards' equation for quasi-twophase flow.
Velocity output for the Richards model.
Index names for the extended Richards model.
Adds I/O fields specific to the extended Richards model.
Element-wise calculation of the Jacobian matrix for problems using the extended Richards fully implic...
Volume averaged quantities required by the extended Richards model.
A simple implementation of pure water.
Effective thermal conductivity after Somerton.
Index names for the extended Richards model.
Definition porousmediumflow/richardsextended/indices.hh:26
Specifies a number properties of the extended Richards model.
Definition porousmediumflow/richardsextended/model.hh:85
ExtendedRichardsIndices Indices
Definition porousmediumflow/richardsextended/model.hh:86
static constexpr bool enableMolecularDiffusion()
Definition porousmediumflow/richardsextended/model.hh:88
Traits class for the Richards model.
Definition porousmediumflow/richardsextended/model.hh:103
FSY FluidSystem
Definition porousmediumflow/richardsextended/model.hh:105
PT PermeabilityType
Definition porousmediumflow/richardsextended/model.hh:109
SSY SolidSystem
Definition porousmediumflow/richardsextended/model.hh:107
PV PrimaryVariables
Definition porousmediumflow/richardsextended/model.hh:104
FST FluidState
Definition porousmediumflow/richardsextended/model.hh:106
DT DiffusionType
Definition porousmediumflow/richardsextended/model.hh:111
EDM EffectiveDiffusivityModel
Definition porousmediumflow/richardsextended/model.hh:112
MT ModelTraits
Definition porousmediumflow/richardsextended/model.hh:110
SST SolidState
Definition porousmediumflow/richardsextended/model.hh:108
Specifies a number properties of non-isothermal porous medium flow models based on the specifics of a...
Definition porousmediumflow/nonisothermal/model.hh:76
DiffusivityMillingtonQuirk< GetPropType< TypeTag, Properties::Scalar > > type
Definition porousmediumflow/richardsextended/model.hh:173
ExtendedRichardsIOFields type
Definition porousmediumflow/richardsextended/model.hh:144
EnergyIOFields< ExtendedRichardsIOFields > type
Definition porousmediumflow/richardsextended/model.hh:204
ExtendedRichardsLocalResidual< TypeTag > type
Definition porousmediumflow/richardsextended/model.hh:138
ExtendedRichardsModelTraits type
Definition porousmediumflow/richardsextended/model.hh:149
PorousMediumFlowNIModelTraits< IsothermalTraits > type
Definition porousmediumflow/richardsextended/model.hh:197
SwitchablePrimaryVariables< PrimaryVariablesVector, int > type
Definition porousmediumflow/richardsextended/model.hh:183
Definition porousmediumflow/richardsextended/model.hh:128
std::tuple< Richards > InheritsFrom
Definition porousmediumflow/richardsextended/model.hh:128
Definition porousmediumflow/richardsextended/model.hh:129
std::tuple< ExtendedRichards > InheritsFrom
Definition porousmediumflow/richardsextended/model.hh:129
ThermalConductivitySomertonTwoP< Scalar > type
Definition porousmediumflow/richardsextended/model.hh:238
ExtendedRichardsVolumeVariables< Traits > type
Definition porousmediumflow/richardsextended/model.hh:167
ExtendedRichardsVolumeVariables< NITraits< BaseTraits, ETCM > > type
Definition porousmediumflow/richardsextended/model.hh:228
Specifies a number properties of the Richards model.
Definition porousmediumflow/richards/model.hh:106
A primary variable vector with a state to allow variable switches.