LinearElastic class represents a linear elastic finite element. More...
#include <ikarus/finiteelements/mechanics/linearelastic.hh>
Public Types | |
using | Traits = PreFE::Traits |
using | BasisHandler = typename Traits::BasisHandler |
using | FlatBasis = typename Traits::FlatBasis |
using | FERequirementType = typename Traits::FERequirementType |
using | LocalView = typename Traits::LocalView |
using | Geometry = typename Traits::Geometry |
using | GridView = typename Traits::GridView |
using | Element = typename Traits::Element |
using | Pre = LinearElasticPre |
using | LocalBasisType = decltype(std::declval< LocalView >().tree().child(0).finiteElement().localBasis()) |
using | SupportedResultTypes = std::tuple< decltype(makeRT< ResultTypes::linearStress >())> |
Public Member Functions | |
LinearElastic (const Pre &pre) | |
Constructor for the LinearElastic class. More... | |
template<typename ScalarType = double> | |
auto | displacementFunction (const FERequirementType &par, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
Gets the displacement function for the given FERequirementType and optional displacement vector. More... | |
template<class ScalarType = double> | |
auto | strainFunction (const FERequirementType &par, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
Gets the strain function for the given FERequirementType and optional displacement vector. More... | |
auto | materialTangent () const |
Gets the material tangent matrix for the linear elastic material. More... | |
auto | materialTangentFunction (const FERequirementType &par) const |
Gets the material tangent function for the given FERequirementType. More... | |
const Geometry & | geometry () const |
size_t | numberOfNodes () const |
int | order () const |
template<template< typename, int, int > class RT> requires (canProvideResultType<RT>()) | |
auto | calculateAtImpl (const FERequirementType &req, const Dune::FieldVector< double, Traits::mydim > &local, Dune::PriorityTag< 1 >) const |
Calculates a requested result at a specific local position. More... | |
Static Public Member Functions | |
template<template< typename, int, int > class RT> | |
static consteval bool | canProvideResultType () |
Static Public Attributes | |
static constexpr int | myDim = Traits::mydim |
Protected Member Functions | |
void | bindImpl () |
A helper function to bind the local view to the element. More... | |
template<typename ScalarType > | |
void | calculateMatrixImpl (const FERequirementType &par, typename Traits::template MatrixType<> K, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
template<typename ScalarType > | |
auto | calculateScalarImpl (const FERequirementType &par, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const -> ScalarType |
template<typename ScalarType > | |
void | calculateVectorImpl (const FERequirementType &par, typename Traits::template VectorType< ScalarType > force, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
using Ikarus::LinearElastic< PreFE, FE >::BasisHandler = typename Traits::BasisHandler |
using Ikarus::LinearElastic< PreFE, FE >::Element = typename Traits::Element |
using Ikarus::LinearElastic< PreFE, FE >::FERequirementType = typename Traits::FERequirementType |
using Ikarus::LinearElastic< PreFE, FE >::FlatBasis = typename Traits::FlatBasis |
using Ikarus::LinearElastic< PreFE, FE >::Geometry = typename Traits::Geometry |
using Ikarus::LinearElastic< PreFE, FE >::GridView = typename Traits::GridView |
using Ikarus::LinearElastic< PreFE, FE >::LocalBasisType = decltype(std::declval<LocalView>().tree().child(0).finiteElement().localBasis()) |
using Ikarus::LinearElastic< PreFE, FE >::LocalView = typename Traits::LocalView |
using Ikarus::LinearElastic< PreFE, FE >::Pre = LinearElasticPre |
using Ikarus::LinearElastic< PreFE, FE >::SupportedResultTypes = std::tuple<decltype(makeRT<ResultTypes::linearStress>())> |
using Ikarus::LinearElastic< PreFE, FE >::Traits = PreFE::Traits |
|
inlineexplicit |
pre | The pre fe |
|
inlineprotected |
|
inline |
req | The FERequirementType object holding the global solution. |
local | Local position vector. |
RT | The requested result type |
RT | The type representing the requested result. |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlinestatic |
|
inline |
ScalarType | The scalar type for the displacement vector. |
par | The FERequirementType object. |
dx | Optional displacement vector. |
|
inline |
|
inline |
|
inline |
par | The FERequirementType object. |
|
inline |
|
inline |
|
inline |
ScalarType | The scalar type for the strain vector. |
par | The FERequirementType object. |
dx | Optional displacement vector. |
|
staticconstexpr |