mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

Public Member Functions | Private Member Functions | Private Attributes | List of all members
MBSimFlexibleBody::FiniteElement1s33CosseratRotation Class Reference

finite element for spatial beam using Cosserat model : rotation element for bending and torsion More...

`#include <1s_33_cosserat_rotation.h>`

Inheritance diagram for MBSimFlexibleBody::FiniteElement1s33CosseratRotation:
[legend]

## Public Member Functions

| FiniteElement1s33CosseratRotation (double l0_, double E_, double G_, double I1_, double I2_, double I0_, CardanPtr ag_)
| constructor More...
| ~FiniteElement1s33CosseratRotation () override
| destructor
const fmatvec::SymMat & | getM () const override
const fmatvec::Vec & | geth () const override
const fmatvec::SqrMat & | getdhdq () const override
const fmatvec::SqrMat & | getdhdu () const override
int | getqSize () const override
int | getuSize () const override
void | computeM (const fmatvec::Vec &qG) override
| compute mass matrix More...
void | computeh (const fmatvec::Vec &qG, const fmatvec::Vec &qGt) override
| compute smooth right hand side More...
void | computedhdz (const fmatvec::Vec &qG, const fmatvec::Vec &qGt) override
| compute Jacobian for implicit integration More...
double | computeKineticEnergy (const fmatvec::Vec &qG, const fmatvec::Vec &qGt) override
| compute kinetic energy More...
double | computeGravitationalEnergy (const fmatvec::Vec &qG) override
| compute gravitational energy More...
double | computeElasticEnergy (const fmatvec::Vec &qG) override
| compute elastic energy More...
virtual fmatvec::Vec3 | getPosition (const fmatvec::Vec &qElement, double s)
virtual fmatvec::SqrMat3 | getOrientation (const fmatvec::Vec &qElement, double s)
virtual fmatvec::Vec3 | getVelocity (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, double s)
virtual fmatvec::Vec3 | getAngularVelocity (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, double s)
virtual fmatvec::Mat | computeJacobianOfMotion (const fmatvec::Vec &qG, double s)
void | setCurlRadius (double R1, double R2)
double | getl0 () const
fmatvec::Mat | computeJXqG (const fmatvec::Vec &qG, double x)
| compute JACOBIAN of contact description in global coordinates More...
Public Member Functions inherited from MBSimFlexibleBody::DiscretizationInterface
| DiscretizationInterface ()=default
| constructor
virtual | ~DiscretizationInterface ()=default
| destructor

## Private Member Functions

| FiniteElement1s33CosseratRotation (const FiniteElement1s33CosseratRotation &)
FiniteElement1s33CosseratRotation & | operator= (const FiniteElement1s33CosseratRotation &)

## Private Attributes

double | l0
| length of finite element
double | E
| Young's modulus.
double | G
| shear modulus
double | I1
| geometrical moment of inertia
double | I2
double | I0
double | k10
| predefined bending k10: precurvature in t-b-plane k20: precurvature in t-n-plane
double | k20
fmatvec::Vec | h
| global system description
fmatvec::Vec | X
| state at Lagrangian coordinate
fmatvec::SqrMat | dhdq
| matrices for implicit integration
fmatvec::SqrMat | dhdu
CardanPtr | ag
| Cardan-object.

## Detailed Description

finite element for spatial beam using Cosserat model : rotation element for bending and torsion

Author
  Thorsten Schindler
  Christian Käsbauer
  Thomas Cebulla

Date
  2011-10-11 initial commit (Thorsten Schindler)

Todo:
  bending/torsion in rhs TODO

Cosserat model based on H. Lang, J. Linn, M. Arnold: Multi-body dynamics simulation of geometrically exact Cosserat rods but with

- Kirchhoff assumption (-> less stiff)
- Cardan parametrisation (-> less problems with condition and drift for quaternion dae system)
- piecewise constant Darboux vector with evaluation according to I. Romero: The interpolation of rotations and its application to finite element models of geometrically exact beams

