LinearElastic class represents a linear elastic finite element. More...
#include <ikarus/finiteelements/mechanics/linearelastic.hh>
Public Types | |
| using | Traits = TraitsFromFE< Basis_, FERequirements_, useEigenRef > | 
| using | Basis = typename Traits::Basis | 
| using | FlatBasis = typename Traits::FlatBasis | 
| using | FERequirementType = typename Traits::FERequirementType | 
| using | LocalView = typename Traits::LocalView | 
| using | Geometry = typename Traits::Geometry | 
| using | GridView = typename Traits::GridView | 
| using | Element = typename Traits::Element | 
| using | ResultRequirementsType = typename Traits::ResultRequirementsType | 
| using | BaseDisp = PowerBasisFE< FlatBasis > | 
| using | VolumeType = Volume< LinearElastic< Basis_, FERequirements_, useEigenRef >, Traits > | 
| using | TractionType = Traction< LinearElastic< Basis_, FERequirements_, useEigenRef >, Traits > | 
| using | LocalBasisType = decltype(std::declval< LocalView >().tree().child(0).finiteElement().localBasis()) | 
| using | RootBasis = Basis_::FlatBasis | 
| Type of the root basis.  More... | |
| using | GlobalIndex = typename LocalView::MultiIndex | 
| Type of the global index.  More... | |
| using | GridElement = typename LocalView::Element | 
| Type of the grid element.  More... | |
Public Member Functions | |
| template<typename VolumeLoad = utils::LoadDefault, typename NeumannBoundaryLoad = utils::LoadDefault> | |
| LinearElastic (const Basis &globalBasis, const typename LocalView::Element &element, double emod, double nu, VolumeLoad p_volumeLoad={}, const BoundaryPatch< GridView > *p_neumannBoundary=nullptr, NeumannBoundaryLoad p_neumannBoundaryLoad={}) | |
| Constructor for the LinearElastic class.  More... | |
| template<typename ScalarType = double> | |
| auto | displacementFunction (const FERequirementType &par, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const | 
| Gets the displacement function for the given FERequirementType and optional displacement vector.  More... | |
| template<class ScalarType = double> | |
| auto | strainFunction (const FERequirementType &par, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const | 
| Gets the strain function for the given FERequirementType and optional displacement vector.  More... | |
| auto | materialTangent () const | 
| Gets the material tangent matrix for the linear elastic material.  More... | |
| auto | materialTangentFunction (const FERequirementType &par) const | 
| Gets the material tangent function for the given FERequirementType.  More... | |
| const Geometry & | geometry () const | 
| size_t | numberOfNodes () const | 
| int | order () const | 
| double | calculateScalar (const FERequirementType &par) const | 
| Calculates the scalar energy for the given FERequirementType.  More... | |
| void | calculateVector (const FERequirementType &par, typename Traits::template VectorType<> force) const | 
| Calculates the vector force for the given FERequirementType.  More... | |
| void | calculateMatrix (const FERequirementType &par, typename Traits::template MatrixType<> K) const | 
| Calculates the matrix stiffness for the given FERequirementType.  More... | |
| void | calculateAt (const ResultRequirementsType &req, const Dune::FieldVector< double, Traits::mydim > &local, ResultTypeMap< double > &result) const | 
| Calculates results at a specific local position.  More... | |
| constexpr size_t | size () const | 
| Get the size of the local view.  More... | |
| void | globalFlatIndices (std::vector< GlobalIndex > &globalIndices) const | 
| Get the global flat indices for the power basis.  More... | |
| const GridElement & | gridElement () const | 
| Get the grid element associated with the local view.  More... | |
| const LocalView & | localView () const | 
| Get the const reference to the local view.  More... | |
| LocalView & | localView () | 
| Get the reference to the local view.  More... | |
| double | calculateScalar (const FERequirementType &req) const | 
| Calculate the scalar value.  More... | |
| void | calculateVector (const FERequirementType &req, typename Traits::template VectorType<> force) const | 
| Calculate the vector associated with the given FERequirementType.  More... | |
| void | calculateMatrix (const FERequirementType &req, typename Traits::template MatrixType<> K) const | 
| Calculate the matrix associated with the given FERequirementType.  More... | |
| double | calculateScalar (const FERequirementType &req) const | 
| Calculate the scalar value.  More... | |
| void | calculateVector (const FERequirementType &req, typename Traits::template VectorType<> force) const | 
| Calculate the vector associated with the given FERequirementType.  More... | |
| void | calculateMatrix (const FERequirementType &req, typename Traits::template MatrixType<> K) const | 
| Calculate the matrix associated with the given FERequirementType.  More... | |
Static Public Attributes | |
| static constexpr int | myDim = Traits::mydim | 
| static constexpr int | num_children | 
| Number of children in the powerBasis.  More... | |
| static constexpr int | worldDim | 
| static constexpr int | worldDim | 
Protected Member Functions | |
| template<typename ScalarType > | |
| auto | calculateScalarImpl (const FERequirementType &par, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const -> ScalarType | 
| 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 | 
| auto | calculateScalarImpl (const FERequirementType &par, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const -> ScalarType | 
| void | calculateVectorImpl (const FERequirementType &par, typename Traits::template VectorType< ScalarType > force, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const | 
| void | calculateMatrixImpl (const FERequirementType &par, typename Traits::template MatrixType<> K, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const | 
| auto | calculateScalarImpl (const FERequirementType &par, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const -> ScalarType | 
| void | calculateVectorImpl (const FERequirementType &par, typename Traits::template VectorType< ScalarType > force, const std::optional< const Eigen::VectorX< ScalarType > > dx=std::nullopt) const | 
| void | calculateMatrixImpl (const FERequirementType &par, typename Traits::template MatrixType<> K, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const | 
| Basis_ | The basis type for the finite element. | 
| FERequirements_ | The requirements for the finite element. | 
| useEigenRef | A boolean flag indicating whether to use Eigen references. | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::BaseDisp = PowerBasisFE<FlatBasis> | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::Basis = typename Traits::Basis | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::Element = typename Traits::Element | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::FERequirementType = typename Traits::FERequirementType | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::FlatBasis = typename Traits::FlatBasis | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::Geometry = typename Traits::Geometry | 
      
  | 
  inherited | 
      
  | 
  inherited | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::GridView = typename Traits::GridView | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::LocalBasisType = decltype(std::declval<LocalView>().tree().child(0).finiteElement().localBasis()) | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::LocalView = typename Traits::LocalView | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::ResultRequirementsType = typename Traits::ResultRequirementsType | 
      
  | 
  inherited | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::TractionType = Traction<LinearElastic<Basis_, FERequirements_, useEigenRef>, Traits> | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::Traits = TraitsFromFE<Basis_, FERequirements_, useEigenRef> | 
| using Ikarus::LinearElastic< Basis_, FERequirements_, useEigenRef >::VolumeType = Volume<LinearElastic<Basis_, FERequirements_, useEigenRef>, Traits> | 
      
  | 
  inline | 
| VolumeLoad | The type for the volume load function. | 
| NeumannBoundaryLoad | The type for the Neumann boundary load function. | 
| globalBasis | The global basis for the finite element. | 
| element | The element for which the finite element is constructed. | 
| emod | Young's modulus. | 
| nu | Poisson's ratio. | 
| p_volumeLoad | Volume load function (default is LoadDefault). | 
| p_neumannBoundary | Neumann boundary patch (default is nullptr). | 
| p_neumannBoundaryLoad | Neumann boundary load function (default is LoadDefault). | 
      
  | 
  inline | 
| req | The ResultRequirementsType object specifying the requested results. | 
| local | Local position vector. | 
| result | Map to store the calculated results. | 
      
  | 
  inline | 
| par | The FERequirementType object. | 
| K | Matrix to store the calculated stiffness. | 
      
  | 
  inlineinherited | 
| ScalarType | The scalar type for the calculation. | 
| req | The FERequirementType object specifying the requirements for the calculation. | 
| K | The matrix to store the calculated result. | 
      
  | 
  inlineinherited | 
| ScalarType | The scalar type for the calculation. | 
| req | The FERequirementType object specifying the requirements for the calculation. | 
| K | The matrix to store the calculated result. | 
      
  | 
  inlineprotectedinherited | 
      
  | 
  inlineprotectedinherited | 
      
  | 
  inline | 
| par | The FERequirementType object. | 
      
  | 
  inlineinherited | 
Calculates the scalar value based on the given FERequirements.
| req | The FERequirements. | 
      
  | 
  inlineinherited | 
Calculates the scalar value based on the given FERequirements.
| req | The FERequirements. | 
      
  | 
  inlineprotected | 
      
  | 
  inlineprotectedinherited | 
      
  | 
  inlineprotectedinherited | 
      
  | 
  inline | 
| par | The FERequirementType object. | 
| force | Vector to store the calculated force. | 
      
  | 
  inlineinherited | 
| ScalarType | The scalar type for the calculation. | 
| req | The FERequirementType object specifying the requirements for the calculation. | 
| force | The vector to store the calculated result. | 
      
  | 
  inlineinherited | 
| ScalarType | The scalar type for the calculation. | 
| req | The FERequirementType object specifying the requirements for the calculation. | 
| force | The vector to store the calculated result. | 
      
  | 
  inlineprotected | 
      
  | 
  inlineprotectedinherited | 
      
  | 
  inlineprotectedinherited | 
Integration rule along the boundary
The value of the local function wrt the i-th coeff
Value of the Neumann data at the current position
      
  | 
  inline | 
| ScalarType | The scalar type for the displacement vector. | 
| par | The FERequirementType object. | 
| dx | Optional displacement vector. | 
      
  | 
  inline | 
      
  | 
  inlineinherited | 
The global indices are collected in a FlatInterLeaved order. I.e. x_0, y_0, z_0, ..., x_n, y_n, z_n
| globalIndices | Output vector to store global indices. | 
      
  | 
  inlineinherited | 
      
  | 
  inlineinherited | 
      
  | 
  inlineinherited | 
      
  | 
  inline | 
      
  | 
  inline | 
| par | The FERequirementType object. | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inlineconstexprinherited | 
      
  | 
  inline | 
| ScalarType | The scalar type for the strain vector. | 
| par | The FERequirementType object. | 
| dx | Optional displacement vector. | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexprinherited | 
      
  | 
  staticconstexprinherited | 
      
  | 
  staticconstexprinherited |