All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
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 <finite_element_1s_33_rcm.h>

Inheritance diagram for MBSimFlexibleBody::FiniteElement1s33RCM:
MBSimFlexibleBody::DiscretizationInterface

Public Member Functions

 FiniteElement1s33RCM (double l0_, double rho_, double A_, double E_, double G_, double I1_, double I2_, double I0_, const fmatvec::Vec &g_, const RevCardanPtr &ag_)
 constructor More...
 
virtual const fmatvec::SymMatgetM () const
 
virtual const fmatvec::Vecgeth () const
 
virtual const fmatvec::SqrMatgetdhdq () const
 
virtual const fmatvec::SqrMatgetdhdu () const
 
virtual int getqSize () const
 
virtual int getuSize () const
 
virtual void computeM (const fmatvec::Vec &qG)
 compute mass matrix More...
 
virtual void computeh (const fmatvec::Vec &qG, const fmatvec::Vec &qGt)
 compute smooth right hand side More...
 
virtual void computedhdz (const fmatvec::Vec &qG, const fmatvec::Vec &qGt)
 compute Jacobian for implicit integration More...
 
virtual double computeKineticEnergy (const fmatvec::Vec &qG, const fmatvec::Vec &qGt)
 compute kinetic energy More...
 
virtual double computeGravitationalEnergy (const fmatvec::Vec &qG)
 compute gravitational energy More...
 
virtual double computeElasticEnergy (const fmatvec::Vec &qG)
 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 ()
 constructor
 
virtual ~DiscretizationInterface ()
 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

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

constructor

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

Member Function Documentation

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

compute interesting data

Parameters
globalcoordinates
globalvelocities
void MBSimFlexibleBody::FiniteElement1s33RCM::computedhdz ( const fmatvec::Vec q,
const fmatvec::Vec u 
)
virtual

compute Jacobian for implicit integration

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

double MBSimFlexibleBody::FiniteElement1s33RCM::computeElasticEnergy ( const fmatvec::Vec q)
virtual

compute elastic energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

double MBSimFlexibleBody::FiniteElement1s33RCM::computeGravitationalEnergy ( const fmatvec::Vec q)
virtual

compute gravitational energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

void MBSimFlexibleBody::FiniteElement1s33RCM::computeh ( const fmatvec::Vec q,
const fmatvec::Vec u 
)
virtual

compute smooth right hand side

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute JACOBIAN of contact description in global coordinates

Parameters
globalcoordinates
LAGRANGIANparameter
double MBSimFlexibleBody::FiniteElement1s33RCM::computeKineticEnergy ( const fmatvec::Vec q,
const fmatvec::Vec u 
)
virtual

compute kinetic energy

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

void MBSimFlexibleBody::FiniteElement1s33RCM::computeM ( const fmatvec::Vec q)
virtual

compute mass matrix

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

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
globalcoordinates
globalvelocities
const fmatvec::SqrMat & MBSimFlexibleBody::FiniteElement1s33RCM::getdhdq ( ) const
inlinevirtual
Returns
Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

const fmatvec::SymMat & MBSimFlexibleBody::FiniteElement1s33RCM::getM ( ) const
inlinevirtual
Returns
mass matrix of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

int MBSimFlexibleBody::FiniteElement1s33RCM::getqSize ( ) const
inlinevirtual
Returns
dimension of positions

Implements MBSimFlexibleBody::DiscretizationInterface.

int MBSimFlexibleBody::FiniteElement1s33RCM::getuSize ( ) const
inlinevirtual
Returns
dimension of velocities

Implements MBSimFlexibleBody::DiscretizationInterface.


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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML