Wrapper class for using Enhanced Assumed Strains (EAS) with displacement based elements. More...
#include <ikarus/finiteelements/mechanics/enhancedassumedstrains.hh>
| Public Types | |
| using | FERequirementType = typename DisplacementBasedElement::FERequirementType | 
| using | ResultRequirementsType = typename DisplacementBasedElement::ResultRequirementsType | 
| using | LocalView = typename DisplacementBasedElement::LocalView | 
| using | GridView = typename DisplacementBasedElement::GridView | 
| using | Traits = typename DisplacementBasedElement::Traits | 
| Public Member Functions | |
| template<typename... Args> requires (not std::is_same_v<std::remove_cvref_t<std::tuple_element_t<0, std::tuple<Args...>>>, EnhancedAssumedStrains>) | |
| EnhancedAssumedStrains (Args &&... args) | |
| Constructor for Enhanced Assumed Strains elements.  More... | |
| double | calculateScalar (const FERequirementType &par) const | 
| Calculates a scalar quantity for the element.  More... | |
| bool | isDisplacementBased () const | 
| Checks if the element is displacement-based and the EAS is turned off.  More... | |
| void | calculateVector (const FERequirementType &par, typename Traits::template VectorType<> force) const | 
| Calculates vectorial quantities for the element.  More... | |
| const auto & | easVariant () const | 
| Gets the variant representing the type of Enhanced Assumed Strains (EAS).  More... | |
| auto | getNumberOfEASParameters () const | 
| Gets the number of EAS parameters based on the current EAS type.  More... | |
| void | calculateMatrix (const FERequirementType &par, typename Traits::template MatrixType<> K) const | 
| Calculates the matrix for the element.  More... | |
| void | calculateAt (const ResultRequirementsType &req, const Dune::FieldVector< double, Traits::mydim > &local, ResultTypeMap< double > &result) const | 
| Calculates the results at a given set of local coordinates using the Enhanced Assumed Strains (EAS) method.  More... | |
| void | setEASType (int numberOfEASParameters_) | 
| Sets the EAS type for 2D elements.  More... | |
| Protected Member Functions | |
| template<typename ScalarType > | |
| ScalarType | calculateScalarImpl (const FERequirementType &par, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const | 
| template<typename ScalarType > | |
| void | calculateVectorImpl (const FERequirementType &par, typename Traits::template VectorType< ScalarType > force, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const | 
This class extends a displacement-based element to support Enhanced Assumed Strains.
| DisplacementBasedElement | The base displacement-based element type. | 
| using Ikarus::EnhancedAssumedStrains< DisplacementBasedElement >::FERequirementType = typename DisplacementBasedElement::FERequirementType | 
| using Ikarus::EnhancedAssumedStrains< DisplacementBasedElement >::GridView = typename DisplacementBasedElement::GridView | 
| using Ikarus::EnhancedAssumedStrains< DisplacementBasedElement >::LocalView = typename DisplacementBasedElement::LocalView | 
| using Ikarus::EnhancedAssumedStrains< DisplacementBasedElement >::ResultRequirementsType = typename DisplacementBasedElement::ResultRequirementsType | 
| using Ikarus::EnhancedAssumedStrains< DisplacementBasedElement >::Traits = typename DisplacementBasedElement::Traits | 
| 
 | inlineexplicit | 
Disabling this forwarding constructor if the argument provided is EnhancedAssumedStrains itself, to forward the calls to the implicit copy constructor
| Args | Variadic template for constructor arguments. | 
| args | Constructor arguments forwarded to the base class. | 
| 
 | 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. | 
| result | The result container to store the calculated values. | 
| ResultRequirementsType | The type representing the requirements for results. | 
| 
 | inline | 
This function calculates the matrix for the element based on the FERequirementType.
| par | The FERequirementType object. | 
| K | Matrix to store the calculated stiffness. | 
fill K with displacement-based stiffness. It is assumed to be assembled block-wise on element level. This means the displacements x,y,z of node I are grouped together.
| 
 | inline | 
This function calculates a scalar quantity for the element based on the FERequirementType.
| par | The FERequirementType object. | 
| 
 | inlineprotected | 
| 
 | inline | 
This function calculates the vectorial quantities for the element based on the FERequirementType.
| par | The FERequirementType object. | 
| force | Vector to store the calculated forces. | 
| 
 | inlineprotected | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| numberOfEASParameters_ | The number of EAS parameters |