mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

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

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

`#include <1s_33_rcm.h>`

Inheritance diagram for MBSimFlexibleBody::FiniteElement1s33RCM:
[legend]

## Public Member Functions

| FiniteElement1s33RCM (double l0_, double rho_, double A_, double E_, double G_, double I1_, double I2_, double I0_, const fmatvec::Vec &g_, RevCardanPtr ag_)
| constructor More...
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 | setGauss (int nGauss)
void | setCurlRadius (double R1, double R2)
void | setMaterialDamping (double epstD_, double k0D_)
void | setLehrDamping (double epstL, double k0L)
double | getl0 () const
fmatvec::Vector< fmatvec::Fixed< 6 >, double > | getPositions (const fmatvec::Vec &qElement, double s)
fmatvec::Vector< fmatvec::Fixed< 6 >, double > | getVelocities (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, double s)
fmatvec::Mat | computeJXqG (const fmatvec::Vec &qG, double x)
| compute JACOBIAN of contact description in global coordinates More...
fmatvec::Vec | computeData (const fmatvec::Vec &qG, const fmatvec::Vec &qGt)
| compute interesting data More...
double | computePhysicalStrain (const fmatvec::Vec &qG, const fmatvec::Vec &qGt)
| compute the physical strain as defined in Schindler2010, p. 25, eq. (2.52) More...
Public Member Functions inherited from MBSimFlexibleBody::DiscretizationInterface
| DiscretizationInterface ()=default
| constructor
virtual | ~DiscretizationInterface ()=default
| destructor

## Private Member Functions

void | computedrS ()
| compute delta matrix for CP with respect to translation
void | computedepstil ()
| compute delta matrix for elongation
void | computedk0 ()
| compute delta matrix for torsion

## Private Attributes

double | l0
| length of finite element
double | rho
| density
double | A
| cross sectional area
double | E
| Young's modulus.
double | G
| shear modulus
double | I1
| geometrical moment of inertia
double | I2
double | I0
fmatvec::Vec | g
| gravitation
double | k10
| predefined bending
double | k20
double | epstD
| prolongational and torsional damping
double | k0D
fmatvec::SymMat | M
| global system description
fmatvec::Vec | h
fmatvec::SqrMat | dhdq
| matrices for implicit integration
fmatvec::SqrMat | dhdu
fmatvec::SymMat | MI
| internal system description
fmatvec::SqrMat | Damp
| internal damping matrix
double | l0h2
| beam length powers
double | l0h3
double | x_Old
| last Lagrangian coordinate in state calculation
fmatvec::Vec | qG_Old
| global and local state of the last time step
fmatvec::Vec | qGt_Old
double | tol_comp
| tolerance for comparison of state with old state
fmatvec::Mat | drS
| delta matrices
fmatvec::Mat | drSH
fmatvec::RowVec | depstil
fmatvec::RowVec | dk0
RevCardanPtr | ag
| reversed Cardan-object
Trafo33RCMPtr | tf
| trafo-object
Weight33RCMPtr | wt
| weight-function-object

## Detailed Description

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

Author
  Thorsten Schindler

Date
  2009-04-17 initial commit kernel_dev (Thorsten Schindler)
  2009-07-27 implicit integration (Thorsten Schindler)

Todo:

  transform computeState to Position / Velocity / Orientation / AngularVelocity

  JacobianOfMotion

  computeM

## Constructor & Destructor Documentation

## ◆ FiniteElement1s33RCM()

MBSimFlexibleBody::FiniteElement1s33RCM::FiniteElement1s33RCM | ( | double | l0_,
|  | double | rho_,
|  | double | A_,
|  | double | E_,
|  | double | G_,
|  | double | I1_,
|  | double | I2_,
|  | double | I0_,
|  | const fmatvec::Vec & | g_,
|  | RevCardanPtr | ag_
| ) |  |

constructor

Parameters

  length | of finite element
  density |
  cross-sectional | area
  Young's | modulus
  shear | modulus
  first | area moment of inertia
  second | area moment of inertia
  torsional | moment of inertia
  acceleration | of gravity
  cardan | object

## Member Function Documentation

## ◆ computeData()

Vec MBSimFlexibleBody::FiniteElement1s33RCM::computeData | ( | const fmatvec::Vec & | qG,
|  | const fmatvec::Vec & | qGt
| ) |  |

compute interesting data

Parameters

  global | coordinates
  global | velocities

## ◆ computedhdz()

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

override virtual

compute elastic energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeGravitationalEnergy()

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

override virtual

compute gravitational energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeh()

void MBSimFlexibleBody::FiniteElement1s33RCM::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::FiniteElement1s33RCM::computeJXqG | ( | const fmatvec::Vec & | qG,
|  | double | x
| ) |  |

compute JACOBIAN of contact description in global coordinates

Parameters

  global | coordinates
  LAGRANGIAN | parameter

## ◆ computeKineticEnergy()

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

override virtual

compute mass matrix

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computePhysicalStrain()

double MBSimFlexibleBody::FiniteElement1s33RCM::computePhysicalStrain | ( | const fmatvec::Vec & | qG,
|  | const fmatvec::Vec & | qGt
| ) |  |

compute the physical strain as defined in Schindler2010, p. 25, eq. (2.52)

Parameters

  global | coordinates
  global | velocities

## ◆ getdhdq()

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

inline override virtual

Returns
  Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdu()

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

inline override virtual

Returns
  Jacobian of implicit integration regarding velocity

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ geth()

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

inline override virtual

Returns
  smooth right hand side of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getM()

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

inline override virtual

Returns
  mass matrix of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getqSize()

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

inline override virtual

Returns
  dimension of positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getuSize()

int MBSimFlexibleBody::FiniteElement1s33RCM::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_rcm.h
- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/fe/1s_33_rcm.cc