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 | Requirement = FERequirementsFactory< FESolutions::displacement, FEParameter::loadfactor, Traits::useEigenRef >::type | 
| 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 Requirement &par, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const | 
| Gets the displacement function for the given Requirement and optional displacement vector.  More... | |
| template<class ScalarType = double> | |
| auto | strainFunction (const Requirement &par, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const | 
| Gets the strain function for the given Requirement and optional displacement vector.  More... | |
| auto | materialTangent () const | 
| Gets the material tangent matrix for the linear elastic material.  More... | |
| auto | materialTangentFunction (const Requirement &par) const | 
| Gets the material tangent function for the given Requirement.  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 Requirement &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 Requirement &par, const MatrixAffordance &affordance, 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 Requirement &par, ScalarAffordance affordance, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const -> ScalarType | 
| template<typename ScalarType > | |
| void | calculateVectorImpl (const Requirement &par, VectorAffordance affordance, 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 >::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 >::Requirement = FERequirementsFactory<FESolutions::displacement, FEParameter::loadfactor, Traits::useEigenRef>::type | 
| 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 Requirement 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 Requirement object. | 
| dx | Optional displacement vector. | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
| par | The Requirement object. | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
| ScalarType | The scalar type for the strain vector. | 
| par | The Requirement object. | 
| dx | Optional displacement vector. | 
      
  | 
  staticconstexpr |