version 3.11-dev
solidmechanics/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// SPDX-FileCopyrightText: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
39#ifndef DUMUX_SOLIDMECHANICS_ELASTIC_MODEL_HH
40#define DUMUX_SOLIDMECHANICS_ELASTIC_MODEL_HH
41
42#include <dune/common/fvector.hh>
43
46
51
52#include "indices.hh"
53#include "localresidual.hh"
54#include "volumevariables.hh"
56
57namespace Dumux {
58
63template< int dim, int numSolidComp >
65{
69 static constexpr int numEq() { return dim; }
71 static constexpr int numFluidPhases() { return 0; }
73 static constexpr int numFluidComponents() { return 0; }
75 static constexpr int numSolidComponents() { return numSolidComp; }
76
78 static constexpr bool enableEnergyBalance() { return false; }
79};
80
91template<class PV, class DV, class MT, class SST, class SSY>
93{
94 using PrimaryVariables = PV;
96 using ModelTraits = MT;
97 using SolidState = SST;
98 using SolidSystem = SSY;
99};
100
101namespace Properties {
102
104// Create new type tags
105namespace TTag {
106struct Elastic { using InheritsFrom = std::tuple<ModelProperties>; };
107} // end namespace TTag
108
110template<class TypeTag>
111struct LocalResidual<TypeTag, TTag::Elastic> { using type = ElasticLocalResidual<TypeTag>; };
112
114template<class TypeTag>
115struct ModelTraits<TypeTag, TTag::Elastic>
116{
119};
120
122template<class TypeTag>
123struct VolumeVariables<TypeTag, TTag::Elastic>
124{
125private:
128 using DV = Dune::FieldVector<typename PV::value_type, dim>;
133public:
135};
136
138template<class TypeTag>
139struct StressType<TypeTag, TTag::Elastic>
140{
143};
144
146template<class TypeTag>
147struct FluxVariablesCache<TypeTag, TTag::Elastic>
148{
151};
152
154template<class TypeTag>
155struct SolidState<TypeTag, TTag::Elastic>
156{
157private:
160public:
162};
163
165template<class TypeTag>
166struct SolidSystem<TypeTag, TTag::Elastic>
167{
168private:
171public:
173};
174
175} // namespace Properties
176} // namespace Dumux
177
178 #endif
The simplest solid phase consisting of a single solid component.
A component which returns run time specified values for all fluid properties.
Definition: constant.hh:48
Element-wise calculation of the local residual for problems using the elastic model considering linea...
Definition: solidmechanics/elastic/localresidual.hh:32
Contains the quantities which are constant within a finite volume in the elastic model.
Definition: solidmechanics/elastic/volumevariables.hh:32
This computes the stress tensor and surface forces resulting from mechanical deformation.
Definition: hookeslaw_fwd.hh:27
Represents all relevant thermodynamic quantities of a inert solid system.
Definition: inertsolidstate.hh:23
The simplest solid phase consisting of a single solid component.
Definition: 1csolid.hh:29
The stress variables cache classes for models involving solid mechanics. Store data required for stre...
Definition: stressvariablescache.hh:29
Defines a type tags and some fundamental properties for all models.
Defines all properties used in Dumux.
Setting constant fluid properties via the input file.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:296
Stress-Strain relationship according to Hooke's law.
Represents all relevant thermodynamic quantities of a inert solid system.
Definition: adapt.hh:17
Defines the indices for the elastic model.
Local residual for the hyperelastic model.
Volume variables for the hyperelasticity model.
Base class for the stress variables cache.
The indices for the linear elasticity model.
Definition: solidmechanics/elastic/indices.hh:22
Specifies a number properties of the elastic model.
Definition: solidmechanics/elastic/model.hh:65
static constexpr int numFluidPhases()
This model does not consider fluid phases.
Definition: solidmechanics/elastic/model.hh:71
static constexpr int numSolidComponents()
We have one solid phase here.
Definition: solidmechanics/elastic/model.hh:75
static constexpr int numEq()
the number of equations is equal to grid dimension
Definition: solidmechanics/elastic/model.hh:69
static constexpr bool enableEnergyBalance()
Energy balance not yet implemented.
Definition: solidmechanics/elastic/model.hh:78
static constexpr int numFluidComponents()
This model does not consider fluid phases.
Definition: solidmechanics/elastic/model.hh:73
Traits class for the volume variables of the elastic model.
Definition: solidmechanics/elastic/model.hh:93
SST SolidState
Definition: solidmechanics/elastic/model.hh:97
DV DisplacementVector
Definition: solidmechanics/elastic/model.hh:95
PV PrimaryVariables
Definition: solidmechanics/elastic/model.hh:94
MT ModelTraits
Definition: solidmechanics/elastic/model.hh:96
SSY SolidSystem
Definition: solidmechanics/elastic/model.hh:98
Definition: solidmechanics/elastic/model.hh:106
std::tuple< ModelProperties > InheritsFrom
Definition: solidmechanics/elastic/model.hh:106