version 3.7
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-FileCopyrightInfo: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
82#ifndef DUMUX_RICHARDSEXTENDED_MODEL_HH
83#define DUMUX_RICHARDSEXTENDED_MODEL_HH
84
85#include <dune/common/fvector.hh>
86
88
96
104
105#include "indices.hh"
106#include "volumevariables.hh"
107#include "iofields.hh"
108#include "localresidual.hh"
109
110namespace Dumux {
111
117{
119
120 static constexpr bool enableMolecularDiffusion() { return true; }
121};
122
133template<class PV, class FSY, class FST, class SSY, class SST, class PT, class MT, class DT, class EDM>
135{
137 using FluidSystem = FSY;
138 using FluidState = FST;
139 using SolidSystem = SSY;
142 using ModelTraits = MT;
143 using DiffusionType = DT;
145};
146
147// \{
149// properties for the isothermal Richards model.
151namespace Properties {
152
154// Type tags
156
158// Create new type tags
159namespace TTag {
160struct ExtendedRichards { using InheritsFrom = std::tuple<Richards>; };
161struct ExtendedRichardsNI { using InheritsFrom = std::tuple<ExtendedRichards>; };
162} // end namespace TTag
163
165// Properties values
167
169template<class TypeTag>
170struct LocalResidual<TypeTag, TTag::ExtendedRichards> { using type = ExtendedRichardsLocalResidual<TypeTag>; };
171
173template<class TypeTag>
174struct IOFields<TypeTag, TTag::ExtendedRichards>
175{
177};
178
180template<class TypeTag>
181struct ModelTraits<TypeTag, TTag::ExtendedRichards> { using type = ExtendedRichardsModelTraits; };
182
184template<class TypeTag>
185struct VolumeVariables<TypeTag, TTag::ExtendedRichards>
186{
187private:
198public:
200};
201
203template<class TypeTag>
204struct EffectiveDiffusivityModel<TypeTag, TTag::ExtendedRichards>
206
208template<class TypeTag>
209struct PrimaryVariables<TypeTag, TTag::ExtendedRichards>
210{
211private:
212 using PrimaryVariablesVector = Dune::FieldVector<GetPropType<TypeTag, Properties::Scalar>,
214public:
216};
217
219// Property values for non-isothermal Richars model
221
223template<class TypeTag>
224struct ModelTraits<TypeTag, TTag::ExtendedRichardsNI>
225{
226private:
228public:
230};
231
233template<class TypeTag>
234struct IOFields<TypeTag, TTag::ExtendedRichardsNI>
235{
237};
238
240template<class TypeTag>
241struct VolumeVariables<TypeTag, TTag::ExtendedRichardsNI>
242{
243private:
254
256 template<class BaseTraits, class ETCM>
257 struct NITraits : public BaseTraits { using EffectiveThermalConductivityModel = ETCM; };
258
259public:
261};
262
264template<class TypeTag>
265struct ThermalConductivityModel<TypeTag, TTag::ExtendedRichardsNI>
266{
267private:
269public:
271};
272
273// \}
274} // end namespace Properties
275} // end namespace Dumux
276
277#endif
Relation for the saturation-dependent effective diffusion coefficient.
Definition: diffusivitymillingtonquirk.hh:40
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
Relation for the saturation-dependent effective thermal conductivity.
Definition: somerton.hh:48
Defines all properties used in Dumux.
Relation for the saturation-dependent effective diffusion coefficient.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:267
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...
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.
Defines the primary variable and equation indices used by the isothermal tracer model.
Adds I/O fields specific to the tracer model.
Element-wise calculation of the local residual for problems using fully implicit tracer model.
Python wrapper for volume variables (finite volume schemes)
A simple implementation of pure water.
Relation for the saturation-dependent effective thermal conductivity.
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:117
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/richardsextended/model.hh:120
Traits class for the Richards model.
Definition: porousmediumflow/richardsextended/model.hh:135
FSY FluidSystem
Definition: porousmediumflow/richardsextended/model.hh:137
PT PermeabilityType
Definition: porousmediumflow/richardsextended/model.hh:141
SSY SolidSystem
Definition: porousmediumflow/richardsextended/model.hh:139
PV PrimaryVariables
Definition: porousmediumflow/richardsextended/model.hh:136
FST FluidState
Definition: porousmediumflow/richardsextended/model.hh:138
DT DiffusionType
Definition: porousmediumflow/richardsextended/model.hh:143
EDM EffectiveDiffusivityModel
Definition: porousmediumflow/richardsextended/model.hh:144
MT ModelTraits
Definition: porousmediumflow/richardsextended/model.hh:142
SST SolidState
Definition: porousmediumflow/richardsextended/model.hh:140
Specifies a number properties of non-isothermal porous medium flow models based on the specifics of a...
Definition: porousmediumflow/nonisothermal/model.hh:58
Definition: porousmediumflow/richardsextended/model.hh:160
std::tuple< Richards > InheritsFrom
Definition: porousmediumflow/richardsextended/model.hh:160
Definition: porousmediumflow/richardsextended/model.hh:161
std::tuple< ExtendedRichards > InheritsFrom
Definition: porousmediumflow/richardsextended/model.hh:161
Index names for the Richards model.
Definition: porousmediumflow/richards/indices.hh:24
Specifies a number properties of the Richards model.
Definition: porousmediumflow/richards/model.hh:116
A primary variable vector with a state to allow variable switches.