## Constructor & Destructor Documentation

## ◆ FiniteElement1s33CosseratRotation()

MBSimFlexibleBody::FiniteElement1s33CosseratRotation::FiniteElement1s33CosseratRotation | ( | double | l0_,
|  | double | E_,
|  | double | G_,
|  | double | I1_,
|  | double | I2_,
|  | double | I0_,
|  | CardanPtr | ag_
| ) |  |

constructor

Parameters

  length | of finite element
  Young's | modulus
  shear | modulus
  first | area moment of inertia
  second | area moment of inertia
  torsional | moment of inertia
  cardan | object

## Member Function Documentation

## ◆ computedhdz()

void MBSimFlexibleBody::FiniteElement1s33CosseratRotation::computedhdz | ( | const fmatvec::Vec & | q,
|  | const fmatvec::Vec & | u
| ) |  |

override virtual

compute Jacobian for implicit integration

Parameters

  generalised | positions
  generalised | velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeElasticEnergy()

double MBSimFlexibleBody::FiniteElement1s33CosseratRotation::computeElasticEnergy | ( | const fmatvec::Vec & | q | ) |

override virtual

compute elastic energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeGravitationalEnergy()

double MBSimFlexibleBody::FiniteElement1s33CosseratRotation::computeGravitationalEnergy | ( | const fmatvec::Vec & | q | ) |

override virtual

compute gravitational energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeh()

void MBSimFlexibleBody::FiniteElement1s33CosseratRotation::computeh | ( | const fmatvec::Vec & | q,
|  | const fmatvec::Vec & | u
| ) |  |

override virtual

compute smooth right hand side

Parameters

  generalised | positions
  generalised | velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeJXqG()

Mat MBSimFlexibleBody::FiniteElement1s33CosseratRotation::computeJXqG | ( | const fmatvec::Vec & | qG,
|  | double | x
| ) |  |

compute JACOBIAN of contact description in global coordinates

Parameters

  global | coordinates
  LAGRANGIAN | parameter

## ◆ computeKineticEnergy()

double MBSimFlexibleBody::FiniteElement1s33CosseratRotation::computeKineticEnergy | ( | const fmatvec::Vec & | q,
|  | const fmatvec::Vec & | u
| ) |  |

override virtual

compute kinetic energy

Parameters

  generalised | positions
  generalised | velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeM()

void MBSimFlexibleBody::FiniteElement1s33CosseratRotation::computeM | ( | const fmatvec::Vec & | q | ) |

override virtual

compute mass matrix

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdq()

const fmatvec::SqrMat& MBSimFlexibleBody::FiniteElement1s33CosseratRotation::getdhdq | ( |  | ) | const

inline override virtual

Returns
  Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdu()

const fmatvec::SqrMat& MBSimFlexibleBody::FiniteElement1s33CosseratRotation::getdhdu | ( |  | ) | const

inline override virtual

Returns
  Jacobian of implicit integration regarding velocity

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ geth()

const fmatvec::Vec& MBSimFlexibleBody::FiniteElement1s33CosseratRotation::geth | ( |  | ) | const

inline override virtual

Returns
  smooth right hand side of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getM()

const SymMat & MBSimFlexibleBody::FiniteElement1s33CosseratRotation::getM | ( |  | ) | const

override virtual

Returns
  mass matrix of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getqSize()

int MBSimFlexibleBody::FiniteElement1s33CosseratRotation::getqSize | ( |  | ) | const

inline override virtual

Returns
  dimension of positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getuSize()

int MBSimFlexibleBody::FiniteElement1s33CosseratRotation::getuSize | ( |  | ) | const

inline override virtual

Returns
  dimension of velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

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

- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/fe/1s_33_cosserat_rotation.h
- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/fe/1s_33_cosserat_rotation.cc