13#include <dune/common/fvector.hh>
14#include <dune/localfefunctions/eigenDuneTransformations.hh>
15#include <dune/localfefunctions/expressions/linearStrainsExpr.hh>
36 template <
typename GEO,
typename AST>
39 const auto P = asFunction(gpPos);
40 return (P * beta).eval();
61 template <
typename GEO,
typename AST>
62 static auto firstDerivative(
const GEO& geo,
const auto& uFunction,
const auto& localBasis,
const auto& gpIndex,
64 const auto& beta,
const int node = sNaN) {
65 return asFunction(gpPos);
90 template <
typename GEO,
typename ST,
typename AST>
91 static auto secondDerivative(
const GEO& geo,
const auto& uFunction,
const auto& localBasis,
const auto& gpIndex,
93 const Eigen::Vector<ST, GEO::mydimension*(GEO::mydimension + 1) / 2>& S,
94 const AST& asFunction,
const auto& beta,
const int I = sNaN,
const int J = sNaN) {
95 constexpr int myDim = GEO::mydimension;
96 constexpr int assumedStressSize = AST::assumedStressSize;
97 return Eigen::Matrix<ST, assumedStressSize, assumedStressSize>::Zero().eval();
101 static constexpr auto name() {
return std::string(
"Linear Stress"); }
104 static constexpr int sNaN = std::numeric_limits<int>::signaling_NaN();
Definition: linearstress.hh:19
Definition: linearstress.hh:22
static auto firstDerivative(const GEO &geo, const auto &uFunction, const auto &localBasis, const auto &gpIndex, const Dune::FieldVector< double, GEO::mydimension > &gpPos, const AST &asFunction, const auto &beta, const int node=sNaN)
Compute the first derivative of the linear stress w.r.t beta for a given node and integration point.
Definition: linearstress.hh:62
static auto secondDerivative(const GEO &geo, const auto &uFunction, const auto &localBasis, const auto &gpIndex, const Dune::FieldVector< double, GEO::mydimension > &gpPos, const Eigen::Vector< ST, GEO::mydimension *(GEO::mydimension+1)/2 > &S, const AST &asFunction, const auto &beta, const int I=sNaN, const int J=sNaN)
Compute the second derivative of the linear stress w.r.t beta for a given node and integration point.
Definition: linearstress.hh:91
static auto value(const GEO &geo, const Dune::FieldVector< double, GEO::mydimension > &gpPos, const AST &asFunction, const auto &beta)
Compute the stress vector at a given integration point or its index.
Definition: linearstress.hh:37
static constexpr auto name()
The name of the assumed stress type.
Definition: linearstress.hh:101
Definition: utils/dirichletvalues.hh:32