version 3.11-dev
Loading...
Searching...
No Matches
solidmechanics/hyperelastic/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_VARIABLES_HH
13#define DUMUX_SOLIDMECHANICS_HYPERELASTIC_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;
27public:
28 using PrimaryVariables = typename Traits::PrimaryVariables;
29 using Indices = typename Traits::ModelTraits::Indices;
30
31 template<class ElementSolution, class Problem, class ElementDiscretization, Concept::LocalDofIpData IpData>
32 void update(const ElementSolution& elemSol,
33 const Problem& problem,
34 const ElementDiscretization& elemDisc,
35 const IpData& ipData)
36 {
37 priVars_ = elemSol[ipData.localDofIndex()];
38 extrusionFactor_ = problem.spatialParams().extrusionFactor(elemDisc, ipData, elemSol);
39 }
40
41 Scalar extrusionFactor() const
42 { return extrusionFactor_; }
43
45 { return priVars_; }
46
47 Scalar displacement(const int i) const
48 { return priVars_[i]; }
49
50 Scalar priVar(const int pvIdx) const
51 { return priVars_[pvIdx]; }
52
54 { return priVars_; }
55
56private:
57 PrimaryVariables priVars_;
58 Scalar extrusionFactor_;
59};
60
61} // end namespace Dumux
62
63#endif
Variables of the hyperelastic model: the displacement at a local dof.
Definition solidmechanics/hyperelastic/variables.hh:25
const PrimaryVariables & priVars() const
Definition solidmechanics/hyperelastic/variables.hh:53
Scalar displacement(const int i) const
Definition solidmechanics/hyperelastic/variables.hh:47
typename Traits::ModelTraits::Indices Indices
Definition solidmechanics/hyperelastic/variables.hh:29
Scalar extrusionFactor() const
Definition solidmechanics/hyperelastic/variables.hh:41
void update(const ElementSolution &elemSol, const Problem &problem, const ElementDiscretization &elemDisc, const IpData &ipData)
Definition solidmechanics/hyperelastic/variables.hh:32
const PrimaryVariables & displacement() const
Definition solidmechanics/hyperelastic/variables.hh:44
Scalar priVar(const int pvIdx) const
Definition solidmechanics/hyperelastic/variables.hh:50
typename Traits::PrimaryVariables PrimaryVariables
Definition solidmechanics/hyperelastic/variables.hh:28
Definition adapt.hh:17