3.3.0
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
geomechanics/poroelastic/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 * See the file COPYING for full copying permissions. *
5 * *
6 * This program is free software: you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation, either version 3 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
18 *****************************************************************************/
24#ifndef DUMUX_GEOMECHANICS_POROELASTIC_MODEL_HH
25#define DUMUX_GEOMECHANICS_POROELASTIC_MODEL_HH
26
27#include <dune/common/fvector.hh>
28
32
35
36#include "localresidual.hh"
37#include "volumevariables.hh"
38#include "iofields.hh"
39
40namespace Dumux {
41
46template< int dim, int numSC, int numFP, int numFC >
48{
52 static constexpr int numEq() { return dim; }
54 static constexpr int numFluidPhases() { return numFP; }
56 static constexpr int numFluidComponents() { return numFC; }
58 static constexpr int numSolidComponents() { return numSC; }
59
61 static constexpr bool enableEnergyBalance() { return false; }
62};
63
64namespace Properties {
65
67// Create new type tags
68namespace TTag {
69struct PoroElastic { using InheritsFrom = std::tuple<Elastic>; };
70} // end namespace TTag
71
73template<class TypeTag>
74struct LocalResidual<TypeTag, TTag::PoroElastic> { using type = PoroElasticLocalResidual<TypeTag>; };
75
77template<class TypeTag>
78struct IOFields<TypeTag, TTag::PoroElastic> { using type = PoroElasticIOFields; };
79
81template<class TypeTag>
82struct ModelTraits<TypeTag, TTag::PoroElastic>
83{
84private:
86 static constexpr int dim = GridView::dimension;
90
91public:
93};
94
96template<class TypeTag>
97struct VolumeVariables<TypeTag, TTag::PoroElastic>
98{
99private:
101 static constexpr int dim = GridView::dimension;
103 using DV = Dune::FieldVector<typename PV::value_type, dim>;
107
108 // we reuse the elastic volume variable traits here
110public:
112};
113
115template<class TypeTag>
116struct StressType<TypeTag, TTag::PoroElastic>
117{
118private:
122public:
124};
125
126} // namespace Properties
127} // namespace Dumux
128
129 #endif
The effective stress law specialized for different discretization schemes. This computes the stress t...
Hooke's law specialized for different discretization schemes. This computes the stress tensor and sur...
Definition: adapt.hh:29
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition: propertysystem.hh:149
Traits class encapsulating model specifications.
Definition: common/properties.hh:53
A class helping models to define input and output fields.
Definition: common/properties.hh:63
Definition: common/properties.hh:77
The secondary variables within a sub-control volume.
Definition: common/properties.hh:106
The type used for the evaluation of stress tensors and forces.
Definition: common/properties.hh:202
This computes the stress tensor and surface forces resulting from poro-mechanical deformation.
Definition: effectivestresslaw.hh:39
This computes the stress tensor and surface forces resulting from mechanical deformation.
Definition: hookeslaw.hh:39
The indices for the linear elasticity model.
Definition: geomechanics/elastic/indices.hh:34
Traits class for the volume variables of the elastic model.
Definition: geomechanics/elastic/model.hh:75
Adds I/O fields specific to the poro-elastic model.
Definition: geomechanics/poroelastic/iofields.hh:36
Element-wise calculation of the local residual for problems using the poroelastic model.
Definition: geomechanics/poroelastic/localresidual.hh:40
Specifies a number properties of the poroelastic model.
Definition: geomechanics/poroelastic/model.hh:48
static constexpr int numEq()
the number of equations is equal to grid dimension
Definition: geomechanics/poroelastic/model.hh:52
static constexpr bool enableEnergyBalance()
Energy balance not yet implemented.
Definition: geomechanics/poroelastic/model.hh:61
static constexpr int numSolidComponents()
We have one solid phase here.
Definition: geomechanics/poroelastic/model.hh:58
static constexpr int numFluidPhases()
This model does not consider fluid phases.
Definition: geomechanics/poroelastic/model.hh:54
static constexpr int numFluidComponents()
This model does not consider fluid phases.
Definition: geomechanics/poroelastic/model.hh:56
Definition: geomechanics/poroelastic/model.hh:69
std::tuple< Elastic > InheritsFrom
Definition: geomechanics/poroelastic/model.hh:69
Contains the quantities which are constant within a finite volume in the poroelastic model.
Definition: geomechanics/poroelastic/volumevariables.hh:40
Declares all properties used in Dumux.
Defines a type tag and some properties for the elastic geomechanical model.
Adds I/O fields specific to the tracer model.
Element-wise calculation of the local residual for problems using fully implicit tracer model.
Base class for the model specific class which provides access to all volume averaged quantities.
Defines the indices for the elastic model.