3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
geomechanics/elastic/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_ELASTIC_MODEL_HH
25#define DUMUX_GEOMECHANICS_ELASTIC_MODEL_HH
26
27#include <dune/common/fvector.hh>
28
31
34
35#include "indices.hh"
36#include "localresidual.hh"
37#include "volumevariables.hh"
38
39namespace Dumux {
40
45template< int dim, int numSolidComp >
47{
51 static constexpr int numEq() { return dim; }
53 static constexpr int numFluidPhases() { return 0; }
55 static constexpr int numFluidComponents() { return 0; }
57 static constexpr int numSolidComponents() { return numSolidComp; }
58
60 static constexpr bool enableEnergyBalance() { return false; }
61};
62
73template<class PV, class DV, class MT, class SST, class SSY>
75{
76 using PrimaryVariables = PV;
78 using ModelTraits = MT;
79 using SolidState = SST;
80 using SolidSystem = SSY;
81};
82
83namespace Properties {
84
86// Create new type tags
87namespace TTag {
88struct Elastic { using InheritsFrom = std::tuple<Geomechanics>; };
89} // end namespace TTag
90
92template<class TypeTag>
93struct LocalResidual<TypeTag, TTag::Elastic> { using type = ElasticLocalResidual<TypeTag>; };
94
96template<class TypeTag>
97struct ModelTraits<TypeTag, TTag::Elastic>
98{
101};
102
104template<class TypeTag>
105struct VolumeVariables<TypeTag, TTag::Elastic>
106{
107private:
110 using DV = Dune::FieldVector<typename PV::value_type, dim>;
115public:
117};
118
120template<class TypeTag>
121struct StressType<TypeTag, TTag::Elastic>
122{
125};
126
127} // namespace Properties
128} // namespace Dumux
129
130 #endif
Hooke's law specialized for different discretization schemes. This computes the stress tensor and sur...
make the local view function available whenever we use the grid geometry
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:65
Definition: common/properties.hh:91
The secondary variables within a sub-control volume.
Definition: common/properties.hh:174
The type used for the evaluation of stress tensors and forces.
Definition: common/properties.hh:270
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
Element-wise calculation of the local residual for problems using the elastic model considering linea...
Definition: geomechanics/elastic/localresidual.hh:41
Specifies a number properties of the elastic model.
Definition: geomechanics/elastic/model.hh:47
static constexpr int numFluidPhases()
This model does not consider fluid phases.
Definition: geomechanics/elastic/model.hh:53
static constexpr int numSolidComponents()
We have one solid phase here.
Definition: geomechanics/elastic/model.hh:57
static constexpr int numEq()
the number of equations is equal to grid dimension
Definition: geomechanics/elastic/model.hh:51
static constexpr bool enableEnergyBalance()
Energy balance not yet implemented.
Definition: geomechanics/elastic/model.hh:60
static constexpr int numFluidComponents()
This model does not consider fluid phases.
Definition: geomechanics/elastic/model.hh:55
Traits class for the volume variables of the elastic model.
Definition: geomechanics/elastic/model.hh:75
SST SolidState
Definition: geomechanics/elastic/model.hh:79
DV DisplacementVector
Definition: geomechanics/elastic/model.hh:77
PV PrimaryVariables
Definition: geomechanics/elastic/model.hh:76
MT ModelTraits
Definition: geomechanics/elastic/model.hh:78
SSY SolidSystem
Definition: geomechanics/elastic/model.hh:80
Definition: geomechanics/elastic/model.hh:88
std::tuple< Geomechanics > InheritsFrom
Definition: geomechanics/elastic/model.hh:88
Contains the quantities which are constant within a finite volume in the elastic model.
Definition: geomechanics/elastic/volumevariables.hh:44
Declares all properties used in Dumux.
Defines a type tag and some properties for geomechanical DuMuX models.
Defines a type tags and some fundamental properties for all models.
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 primary variable and equation indices used by the isothermal tracer model.