version 3.11-dev
Loading...
Searching...
No Matches
solidmechanics/hyperelastic_voliso/variables.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//
13#ifndef DUMUX_SOLIDMECHANICS_HYPERELASTIC_VOLISO_VARIABLES_HH
14#define DUMUX_SOLIDMECHANICS_HYPERELASTIC_VOLISO_VARIABLES_HH
15
16#include <dumux/common/concepts/ipdata_.hh>
17
18namespace Dumux {
19
24template <class Traits>
26{
27 using Scalar = typename Traits::PrimaryVariables::value_type;
28
29 static_assert(Traits::PrimaryVariables::dimension == Traits::ModelTraits::numEq());
30
31public:
33 using PrimaryVariables = typename Traits::PrimaryVariables;
34
36 using Indices = typename Traits::ModelTraits::Indices;
37
47 template<class ElementSolution, class Problem, class ElementDiscretization, Concept::LocalDofIpData IpData>
48 void update(const ElementSolution& elemSol,
49 const Problem& problem,
50 const ElementDiscretization& elemDisc,
51 const IpData& ipData)
52 {
53 priVars_ = elemSol[ipData.localDofIndex()];
54 }
55
57 { return priVars_; }
58
59 Scalar displacement(const int dirIdx) const
60 { return priVars_[dirIdx]; }
61
66 Scalar priVar(const int pvIdx) const
67 { return priVars_[pvIdx]; }
68
73 { return priVars_; }
74
78 Scalar extrusionFactor() const
79 { return 1.0; }
80
81private:
82 PrimaryVariables priVars_;
83};
84
85
90template <class Traits>
92{
93 using Scalar = typename Traits::PrimaryVariables::value_type;
94
95 static_assert(Traits::PrimaryVariables::dimension == Traits::ModelTraits::numEq());
96
97public:
99 using PrimaryVariables = typename Traits::PrimaryVariables;
100
102 using Indices = typename Traits::ModelTraits::Indices;
103
113 template<class ElementSolution, class Problem, class ElementDiscretization, Concept::LocalDofIpData IpData>
114 void update(const ElementSolution& elemSol,
115 const Problem& problem,
116 const ElementDiscretization& elemDisc,
117 const IpData& ipData)
118 {
119 priVars_ = elemSol[ipData.localDofIndex()];
120 }
121
122 Scalar pressure() const
123 { return priVars_[0]; }
124
129 Scalar priVar(const int pvIdx) const
130 { return priVars_[pvIdx]; }
131
136 { return priVars_; }
137
141 Scalar extrusionFactor() const
142 { return 1.0; }
143
144private:
145 PrimaryVariables priVars_;
146};
147
148} // end namespace Dumux
149
150#endif
Volume variables for the momentum subdomain (displacement).
Definition solidmechanics/hyperelastic_voliso/variables.hh:26
typename HyperelasticVolIsoMomentumVVTraits< PV, MT >::PrimaryVariables PrimaryVariables
Definition solidmechanics/hyperelastic_voliso/variables.hh:33
void update(const ElementSolution &elemSol, const Problem &problem, const ElementDiscretization &elemDisc, const IpData &ipData)
Update all quantities for a local dof.
Definition solidmechanics/hyperelastic_voliso/variables.hh:48
PrimaryVariables displacement() const
Definition solidmechanics/hyperelastic_voliso/variables.hh:56
Scalar extrusionFactor() const
Returns the factor by which a lower-dimensional entity needs to be extruded.
Definition solidmechanics/hyperelastic_voliso/variables.hh:78
Scalar priVar(const int pvIdx) const
Return a component of primary variable vector.
Definition solidmechanics/hyperelastic_voliso/variables.hh:66
typename HyperelasticVolIsoMomentumVVTraits< PV, MT >::ModelTraits::Indices Indices
Definition solidmechanics/hyperelastic_voliso/variables.hh:36
const PrimaryVariables & priVars() const
Return the primary variable vector.
Definition solidmechanics/hyperelastic_voliso/variables.hh:72
Scalar displacement(const int dirIdx) const
Definition solidmechanics/hyperelastic_voliso/variables.hh:59
Volume variables for the pressure subdomain (bulk pressure).
Definition solidmechanics/hyperelastic_voliso/variables.hh:92
typename HyperelasticVolIsoPressureVVTraits< PV, MT >::ModelTraits::Indices Indices
Definition solidmechanics/hyperelastic_voliso/variables.hh:102
void update(const ElementSolution &elemSol, const Problem &problem, const ElementDiscretization &elemDisc, const IpData &ipData)
Update all quantities for a local dof.
Definition solidmechanics/hyperelastic_voliso/variables.hh:114
const PrimaryVariables & priVars() const
Return the primary variable vector.
Definition solidmechanics/hyperelastic_voliso/variables.hh:135
typename HyperelasticVolIsoPressureVVTraits< PV, MT >::PrimaryVariables PrimaryVariables
Definition solidmechanics/hyperelastic_voliso/variables.hh:99
Scalar priVar(const int pvIdx) const
Return a component of primary variable vector.
Definition solidmechanics/hyperelastic_voliso/variables.hh:129
Scalar extrusionFactor() const
Returns the factor by which a lower-dimensional entity needs to be extruded.
Definition solidmechanics/hyperelastic_voliso/variables.hh:141
Scalar pressure() const
Definition solidmechanics/hyperelastic_voliso/variables.hh:122
Definition adapt.hh:17