mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

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

finite element for bending torsional axis More...

`#include <1s_23_bta.h>`

Inheritance diagram for MBSimFlexibleBody::FiniteElement1s23BTA:
[legend]

## Public Member Functions

| FiniteElement1s23BTA (double l0, double Arho, double EIyy, double EIzz, double Itrho, double GIt, const fmatvec::Vec &g)
| constructor More...
| ~FiniteElement1s23BTA () override=default
| 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 &q, const fmatvec::Vec &u) override
| compute kinetic energy More...
double | computeGravitationalEnergy (const fmatvec::Vec &q) override
| compute gravitational energy More...
double | computeElasticEnergy (const fmatvec::Vec &q) 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)
void | setMaterialDamping (double)
void | setLehrDamping (double)
void | setTorsionalDamping (double dTorsional_)
fmatvec::Vec3 | getTangent (const fmatvec::Vec &q, double s)
| compute tangent More...
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 | JGeneralized (const fmatvec::Vec &q, double s)
| compute accompanying trihedral More...
Public Member Functions inherited from MBSimFlexibleBody::DiscretizationInterface
| DiscretizationInterface ()=default
| constructor
virtual | ~DiscretizationInterface ()=default
| destructor

## Private Attributes

double | l0
| length of finite element
double | Arho
| cross sectional area multiplied with density
double | EIyy
| Young's modulus multiplied with geometrical moment of inertia.
double | EIzz
double | Itrho
| geometrical moment of inertia multiplied with density
double | GIt
| shear modulus multiplied with geometrical moment of inertia
fmatvec::Vec | g
| gravitation
double | depsilon
| prolongational and torsional damping
double | dTorsional
fmatvec::SymMat | M
| global system description
fmatvec::Vec | h
fmatvec::SqrMat | Dhq
| matrices for implicit integration
fmatvec::SqrMat | Dhqp
fmatvec::SqrMat | Damp
| internal damping matrix
double | l0h2
| beam length powers
double | l0h3

## Detailed Description

finite element for bending torsional axis

Author
  Roland Zander
  Thorsten Schindler

Date
  2009-11-22 initial commit kernel_dev

Todo:

  implicit integration analytically TODO

  tangent, awk necessary? TODO

## Constructor & Destructor Documentation

## ◆ FiniteElement1s23BTA()

MBSimFlexibleBody::FiniteElement1s23BTA::FiniteElement1s23BTA | ( | double | l0,
|  | double | Arho,
|  | double | EIyy,
|  | double | EIzz,
|  | double | Itrho,
|  | double | GIt,
|  | const fmatvec::Vec & | g
| ) |  |

constructor

Parameters

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

## Member Function Documentation

## ◆ computedhdz()

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

override virtual

compute elastic energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeGravitationalEnergy()

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

override virtual

compute gravitational energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeh()

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

override virtual

compute mass matrix

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdq()

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

inline override virtual

Returns
  Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdu()

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

inline override virtual

Returns
  Jacobian of implicit integration regarding velocity

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ geth()

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

inline override virtual

Returns
  smooth right hand side of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getM()

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

inline override virtual

Returns
  mass matrix of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getqSize()

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

inline override virtual

Returns
  dimension of positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getTangent()

Vec3 MBSimFlexibleBody::FiniteElement1s23BTA::getTangent | ( | const fmatvec::Vec & | q,
|  | double | s
| ) |  |

compute tangent

Parameters

  global | coordinates
  LAGRANGIAN | parameter

## ◆ getuSize()

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

inline override virtual

Returns
  dimension of velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ JGeneralized()

Mat MBSimFlexibleBody::FiniteElement1s23BTA::JGeneralized | ( | const fmatvec::Vec & | q,
|  | double | s
| ) |  |

compute accompanying trihedral

Parameters

  global | coordinates
  LAGRANGIAN | parameter

compute global state

Parameters

  global | coordinates
  global | velocities
  LAGRANGIAN | parameter

Returns
  x,y,z,alpha,2x bending angle and velocitiescompute JACOBIAN of contact description

Parameters

  global | coordinates
  LAGRANGIAN | parameter

Returns
  JACOBIAN without x-direction

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

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