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 |