mbsimflexiblebody  4.0.0
MBSim Flexible Body Module
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 global state More...
 
- 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 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
lengthof finite element
cross-sectionalarea multiplied with density
Young'smodulus multiplied with first area moment of inertia
Young'smodulus multiplied with second area moment of inertia
torsionalmoment of inertia multiplied with density
shearmodulus multiplied with torsional moment of inertia
accelerationof gravity

Member Function Documentation

◆ computedhdz()

void MBSimFlexibleBody::FiniteElement1s23BTA::computedhdz ( const fmatvec::Vec &  q,
const fmatvec::Vec &  u 
)
overridevirtual

compute Jacobian for implicit integration

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeElasticEnergy()

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

compute elastic energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeGravitationalEnergy()

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

compute gravitational energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeh()

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

compute smooth right hand side

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeKineticEnergy()

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

compute kinetic energy

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ computeM()

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

compute mass matrix

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ getdhdq()

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

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ getdhdu()

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

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ geth()

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

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ getM()

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

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ getqSize()

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

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ getTangent()

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

compute tangent

Parameters
globalcoordinates
LAGRANGIANparameter

◆ getuSize()

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

Implements MBSimFlexibleBody::DiscretizationInterface.

◆ JGeneralized()

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

compute global state

       \brief compute accompanying trihedral
       \param global coordinates
       \param LAGRANGIAN parameter
      &zwj;/

fmatvec::SqrMat3 getOrientation(const fmatvec::Vec& q, double s);

/*!

Parameters
globalcoordinates
globalvelocities
LAGRANGIANparameter
Returns
x,y,z,alpha,2x bending angle and velocities ‍/ fmatvec::Vec StateAxis(const fmatvec::Vec& q, const fmatvec::Vec& v, double s);
  /**
     \brief compute JACOBIAN of contact description
     \param global coordinates
     \param LAGRANGIAN parameter
     \return JACOBIAN without x-direction

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