mbsimflexiblebody  4.0.0
MBSim Flexible Body Module
MBSimFlexibleBody::FiniteElement1s21CosseratTranslation Class Reference

finite translation element for planar beam using Cosserat model More...

#include <1s_21_cosserat_translation.h>

Inheritance diagram for MBSimFlexibleBody::FiniteElement1s21CosseratTranslation:
[legend]

Public Member Functions

 FiniteElement1s21CosseratTranslation (double l0_, double rho_, double A_, double E_, double G_, double I1_, const fmatvec::Vec &g_)
 constructor More...
 
 ~FiniteElement1s21CosseratTranslation () 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 getJacobianOfMotion (const fmatvec::Vec &qElement, double s)
 
void setMaterialDamping (double cEps0D_, double cEps1D_)
 
void setShearCorrectionFactors (double sigma1_)
 
double getl0 () const
 
const fmatvec::Vec & computeStateTranslation (const fmatvec::Vec &qG, const fmatvec::Vec &qGt, double s)
 compute state of finite element More...
 
fmatvec::Mat computeJXqG (const fmatvec::Vec &qG, double x)
 compute JACOBIAN of contact description in global coordinates More...
 
void initM ()
 initialize translational part of mass matrix
 
- Public Member Functions inherited from MBSimFlexibleBody::DiscretizationInterface
 DiscretizationInterface ()=default
 constructor
 
virtual ~DiscretizationInterface ()=default
 destructor
 
virtual const fmatvec::SymMat & getM () const =0
 
virtual const fmatvec::Vec & geth () const =0
 
virtual const fmatvec::SqrMat & getdhdq () const =0
 
virtual const fmatvec::SqrMat & getdhdu () const =0
 
virtual int getqSize () const =0
 
virtual int getuSize () const =0
 
virtual void computeM (const fmatvec::Vec &q)=0
 compute mass matrix More...
 
virtual void computeh (const fmatvec::Vec &q, const fmatvec::Vec &u)=0
 compute smooth right hand side More...
 
virtual void computedhdz (const fmatvec::Vec &q, const fmatvec::Vec &u)=0
 compute Jacobian for implicit integration More...
 
virtual double computeKineticEnergy (const fmatvec::Vec &q, const fmatvec::Vec &u)=0
 compute kinetic energy More...
 
virtual double computeGravitationalEnergy (const fmatvec::Vec &q)=0
 compute gravitational energy More...
 
virtual double computeElasticEnergy (const fmatvec::Vec &q)=0
 compute elastic energy More...
 

Private Member Functions

 FiniteElement1s21CosseratTranslation (const FiniteElement1s21CosseratTranslation &)
 
FiniteElement1s21CosseratTranslationoperator= (const FiniteElement1s21CosseratTranslation &)
 

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
 
fmatvec::Vec g
 gravitation
 
double cEps0D
 strain damping
 
double cEps1D
 
double sigma1
 shear correction factors
 
fmatvec::SymMat M
 global system description
 
fmatvec::Vec h
 
fmatvec::SqrMat dhdq
 matrices for implicit integration
 
fmatvec::SqrMat dhdu
 
fmatvec::Vec X
 state at Lagrangian coordinate
 
CardanPtr ag
 Cardan-object.
 

Detailed Description

finite translation element for planar beam using Cosserat model

Author
Thomas Cebulla
Thorsten Schindler
Robert von Zitzewitz
Date
2012-12-14 initial commit (Thomas Cebulla)
Todo:

computeState only in FlexibleBody TODO

implicit integration 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

◆ FiniteElement1s21CosseratTranslation()

MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::FiniteElement1s21CosseratTranslation ( double  l0_,
double  rho_,
double  A_,
double  E_,
double  G_,
double  I1_,
const fmatvec::Vec &  g_ 
)

constructor

Parameters
lengthof finite element
density
cross-sectionalarea
Young'smodulus
shearmodulus
firstarea moment of inertia
accelerationof gravity

Member Function Documentation

◆ computedhdz()

void MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::computedhdz ( const fmatvec::Vec &  q,
const fmatvec::Vec &  u 
)
inlineoverridevirtual

compute Jacobian for implicit integration

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeElasticEnergy()

double MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::computeElasticEnergy ( const fmatvec::Vec &  q)
overridevirtual

compute elastic energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeGravitationalEnergy()

double MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::computeGravitationalEnergy ( const fmatvec::Vec &  q)
overridevirtual

compute gravitational energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeh()

void MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::computeh ( const fmatvec::Vec &  q,
const fmatvec::Vec &  u 
)
overridevirtual

compute smooth right hand side

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeJXqG()

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

compute JACOBIAN of contact description in global coordinates

Parameters
globalcoordinates
LAGRANGIANparameter

◆ computeKineticEnergy()

double MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::computeKineticEnergy ( const fmatvec::Vec &  q,
const fmatvec::Vec &  u 
)
overridevirtual

compute kinetic energy

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeM()

void MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::computeM ( const fmatvec::Vec &  q)
overridevirtual

compute mass matrix

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeStateTranslation()

const Vec & MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::computeStateTranslation ( const fmatvec::Vec &  qG,
const fmatvec::Vec &  qGt,
double  s 
)

compute state of finite element

Parameters
globalcoordinates
globalvelocities
LAGRANGIANparameter in [0,l0]

◆ getdhdq()

const fmatvec::SqrMat & MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::getdhdq ( ) const
inlineoverridevirtual
Returns
Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ getdhdu()

const fmatvec::SqrMat & MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::getdhdu ( ) const
inlineoverridevirtual
Returns
Jacobian of implicit integration regarding velocity

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ geth()

const fmatvec::Vec & MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::geth ( ) const
inlineoverridevirtual
Returns
smooth right hand side of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ getM()

const fmatvec::SymMat & MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::getM ( ) const
inlineoverridevirtual
Returns
mass matrix of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ getqSize()

int MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::getqSize ( ) const
inlineoverridevirtual
Returns
dimension of positions

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ getuSize()

int MBSimFlexibleBody::FiniteElement1s21CosseratTranslation::getuSize ( ) const
inlineoverridevirtual
Returns
dimension of velocities

Implements MBSimFlexibleBody::DiscretizationInterface.


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