version 3.11-dev
solidmechanics/plate/kirchhoff_love/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//
66#ifndef DUMUX_KIRCHHOFF_LOVE_PLATE_MODEL_HH
67#define DUMUX_KIRCHHOFF_LOVE_PLATE_MODEL_HH
68
71
72#include "localresidual.hh"
73#include "volumevariables.hh"
74
75namespace Dumux {
76
77template<class PV, class MT>
79{
80 using PrimaryVariables = PV;
81 using ModelTraits = MT;
82};
83
85{
86 static constexpr int shearGradPotentialIdx = 0;
87 static constexpr int verticalDeformationIdx = 1;
88 static constexpr int shearCurlPotentialIdx = 2;
89
90 static constexpr int shearGradPotentialEqIdx = 0;
91 static constexpr int deformationEqIdx = 1;
92 static constexpr int shearCurlPotentialEqIdx = 2;
93};
94
100{
102 static constexpr int numEq() { return 3; }
103};
104
106{
107 static constexpr int rotation0Idx = 0;
108 static constexpr int rotation1Idx = 1;
109
110 static constexpr int momentEq0Idx = 0;
111 static constexpr int momentEq1Idx = 1;
112};
113
119{
121 static constexpr int numEq() { return 2; }
122};
123
124} // end namespace Dumux
125
126namespace Dumux::Properties::TTag {
127struct KirchhoffLovePlateDeformation { using InheritsFrom = std::tuple<ModelProperties>; };
128struct KirchhoffLovePlateRotation { using InheritsFrom = std::tuple<ModelProperties>; };
129} // end namespace Dumux::Properties::TTag
130
131namespace Dumux::Properties {
132
133template<class TypeTag>
134struct ModelTraits<TypeTag, TTag::KirchhoffLovePlateDeformation>
136
137template<class TypeTag>
138struct LocalResidual<TypeTag, TTag::KirchhoffLovePlateDeformation>
140
142template<class TypeTag>
143struct VolumeVariables<TypeTag, TTag::KirchhoffLovePlateDeformation>
144{
149};
150
152// Rotation model
154
155template<class TypeTag>
156struct ModelTraits<TypeTag, TTag::KirchhoffLovePlateRotation>
158
159template<class TypeTag>
160struct LocalResidual<TypeTag, TTag::KirchhoffLovePlateRotation>
162
164template<class TypeTag>
165struct VolumeVariables<TypeTag, TTag::KirchhoffLovePlateRotation>
166{
171};
172
173} // end namespace Dumux::Properties
174
175#endif
Volume variables for the Kirchhoff-Love model (deformation, potentials)
Definition: solidmechanics/plate/kirchhoff_love/volumevariables.hh:26
Local residual for the Kirchhoff-Love model (deformation and potentials)
Definition: solidmechanics/plate/kirchhoff_love/localresidual.hh:33
Local residual for the Kirchhoff-Love model (rotations)
Definition: solidmechanics/plate/kirchhoff_love/localresidual.hh:114
Volume variables for the rotations.
Definition: solidmechanics/plate/kirchhoff_love/volumevariables.hh:55
Defines a type tags and some fundamental properties for all models.
Defines all properties used in Dumux.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:296
Type tag for numeric models.
Definition: grid.hh:24
The energy balance equation for a porous solid.
Definition: common/properties.hh:26
Definition: adapt.hh:17
Volume variables for the membrane plate model.
Local residual for the Mindlin-Reissner model.
Definition: solidmechanics/plate/kirchhoff_love/model.hh:85
static constexpr int shearGradPotentialEqIdx
Definition: solidmechanics/plate/kirchhoff_love/model.hh:90
static constexpr int shearGradPotentialIdx
Definition: solidmechanics/plate/kirchhoff_love/model.hh:86
static constexpr int shearCurlPotentialEqIdx
Definition: solidmechanics/plate/kirchhoff_love/model.hh:92
static constexpr int shearCurlPotentialIdx
Definition: solidmechanics/plate/kirchhoff_love/model.hh:88
static constexpr int deformationEqIdx
Definition: solidmechanics/plate/kirchhoff_love/model.hh:91
static constexpr int verticalDeformationIdx
Definition: solidmechanics/plate/kirchhoff_love/model.hh:87
Definition: solidmechanics/plate/kirchhoff_love/model.hh:106
static constexpr int rotation0Idx
Definition: solidmechanics/plate/kirchhoff_love/model.hh:107
static constexpr int momentEq1Idx
Definition: solidmechanics/plate/kirchhoff_love/model.hh:111
static constexpr int rotation1Idx
Definition: solidmechanics/plate/kirchhoff_love/model.hh:108
static constexpr int momentEq0Idx
Definition: solidmechanics/plate/kirchhoff_love/model.hh:110
KirchhoffLovePlateRotationModelTraits.
Definition: solidmechanics/plate/kirchhoff_love/model.hh:119
static constexpr int numEq()
Definition: solidmechanics/plate/kirchhoff_love/model.hh:121
KirchhoffLovePlateTraits.
Definition: solidmechanics/plate/kirchhoff_love/model.hh:100
static constexpr int numEq()
Definition: solidmechanics/plate/kirchhoff_love/model.hh:102
Definition: solidmechanics/plate/kirchhoff_love/model.hh:79
MT ModelTraits
Definition: solidmechanics/plate/kirchhoff_love/model.hh:81
PV PrimaryVariables
Definition: solidmechanics/plate/kirchhoff_love/model.hh:80
Definition: solidmechanics/plate/kirchhoff_love/model.hh:127
std::tuple< ModelProperties > InheritsFrom
Definition: solidmechanics/plate/kirchhoff_love/model.hh:127
Definition: solidmechanics/plate/kirchhoff_love/model.hh:128
std::tuple< ModelProperties > InheritsFrom
Definition: solidmechanics/plate/kirchhoff_love/model.hh:128
GetPropType< TypeTag, Properties::PrimaryVariables > PV
Definition: solidmechanics/plate/kirchhoff_love/model.hh:145
GetPropType< TypeTag, Properties::ModelTraits > MT
Definition: solidmechanics/plate/kirchhoff_love/model.hh:146
GetPropType< TypeTag, Properties::PrimaryVariables > PV
Definition: solidmechanics/plate/kirchhoff_love/model.hh:167
GetPropType< TypeTag, Properties::ModelTraits > MT
Definition: solidmechanics/plate/kirchhoff_love/model.hh:168