3.5-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 *****************************************************************************/
58#ifndef DUMUX_GEOMECHANICS_POROELASTIC_MODEL_HH
59#define DUMUX_GEOMECHANICS_POROELASTIC_MODEL_HH
60
61#include <dune/common/fvector.hh>
62
66
69
70#include "localresidual.hh"
71#include "volumevariables.hh"
72#include "iofields.hh"
73
74namespace Dumux {
75
80template< int dim, int numSC, int numFP, int numFC >
82{
86 static constexpr int numEq() { return dim; }
88 static constexpr int numFluidPhases() { return numFP; }
90 static constexpr int numFluidComponents() { return numFC; }
92 static constexpr int numSolidComponents() { return numSC; }
93
95 static constexpr bool enableEnergyBalance() { return false; }
96};
97
98namespace Properties {
99
101// Create new type tags
102namespace TTag {
103struct PoroElastic { using InheritsFrom = std::tuple<Elastic>; };
104} // end namespace TTag
105
107template<class TypeTag>
108struct LocalResidual<TypeTag, TTag::PoroElastic> { using type = PoroElasticLocalResidual<TypeTag>; };
109
111template<class TypeTag>
112struct IOFields<TypeTag, TTag::PoroElastic> { using type = PoroElasticIOFields; };
113
115template<class TypeTag>
116struct ModelTraits<TypeTag, TTag::PoroElastic>
117{
118private:
120 static constexpr int dim = GridView::dimension;
124
125public:
127};
128
130template<class TypeTag>
131struct VolumeVariables<TypeTag, TTag::PoroElastic>
132{
133private:
135 static constexpr int dim = GridView::dimension;
137 using DV = Dune::FieldVector<typename PV::value_type, dim>;
141
142 // we reuse the elastic volume variable traits here
144public:
146};
147
149template<class TypeTag>
150struct StressType<TypeTag, TTag::PoroElastic>
151{
152private:
155 using ElasticStressType = HookesLaw< Scalar, GridGeometry >;
156public:
158};
159
160} // namespace Properties
161} // namespace Dumux
162
163 #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
Definition propertysystem.hh:150
Type tag for numeric models.
Definition grid.hh:36
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:74
The secondary variables within a sub-control volume.
Definition common/properties.hh:107
The type used for the evaluation of stress tensors and forces.
Definition common/properties.hh:209
This computes the stress tensor and surface forces resulting from mechanical deformation.
Definition hookeslaw_fwd.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:102
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:42
Specifies a number properties of the poroelastic model.
Definition geomechanics/poroelastic/model.hh:82
static constexpr int numEq()
the number of equations is equal to grid dimension
Definition geomechanics/poroelastic/model.hh:86
static constexpr bool enableEnergyBalance()
Energy balance not yet implemented.
Definition geomechanics/poroelastic/model.hh:95
static constexpr int numSolidComponents()
We have one solid phase here.
Definition geomechanics/poroelastic/model.hh:92
static constexpr int numFluidPhases()
This model does not consider fluid phases.
Definition geomechanics/poroelastic/model.hh:88
static constexpr int numFluidComponents()
This model does not consider fluid phases.
Definition geomechanics/poroelastic/model.hh:90
ElasticIndices Indices
export the type encapsulating indices
Definition geomechanics/poroelastic/model.hh:84
Definition geomechanics/poroelastic/model.hh:103
std::tuple< Elastic > InheritsFrom
Definition geomechanics/poroelastic/model.hh:103
PoroElasticLocalResidual< TypeTag > type
Definition geomechanics/poroelastic/model.hh:108
PoroElasticIOFields type
Definition geomechanics/poroelastic/model.hh:112
PoroElasticModelTraits< dim, numSC, numFP, numFC > type
Definition geomechanics/poroelastic/model.hh:126
PoroElasticVolumeVariables< Traits > type
Definition geomechanics/poroelastic/model.hh:145
EffectiveStressLaw< ElasticStressType, GridGeometry > type
Definition geomechanics/poroelastic/model.hh:157
Contains the quantities which are constant within a finite volume in the poroelastic model.
Definition geomechanics/poroelastic/volumevariables.hh:41
A geomechanical model.
Element-wise calculation of the local residual for problems using the poroelastic model.
Declares all properties used in Dumux.
Defines the indices for the elastic model.
Adds I/O fields specific to the poro-elastic model.
Quantities required by the poroelastic model defined on a sub-control volume.