3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
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:
121 using ElasticStressType = HookesLaw< Scalar, GridGeometry >;
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
Type tag for numeric models.
Definition grid.hh:36
Traits class encapsulating model specifications.
Definition common/properties.hh:66
A class helping models to define input and output fields.
Definition common/properties.hh:76
Definition common/properties.hh:89
The secondary variables within a sub-control volume.
Definition common/properties.hh:118
The type used for the evaluation of stress tensors and forces.
Definition common/properties.hh:214
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
ElasticIndices Indices
export the type encapsulating indices
Definition geomechanics/poroelastic/model.hh:50
Definition geomechanics/poroelastic/model.hh:69
std::tuple< Elastic > InheritsFrom
Definition geomechanics/poroelastic/model.hh:69
PoroElasticLocalResidual< TypeTag > type
Definition geomechanics/poroelastic/model.hh:74
PoroElasticIOFields type
Definition geomechanics/poroelastic/model.hh:78
PoroElasticModelTraits< dim, numSC, numFP, numFC > type
Definition geomechanics/poroelastic/model.hh:92
PoroElasticVolumeVariables< Traits > type
Definition geomechanics/poroelastic/model.hh:111
EffectiveStressLaw< ElasticStressType, GridGeometry > type
Definition geomechanics/poroelastic/model.hh:123
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.
Defines the indices for the elastic model.
Adds I/O fields specific to the poro-elastic model.
Element-wise calculation of the local residual for problems using the poroelastic model.
Quantities required by the poroelastic model defined on a sub-control volume.