version 0.4
Ikarus::Traction< DisplacementBasedElement, Traits > Class Template Reference

Traction class represents distributed traction load that can be applied. More...

#include <ikarus/finiteelements/mechanics/loads/traction.hh>

Inheritance diagram for Ikarus::Traction< DisplacementBasedElement, Traits >:
[legend]

Public Types

using FERequirementType = typename Traits::FERequirementType
 
using LocalView = typename Traits::LocalView
 
using GridView = typename Traits::GridView
 

Public Member Functions

template<typename NeumannBoundaryLoad >
 Traction (const BoundaryPatch< GridView > *p_neumannBoundary, NeumannBoundaryLoad p_neumannBoundaryLoad)
 Constructor for the Loads class. 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 worldDim = Traits::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
 
template<typename ScalarType >
void calculateMatrixImpl (const FERequirementType &par, typename Traits::template MatrixType<> K, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const
 

Detailed Description

template<typename DisplacementBasedElement, typename Traits>
class Ikarus::Traction< DisplacementBasedElement, Traits >
Template Parameters
DisplacementBasedElementThe type of the displacement-based finite element.
TraitsType of traits for handling finite elements.

Member Typedef Documentation

◆ FERequirementType

template<typename DisplacementBasedElement , typename Traits >
using Ikarus::Traction< DisplacementBasedElement, Traits >::FERequirementType = typename Traits::FERequirementType

◆ GridView

template<typename DisplacementBasedElement , typename Traits >
using Ikarus::Traction< DisplacementBasedElement, Traits >::GridView = typename Traits::GridView

◆ LocalView

template<typename DisplacementBasedElement , typename Traits >
using Ikarus::Traction< DisplacementBasedElement, Traits >::LocalView = typename Traits::LocalView

Constructor & Destructor Documentation

◆ Traction()

template<typename DisplacementBasedElement , typename Traits >
template<typename NeumannBoundaryLoad >
Ikarus::Traction< DisplacementBasedElement, Traits >::Traction ( const BoundaryPatch< GridView > *  p_neumannBoundary,
NeumannBoundaryLoad  p_neumannBoundaryLoad 
)
inlineexplicit
Template Parameters
NeumannBoundaryLoadThe type for the Neumann boundary load function.
Parameters
p_neumannBoundaryNeumann boundary patch.
p_neumannBoundaryLoadNeumann boundary load function.

Member Function Documentation

◆ calculateMatrix()

template<typename DisplacementBasedElement , typename Traits >
void Ikarus::Traction< DisplacementBasedElement, Traits >::calculateMatrix ( const FERequirementType req,
typename Traits::template MatrixType<>  K 
) const
inline
Template Parameters
ScalarTypeThe scalar type for the calculation.
Parameters
reqThe FERequirementType object specifying the requirements for the calculation.
KThe matrix to store the calculated result.
Here is the caller graph for this function:

◆ calculateMatrixImpl()

template<typename DisplacementBasedElement , typename Traits >
template<typename ScalarType >
void Ikarus::Traction< DisplacementBasedElement, Traits >::calculateMatrixImpl ( const FERequirementType par,
typename Traits::template MatrixType<>  K,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const
inlineprotected
Here is the caller graph for this function:

◆ calculateScalar()

template<typename DisplacementBasedElement , typename Traits >
double Ikarus::Traction< DisplacementBasedElement, Traits >::calculateScalar ( const FERequirementType req) const
inline

Calculates the scalar value based on the given FERequirements.

Parameters
reqThe FERequirements.
Returns
The calculated scalar value.

◆ calculateScalarImpl()

template<typename DisplacementBasedElement , typename Traits >
template<typename ScalarType >
auto Ikarus::Traction< DisplacementBasedElement, Traits >::calculateScalarImpl ( const FERequirementType par,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const -> ScalarType
inlineprotected
Here is the caller graph for this function:

◆ calculateVector()

template<typename DisplacementBasedElement , typename Traits >
void Ikarus::Traction< DisplacementBasedElement, Traits >::calculateVector ( const FERequirementType req,
typename Traits::template VectorType<>  force 
) const
inline
Template Parameters
ScalarTypeThe scalar type for the calculation.
Parameters
reqThe FERequirementType object specifying the requirements for the calculation.
forceThe vector to store the calculated result.

◆ calculateVectorImpl()

template<typename DisplacementBasedElement , typename Traits >
template<typename ScalarType >
void Ikarus::Traction< DisplacementBasedElement, Traits >::calculateVectorImpl ( const FERequirementType par,
typename Traits::template VectorType< ScalarType >  force,
const std::optional< const Eigen::VectorX< ScalarType > >  dx = std::nullopt 
) const
inlineprotected

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

Here is the caller graph for this function:

Member Data Documentation

◆ myDim

template<typename DisplacementBasedElement , typename Traits >
constexpr int Ikarus::Traction< DisplacementBasedElement, Traits >::myDim = Traits::mydim
staticconstexpr

◆ worldDim

template<typename DisplacementBasedElement , typename Traits >
constexpr int Ikarus::Traction< DisplacementBasedElement, Traits >::worldDim = Traits::worlddim
staticconstexpr

The documentation for this class was generated from the following file: