mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

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

finite element for planar beam using Redundant Coordinate Method (RCM) More...

`#include <1s_21_rcm.h>`

Inheritance diagram for MBSimFlexibleBody::FiniteElement1s21RCM:
[legend]

## Public Member Functions

| FiniteElement1s21RCM (double l0_, double Arho_, double EA_, double EI_, const fmatvec::Vec &g_)
| constructor More...
| ~FiniteElement1s21RCM () override=default
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 &qElement) override
| compute mass matrix More...
void | computeh (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement) override
| compute smooth right hand side More...
void | computedhdz (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement) override
| compute Jacobian for implicit integration More...
double | computeKineticEnergy (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement) override
| compute kinetic energy More...
double | computeGravitationalEnergy (const fmatvec::Vec &qElement) override
| compute gravitational energy More...
virtual double | computePhysicalStrain (const fmatvec::Vec &qElement)
double | computeElasticEnergy (const fmatvec::Vec &qElement) 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 | getJacobianOfMotion (const fmatvec::Vec &qElement, double s)
fmatvec::Vec | computeAdditionalElementData (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement)
void | setCurlRadius (double R)
void | setMaterialDamping (double depsilons)
void | setLehrDamping (double D)
fmatvec::Vec3 | getPositions (const fmatvec::Vec &qElement, double s)
fmatvec::Vec3 | getVelocities (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, double s)
fmatvec::Mat | JGeneralizedInternal (const fmatvec::Vec &qElement, double s)
| return the JACOBIAN of translation and rotation with respect to generalised internal coordinates More...
fmatvec::Mat | JGeneralized (const fmatvec::Vec &qElement, double s)
| return the JACOBIAN of translation and rotation with respect to generalised global coordinates More...
fmatvec::Mat | JpGeneralized (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, double s, double sp)
| return the derivative of the JACOBIAN of translation and rotation with respect to generalised global coordinates More...
fmatvec::Vec | ElementData (fmatvec::Vec qElement, fmatvec::Vec qpElement)
| return some additional element data More...
Public Member Functions inherited from MBSimFlexibleBody::DiscretizationInterface
| DiscretizationInterface ()=default
| constructor
virtual | ~DiscretizationInterface ()=default
| destructor

## Protected Attributes

double | l0
| length, line-density, longitudinal and bending stiffness
double | Arho
double | EA
double | EI
double | wss0
| predefined bending curvature
double | depsilon
| longitudinal damping
fmatvec::Vec | g
| gravitation
fmatvec::SymMat | M
| mass matrix
fmatvec::Vec | h
| right hand side
fmatvec::SqrMat | Dhq
| derivative of right hand side with respect to positions and velocities
fmatvec::SqrMat | Dhqp
fmatvec::SqrMat | Damp
| damping matrix
fmatvec::Vec | qLocal
| internal position and velocities as well as smooth right hand side
fmatvec::Vec | qpLocal
fmatvec::Vec | hIntermediate
fmatvec::SymMat | MLocal
| local mass matrix
fmatvec::SqrMat | Jeg
| transformation global -> internal coordinates coordinates and its derivative
fmatvec::SqrMat | Jegp
fmatvec::Vec | qElement_Old
| global and local state of the last time step
fmatvec::Vec | qpElement_Old
double | tol_comp
| tolerance for comparison of state with old state

## Private Member Functions

void | BuildqLocal (const fmatvec::Vec &qGlobal, fmatvec::Vec &qLocal)
| calculates the local beam coordinates More...
void | BuildJacobi (const fmatvec::Vec &qLocal, fmatvec::SqrMat &Jeg)
| calculates the JACOBIAN of transformation More...
void | BuildJacobi (const fmatvec::Vec &qLocal, const fmatvec::Vec &qpIntern, fmatvec::SqrMat &Jeg, fmatvec::SqrMat &Jegp)
| calculates the JACOBIAN of transformation and its time derivative More...
fmatvec::Vec3 | evalLocalPositions (const fmatvec::Vec &qLocal, double s)
| calculates Cartesian position More...
fmatvec::Vec3 | evalLocalVelocities (const fmatvec::Vec &qLocal, const fmatvec::Vec &qpLocal, double s)
| calculates Cartesian velocity More...
fmatvec::Mat | hFullJacobi (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, const fmatvec::Vec &qLocal, const fmatvec::Vec &qpLocal, const fmatvec::SqrMat &Jeg, const fmatvec::SqrMat &Jegp, const fmatvec::SymMat &MLocal, const fmatvec::Vec &hIntermediate)
| calculates JACOBIAN of implicit integration More...
| FiniteElement1s21RCM ()=default
| constructor is declared private

## Private Attributes

double | l0h2
| powers of the beam length
double | l0h3
double | l0h4
double | l0h5
double | l0h7
double | l0h8

## Detailed Description

finite element for planar beam using Redundant Coordinate Method (RCM)

Author
  Roland Zander
  Thorsten Schindler

Date
  2009-03-23 initial for kernel_dev
  2009-07-27 implicit integration (Thorsten Schindler)
  2010-03-07 renamed ElementData to computeAdditionalElementData and wired to class (Roland Zander)

Todo:

  transform computeState to Position / Velocity / Orientation / AngularVelocity

  JacobianMinimalRepresentation

model based on Zander, R.; Ulbrich, H.: Reference-free mixed FE-MBS approach for beam structures with constraints, Journal of Nonlinear Dynamics, Kluwer Academic Publishers, 2005 Zander, R.; Ulbrich, H.: Impacts on beam structures: Interaction of wave propagationand global dynamics, IUTAM Symposium on Multiscale Problems in Multibody System Contacts Stuttgart, Germany, 2006 Zander, R.; Ulbrich, H.: Free plain motion of flexible beams in MBS - A comparison of models, III European Conference on Computational Mechanics Lisbon, Portugal, 2006

## Constructor & Destructor Documentation

## ◆ FiniteElement1s21RCM()

MBSimFlexibleBody::FiniteElement1s21RCM::FiniteElement1s21RCM | ( | double | l0_,
|  | double | Arho_,
|  | double | EA_,
|  | double | EI_,
|  | const fmatvec::Vec & | g_
| ) |  |

constructor

Parameters

  undeformed | lenght of element
  line-density | of beam
  longitudinal | stiffness
  bending | stiffness
  vector | of gravitational acceleration

## ◆ ~FiniteElement1s21RCM()

MBSimFlexibleBody::FiniteElement1s21RCM::~FiniteElement1s21RCM | ( |  | ) |

override default

\destructor

## Member Function Documentation

## ◆ BuildJacobi() [1/2]

void MBSimFlexibleBody::FiniteElement1s21RCM::BuildJacobi | ( | const fmatvec::Vec & | qLocal,
|  | fmatvec::SqrMat & | Jeg
| ) |  |

private

calculates the JACOBIAN of transformation

Parameters

  local | beam coordinates
  JACOBIAN | ot transformation

## ◆ BuildJacobi() [2/2]

void MBSimFlexibleBody::FiniteElement1s21RCM::BuildJacobi | ( | const fmatvec::Vec & | qLocal,
|  | const fmatvec::Vec & | qpIntern,
|  | fmatvec::SqrMat & | Jeg,
|  | fmatvec::SqrMat & | Jegp
| ) |  |

private

calculates the JACOBIAN of transformation and its time derivative

Parameters

  local | beam positions
  local | beam velocities
  JACOBIAN | of transformation
  time | derivative of JACOBIAN of transformation

## ◆ BuildqLocal()

void MBSimFlexibleBody::FiniteElement1s21RCM::BuildqLocal | ( | const fmatvec::Vec & | qGlobal,
|  | fmatvec::Vec & | qLocal
| ) |  |

private

calculates the local beam coordinates

Parameters

  global | coordinates
  local | coordinates

## ◆ computeAdditionalElementData()

Vec MBSimFlexibleBody::FiniteElement1s21RCM::computeAdditionalElementData | ( | const fmatvec::Vec & | qElement,
|  | const fmatvec::Vec & | qpElement
| ) |  |

compute additional informations for element

## ◆ computedhdz()

void MBSimFlexibleBody::FiniteElement1s21RCM::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::FiniteElement1s21RCM::computeElasticEnergy | ( | const fmatvec::Vec & | q | ) |

override virtual

compute elastic energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeGravitationalEnergy()

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

override virtual

compute gravitational energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeh()

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

override virtual

compute smooth right hand side

Parameters

  generalised | positions
  generalised | velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeKineticEnergy()

double MBSimFlexibleBody::FiniteElement1s21RCM::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::FiniteElement1s21RCM::computeM | ( | const fmatvec::Vec & | q | ) |

override virtual

compute mass matrix

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ ElementData()

fmatvec::Vec MBSimFlexibleBody::FiniteElement1s21RCM::ElementData | ( | fmatvec::Vec | qElement,
|  | fmatvec::Vec | qpElement
| ) |  |

return some additional element data

Parameters

  global | positions
  global | velocities

Returns
  elongation, elongational velocity, cog position, cog velocity, bending angle sum, bending velocity sum

## ◆ evalLocalPositions()

Vec3 MBSimFlexibleBody::FiniteElement1s21RCM::evalLocalPositions | ( | const fmatvec::Vec & | qLocal,
|  | double | s
| ) |  |

private

calculates Cartesian position

Parameters

  local | positions
  contour | point

Returns
  Cartesian position

## ◆ evalLocalVelocities()

Vec3 MBSimFlexibleBody::FiniteElement1s21RCM::evalLocalVelocities | ( | const fmatvec::Vec & | qLocal,
|  | const fmatvec::Vec & | qpLocal,
|  | double | s
| ) |  |

private

calculates Cartesian velocity

Parameters

  local | positions
  local | velocities
  contour | point

Returns
  Cartesian velocity

## ◆ getdhdq()

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

inline override virtual

Returns
  Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdu()

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

inline override virtual

Returns
  Jacobian of implicit integration regarding velocity

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ geth()

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

inline override virtual

Returns
  smooth right hand side of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getM()

const fmatvec::SymMat& MBSimFlexibleBody::FiniteElement1s21RCM::getM | ( |  | ) | const

inline override virtual

Returns
  mass matrix of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getqSize()

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

inline override virtual

Returns
  dimension of positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getuSize()

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

inline override virtual

Returns
  dimension of velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ hFullJacobi()

Mat MBSimFlexibleBody::FiniteElement1s21RCM::hFullJacobi | ( | const fmatvec::Vec & | qElement,
|  | const fmatvec::Vec & | qpElement,
|  | const fmatvec::Vec & | qLocal,
|  | const fmatvec::Vec & | qpLocal,
|  | const fmatvec::SqrMat & | Jeg,
|  | const fmatvec::SqrMat & | Jegp,
|  | const fmatvec::SymMat & | MLocal,
|  | const fmatvec::Vec & | hIntermediate
| ) |  |

private

calculates JACOBIAN of implicit integration

Parameters

  global | positions
  global | velocities
  local | positions
  local | velocities
  JACOBIAN | of transformation
  derivative | of JACOBIAN of transformation
  local | mass matrix
  local | right hand side

Returns
  JACOBIAN for implicit integration

## ◆ JGeneralized()

Mat MBSimFlexibleBody::FiniteElement1s21RCM::JGeneralized | ( | const fmatvec::Vec & | qElement,
|  | double | s
| ) |  |

return the JACOBIAN of translation and rotation with respect to generalised global coordinates

Parameters

  generalised | coordinates
  contour | point

Returns
  JACOBIAN of translation and rotation with respect to generalised global coordinates

## ◆ JGeneralizedInternal()

Mat MBSimFlexibleBody::FiniteElement1s21RCM::JGeneralizedInternal | ( | const fmatvec::Vec & | qElement,
|  | double | s
| ) |  |

return the JACOBIAN of translation and rotation with respect to generalised internal coordinates

Parameters

  generalised | coordinates
  contour | point

Returns
  JACOBIAN of translation and rotation with respect to generalised internal coordinates

## ◆ JpGeneralized()

Mat MBSimFlexibleBody::FiniteElement1s21RCM::JpGeneralized | ( | const fmatvec::Vec & | qElement,
|  | const fmatvec::Vec & | qpElement,
|  | double | s,
|  | double | sp
| ) |  |

return the derivative of the JACOBIAN of translation and rotation with respect to generalised global coordinates

Parameters

  generalised | coordinates
  generalised | velocities
  contour | point
  contour | point derivative

Returns
  derivative of JACOBIAN of translation and rotation with respect to generalised global coordinates

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

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