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//
12#ifndef DUMUX_SOLIDMECHANICS_HYPERELASTIC_VOLISO_VARIABLES_HH
13#define DUMUX_SOLIDMECHANICS_HYPERELASTIC_VOLISO_VARIABLES_HH
14
15#include <dumux/common/concepts/ipdata_.hh>
16
17namespace Dumux {
18
23template <class Traits>
25{
26 using Scalar = typename Traits::PrimaryVariables::value_type;
27
28 static_assert(Traits::PrimaryVariables::dimension == Traits::ModelTraits::numEq());
29
30public:
32 using PrimaryVariables = typename Traits::PrimaryVariables;
33
35 using Indices = typename Traits::ModelTraits::Indices;
36
46 template<class ElementSolution, class Problem, class ElementDiscretization, Concept::LocalDofIpData IpData>
47 void update(const ElementSolution& elemSol,
48 const Problem& problem,
49 const ElementDiscretization& elemDisc,
50 const IpData& ipData)
51 {
52 priVars_ = elemSol[ipData.localDofIndex()];
53 }
54
56 { return priVars_; }
57
58 Scalar displacement(const int dirIdx) const
59 { return priVars_[dirIdx]; }
60
65 Scalar priVar(const int pvIdx) const
66 { return priVars_[pvIdx]; }
67
72 { return priVars_; }
73
77 Scalar extrusionFactor() const
78 { return 1.0; }
79
80private:
81 PrimaryVariables priVars_;
82};
83
84
89template <class Traits>
91{
92 using Scalar = typename Traits::PrimaryVariables::value_type;
93
94 static_assert(Traits::PrimaryVariables::dimension == Traits::ModelTraits::numEq());
95
96public:
98 using PrimaryVariables = typename Traits::PrimaryVariables;
99
101 using Indices = typename Traits::ModelTraits::Indices;
102
112 template<class ElementSolution, class Problem, class ElementDiscretization, Concept::LocalDofIpData IpData>
113 void update(const ElementSolution& elemSol,
114 const Problem& problem,
115 const ElementDiscretization& elemDisc,
116 const IpData& ipData)
117 {
118 priVars_ = elemSol[ipData.localDofIndex()];
119 }
120
121 Scalar pressure() const
122 { return priVars_[0]; }
123
128 Scalar priVar(const int pvIdx) const
129 { return priVars_[pvIdx]; }
130
135 { return priVars_; }
136
140 Scalar extrusionFactor() const
141 { return 1.0; }
142
143private:
144 PrimaryVariables priVars_;
145};
146
147} // end namespace Dumux
148
149#endif
Volume variables for the momentum subdomain (displacement).
Definition solidmechanics/hyperelastic_voliso/variables.hh:25
typename HyperelasticVolIsoMomentumVVTraits< PV, MT >::PrimaryVariables PrimaryVariables
Definition solidmechanics/hyperelastic_voliso/variables.hh:32
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:47
PrimaryVariables displacement() const
Definition solidmechanics/hyperelastic_voliso/variables.hh:55
Scalar extrusionFactor() const
Returns the factor by which a lower-dimensional entity needs to be extruded.
Definition solidmechanics/hyperelastic_voliso/variables.hh:77
Scalar priVar(const int pvIdx) const
Return a component of primary variable vector.
Definition solidmechanics/hyperelastic_voliso/variables.hh:65
typename HyperelasticVolIsoMomentumVVTraits< PV, MT >::ModelTraits::Indices Indices
Definition solidmechanics/hyperelastic_voliso/variables.hh:35
const PrimaryVariables & priVars() const
Return the primary variable vector.
Definition solidmechanics/hyperelastic_voliso/variables.hh:71
Scalar displacement(const int dirIdx) const
Definition solidmechanics/hyperelastic_voliso/variables.hh:58
Volume variables for the pressure subdomain (bulk pressure).
Definition solidmechanics/hyperelastic_voliso/variables.hh:91
typename HyperelasticVolIsoPressureVVTraits< PV, MT >::ModelTraits::Indices Indices
Definition solidmechanics/hyperelastic_voliso/variables.hh:101
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:113
const PrimaryVariables & priVars() const
Return the primary variable vector.
Definition solidmechanics/hyperelastic_voliso/variables.hh:134
typename HyperelasticVolIsoPressureVVTraits< PV, MT >::PrimaryVariables PrimaryVariables
Definition solidmechanics/hyperelastic_voliso/variables.hh:98
Scalar priVar(const int pvIdx) const
Return a component of primary variable vector.
Definition solidmechanics/hyperelastic_voliso/variables.hh:128
Scalar extrusionFactor() const
Returns the factor by which a lower-dimensional entity needs to be extruded.
Definition solidmechanics/hyperelastic_voliso/variables.hh:140
Scalar pressure() const
Definition solidmechanics/hyperelastic_voliso/variables.hh:121
Definition adapt.hh:17