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 = FERequirements< FESolutions::displacement, FEParameter::loadfactor > |
| using | LocalView = typename Traits::LocalView |
| using | Geometry = typename Traits::Geometry |
| using | GridView = typename Traits::GridView |
| using | Pre = EnhancedAssumedStrainsPre< ESF > |
| using | EnhancedStrainFunction = ESF |
| template<typename ST > | |
| using | VectorXOptRef = std::optional< std::reference_wrapper< const Eigen::VectorX< ST > > > |
| template<template< typename, int, int > class RT> | |
| using | RTWrapperType = ResultWrapper< RT< typename Traits::ctype, Traits::mydim, Traits::worlddim >, ResultShape::Vector > |
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 | numberOfInternalVariables () const |
| Gets the number of EAS parameters based on the current EAS type. More... | |
| template<template< typename, int, int > class RT> requires (EnhancedAssumedStrains::template supportsResultType<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 numberOfInternalVariables) |
| Sets the EAS type for 2D elements. More... | |
| const auto & | internalVariable () const |
| Gets the internal state variable alpha for the EAS element. More... | |
Static Public Attributes | |
| static constexpr int | myDim = Traits::mydim |
Protected Member Functions | |
| void | bindImpl () |
| void | updateStateImpl (const Requirement &par, const std::remove_reference_t< typename Traits::template VectorType<> > &correction) |
| Updates the internal state variable alpha_ at the end of an iteration before the update of the displacements done by the non-linear solver. See [2] for implementation details and further references. More... | |
| void | easApplicabilityCheck () const |
| template<typename ScalarType > | |
| void | calculateMatrixImpl (const Requirement &par, const MatrixAffordance &affordance, typename Traits::template MatrixType<> K, const VectorXOptRef< ScalarType > &dx=std::nullopt) const |
| template<typename ScalarType > | |
| ScalarType | calculateScalarImpl (const Requirement &par, ScalarAffordance affordance, const VectorXOptRef< ScalarType > &dx=std::nullopt) const |
| template<typename ScalarType > | |
| void | calculateVectorImpl (const Requirement &par, VectorAffordance affordance, typename Traits::template VectorType< ScalarType > force, const VectorXOptRef< ScalarType > &dx=std::nullopt) const |
| template<typename MT , typename BC > | |
| void | subscribeToImpl (BC &bc) |
This class extends a displacement-based element to support Enhanced Assumed Strains.
| using Ikarus::EnhancedAssumedStrains< PreFE, FE, ESF >::EnhancedStrainFunction = ESF |
| using Ikarus::EnhancedAssumedStrains< PreFE, FE, ESF >::Geometry = typename Traits::Geometry |
| using Ikarus::EnhancedAssumedStrains< PreFE, FE, ESF >::GridView = typename Traits::GridView |
| using Ikarus::EnhancedAssumedStrains< PreFE, FE, ESF >::LocalView = typename Traits::LocalView |
| using Ikarus::EnhancedAssumedStrains< PreFE, FE, ESF >::Pre = EnhancedAssumedStrainsPre<ESF> |
| using Ikarus::EnhancedAssumedStrains< PreFE, FE, ESF >::Requirement = FERequirements<FESolutions::displacement, FEParameter::loadfactor> |
| using Ikarus::EnhancedAssumedStrains< PreFE, FE, ESF >::RTWrapperType = ResultWrapper<RT<typename Traits::ctype, Traits::mydim, Traits::worlddim>, ResultShape::Vector> |
| using Ikarus::EnhancedAssumedStrains< PreFE, FE, ESF >::Traits = PreFE::Traits |
| using Ikarus::EnhancedAssumedStrains< PreFE, FE, ESF >::VectorXOptRef = std::optional<std::reference_wrapper<const Eigen::VectorX<ST> >> |
|
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 |
|
inline |
| numberOfInternalVariables | The number of EAS parameters |
|
inlineprotected |
|
inlineprotected |
| par | The Requirement object. |
| correction | The correction in displacement (DeltaD) vector passed based on which the internal state variable alpha is to be updated. |
|
staticconstexpr |