Wrapper class for using Enhanced Assumed Strains (EAS) with displacement based elements. More...
#include <ikarus/finiteelements/mechanics/enhancedassumedstrains.hh>
Public Types | |
using | Traits = PreFE::Traits |
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 | Pre = EnhancedAssumedStrainsPre |
Public Member Functions | |
EnhancedAssumedStrains (const Pre &pre) | |
Constructor for Enhanced Assumed Strains elements. More... | |
bool | isDisplacementBased () const |
Checks if the element is displacement-based and the EAS is turned off. More... | |
const auto & | easVariant () const |
Gets the variant representing the type of Enhanced Assumed Strains (EAS). More... | |
auto | numberOfEASParameters () const |
Gets the number of EAS parameters based on the current EAS type. More... | |
template<template< typename, int, int > class RT> | |
auto | calculateAtImpl (const Requirement &req, const Dune::FieldVector< double, Traits::mydim > &local, Dune::PriorityTag< 2 >) const |
Calculates a requested result at a specific local position using the Enhanced Assumed Strains (EAS) method. More... | |
void | setEASType (int numberOfEASParameters) |
Sets the EAS type for 2D elements. More... | |
Protected Member Functions | |
void | bindImpl () |
void | easApplicabilityCheck () const |
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 > | |
ScalarType | calculateScalarImpl (const Requirement &par, ScalarAffordance affordance, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
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 |
This class extends a displacement-based element to support Enhanced Assumed Strains.
using Ikarus::EnhancedAssumedStrains< PreFE, FE >::Geometry = typename Traits::Geometry |
using Ikarus::EnhancedAssumedStrains< PreFE, FE >::GridView = typename Traits::GridView |
using Ikarus::EnhancedAssumedStrains< PreFE, FE >::LocalView = typename Traits::LocalView |
using Ikarus::EnhancedAssumedStrains< PreFE, FE >::Pre = EnhancedAssumedStrainsPre |
using Ikarus::EnhancedAssumedStrains< PreFE, FE >::Requirement = FERequirementsFactory<FESolutions::displacement, FEParameter::loadfactor, Traits::useEigenRef>::type |
using Ikarus::EnhancedAssumedStrains< PreFE, FE >::Traits = PreFE::Traits |
|
inlineexplicit |
pre | The pre finite element |
|
inlineprotected |
|
inline |
This function calculates the results at the specified local coordinates . It takes into account the displacement-based element calculations and, if applicable, incorporates the EAS method for enhanced accuracy.
req | The result requirements. |
local | The local coordinates at which results are to be calculated. |
RT | The type representing the requested result. |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inline |
|
inline |
|
inline |
numberOfEASParameters | The number of EAS parameters |