version 3.11-dev
Loading...
Searching...
No Matches
solidmechanics/elastic/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_ELASTIC_VARIABLES_HH
13#define DUMUX_SOLIDMECHANICS_ELASTIC_VARIABLES_HH
14
15#include <dumux/common/concepts/ipdata_.hh>
16
17namespace Dumux {
18
25template <class Traits>
27{
28 using Scalar = typename Traits::PrimaryVariables::value_type;
29public:
30 using PrimaryVariables = typename Traits::PrimaryVariables;
31 using DisplacementVector = typename Traits::DisplacementVector;
32 using Indices = typename Traits::ModelTraits::Indices;
33
34 template<class ElementSolution, class Problem, class ElementDiscretization, Concept::LocalDofIpData IpData>
35 void update(const ElementSolution& elemSol,
36 const Problem& problem,
37 const ElementDiscretization& elemDisc,
38 const IpData& ipData)
39 {
40 priVars_ = elemSol[ipData.localDofIndex()];
41 extrusionFactor_ = problem.spatialParams().extrusionFactor(elemDisc, ipData, elemSol);
42 }
43
44 Scalar displacement(unsigned int dir) const
45 { return priVars_[Indices::momentum(dir)]; }
46
48 {
50 for (int dir = 0; dir < d.size(); ++dir)
51 d[dir] = displacement(dir);
52 return d;
53 }
54
55 Scalar priVar(const int pvIdx) const
56 { return priVars_[pvIdx]; }
57
59 { return priVars_; }
60
61 Scalar extrusionFactor() const
62 { return extrusionFactor_; }
63
64private:
65 PrimaryVariables priVars_;
66 Scalar extrusionFactor_;
67};
68
69} // end namespace Dumux
70
71#endif
Variables of the elastic model at a local degree of freedom: the displacement. Used with Experimental...
Definition solidmechanics/elastic/variables.hh:27
Scalar extrusionFactor() const
Definition solidmechanics/elastic/variables.hh:61
Scalar displacement(unsigned int dir) const
Definition solidmechanics/elastic/variables.hh:44
const PrimaryVariables & priVars() const
Definition solidmechanics/elastic/variables.hh:58
typename Traits::PrimaryVariables PrimaryVariables
Definition solidmechanics/elastic/variables.hh:30
void update(const ElementSolution &elemSol, const Problem &problem, const ElementDiscretization &elemDisc, const IpData &ipData)
Definition solidmechanics/elastic/variables.hh:35
typename Traits::ModelTraits::Indices Indices
Definition solidmechanics/elastic/variables.hh:32
DisplacementVector displacement() const
Definition solidmechanics/elastic/variables.hh:47
typename Traits::DisplacementVector DisplacementVector
Definition solidmechanics/elastic/variables.hh:31
Scalar priVar(const int pvIdx) const
Definition solidmechanics/elastic/variables.hh:55
Definition adapt.hh:17