All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
MBSimFlexibleBody::FiniteElement1s21RCM Class Reference

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

#include <finite_element_1s_21_rcm.h>

Inheritance diagram for MBSimFlexibleBody::FiniteElement1s21RCM:
MBSimFlexibleBody::DiscretizationInterface

Public Member Functions

 FiniteElement1s21RCM (double l0_, double Arho_, double EA_, double EI_, fmatvec::Vec g_)
 constructor More...
 
virtual ~FiniteElement1s21RCM ()
 
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 &qElement)
 compute mass matrix More...
 
virtual void computeh (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement)
 compute smooth right hand side More...
 
virtual void computedhdz (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement)
 compute Jacobian for implicit integration More...
 
virtual double computeKineticEnergy (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement)
 compute kinetic energy More...
 
virtual double computeGravitationalEnergy (const fmatvec::Vec &qElement)
 compute gravitational energy More...
 
virtual double computePhysicalStrain (const fmatvec::Vec &qElement)
 
virtual double computeElasticEnergy (const fmatvec::Vec &qElement)
 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)
 
fmatvec::Vec computeAdditionalElementData (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement)
 
void setCurlRadius (double R)
 
void setMaterialDamping (double depsilons)
 
void setLehrDamping (double D)
 
fmatvec::Vec3 getPositions (const fmatvec::Vec &qElement, double s)
 
fmatvec::Vec3 getVelocities (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, double s)
 
fmatvec::Mat JGeneralizedInternal (const fmatvec::Vec &qElement, double s)
 return the JACOBIAN of translation and rotation with respect to generalised internal coordinates More...
 
fmatvec::Mat JGeneralized (const fmatvec::Vec &qElement, double s)
 return the JACOBIAN of translation and rotation with respect to generalised global coordinates More...
 
fmatvec::Mat JpGeneralized (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, double s, double sp)
 return the derivative of the JACOBIAN of translation and rotation with respect to generalised global coordinates More...
 
fmatvec::Vec ElementData (fmatvec::Vec qElement, fmatvec::Vec qpElement)
 return some additional element data More...
 
- Public Member Functions inherited from MBSimFlexibleBody::DiscretizationInterface
 DiscretizationInterface ()
 constructor
 
virtual ~DiscretizationInterface ()
 destructor
 

Protected Attributes

double l0
 length, line-density, longitudinal and bending stiffness
 
double Arho
 
double EA
 
double EI
 
double wss0
 predefined bending curvature
 
double depsilon
 longitudinal damping
 
fmatvec::Vec g
 gravitation
 
fmatvec::SymMat M
 mass matrix
 
fmatvec::Vec h
 right hand side
 
fmatvec::SqrMat Dhq
 derivative of right hand side with respect to positions and velocities
 
fmatvec::SqrMat Dhqp
 
fmatvec::SqrMat Damp
 damping matrix
 
fmatvec::Vec qLocal
 internal position and velocities as well as smooth right hand side
 
fmatvec::Vec qpLocal
 
fmatvec::Vec hIntermediate
 
fmatvec::SymMat MLocal
 local mass matrix
 
fmatvec::SqrMat Jeg
 transformation global -> internal coordinates coordinates and its derivative
 
fmatvec::SqrMat Jegp
 
fmatvec::Vec qElement_Old
 global and local state of the last time step
 
fmatvec::Vec qpElement_Old
 
double tol_comp
 tolerance for comparison of state with old state
 

Private Member Functions

void BuildqLocal (const fmatvec::Vec &qGlobal, fmatvec::Vec &qLocal)
 calculates the local beam coordinates More...
 
void BuildJacobi (const fmatvec::Vec &qLocal, fmatvec::SqrMat &Jeg)
 calculates the JACOBIAN of transformation More...
 
void BuildJacobi (const fmatvec::Vec &qLocal, const fmatvec::Vec &qpIntern, fmatvec::SqrMat &Jeg, fmatvec::SqrMat &Jegp)
 calculates the JACOBIAN of transformation and its time derivative More...
 
fmatvec::Vec3 evalLocalPositions (const fmatvec::Vec &qLocal, double s)
 calculates Cartesian position More...
 
fmatvec::Vec3 evalLocalVelocities (const fmatvec::Vec &qLocal, const fmatvec::Vec &qpLocal, double s)
 calculates Cartesian velocity More...
 
fmatvec::Mat hFullJacobi (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, const fmatvec::Vec &qLocal, const fmatvec::Vec &qpLocal, const fmatvec::SqrMat &Jeg, const fmatvec::SqrMat &Jegp, const fmatvec::SymMat &MLocal, const fmatvec::Vec &hIntermediate)
 calculates JACOBIAN of implicit integration More...
 
 FiniteElement1s21RCM ()
 constructor is declared private
 

Private Attributes

double l0h2
 powers of the beam length
 
double l0h3
 
double l0h4
 
double l0h5
 
double l0h7
 
double l0h8
 

Detailed Description

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

Author
Roland Zander
Thorsten Schindler
Date
2009-03-23 initial for kernel_dev
2009-07-27 implicit integration (Thorsten Schindler)
2010-03-07 renamed ElementData to computeAdditionalElementData and wired to class (Roland Zander)
Todo:

transform computeState to Position / Velocity / Orientation / AngularVelocity

JacobianMinimalRepresentation

model based on Zander, R.; Ulbrich, H.: Reference-free mixed FE-MBS approach for beam structures with constraints, Journal of Nonlinear Dynamics, Kluwer Academic Publishers, 2005 Zander, R.; Ulbrich, H.: Impacts on beam structures: Interaction of wave propagationand global dynamics, IUTAM Symposium on Multiscale Problems in Multibody System Contacts Stuttgart, Germany, 2006 Zander, R.; Ulbrich, H.: Free plain motion of flexible beams in MBS - A comparison of models, III European Conference on Computational Mechanics Lisbon, Portugal, 2006

Constructor & Destructor Documentation

MBSimFlexibleBody::FiniteElement1s21RCM::FiniteElement1s21RCM ( double  l0_,
double  Arho_,
double  EA_,
double  EI_,
fmatvec::Vec  g_ 
)

constructor

Parameters
undeformedlenght of element
line-densityof beam
longitudinalstiffness
bendingstiffness
vectorof gravitational acceleration
virtual MBSimFlexibleBody::FiniteElement1s21RCM::~FiniteElement1s21RCM ( )
inlinevirtual

Member Function Documentation

void MBSimFlexibleBody::FiniteElement1s21RCM::BuildJacobi ( const fmatvec::Vec qLocal,
fmatvec::SqrMat Jeg 
)
private

calculates the JACOBIAN of transformation

Parameters
localbeam coordinates
JACOBIANot transformation
void MBSimFlexibleBody::FiniteElement1s21RCM::BuildJacobi ( const fmatvec::Vec qLocal,
const fmatvec::Vec qpIntern,
fmatvec::SqrMat Jeg,
fmatvec::SqrMat Jegp 
)
private

calculates the JACOBIAN of transformation and its time derivative

Parameters
localbeam positions
localbeam velocities
JACOBIANof transformation
timederivative of JACOBIAN of transformation
void MBSimFlexibleBody::FiniteElement1s21RCM::BuildqLocal ( const fmatvec::Vec qGlobal,
fmatvec::Vec qLocal 
)
private

calculates the local beam coordinates

Parameters
globalcoordinates
localcoordinates
Vec MBSimFlexibleBody::FiniteElement1s21RCM::computeAdditionalElementData ( const fmatvec::Vec qElement,
const fmatvec::Vec qpElement 
)

compute additional informations for element

void MBSimFlexibleBody::FiniteElement1s21RCM::computedhdz ( const fmatvec::Vec q,
const fmatvec::Vec u 
)
virtual

compute Jacobian for implicit integration

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute elastic energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute gravitational energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute smooth right hand side

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

double MBSimFlexibleBody::FiniteElement1s21RCM::computeKineticEnergy ( const fmatvec::Vec q,
const fmatvec::Vec u 
)
virtual

compute kinetic energy

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute mass matrix

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

fmatvec::Vec MBSimFlexibleBody::FiniteElement1s21RCM::ElementData ( fmatvec::Vec  qElement,
fmatvec::Vec  qpElement 
)

return some additional element data

Parameters
globalpositions
globalvelocities
Returns
elongation, elongational velocity, cog position, cog velocity, bending angle sum, bending velocity sum
Vec3 MBSimFlexibleBody::FiniteElement1s21RCM::evalLocalPositions ( const fmatvec::Vec qLocal,
double  s 
)
private

calculates Cartesian position

Parameters
localpositions
contourpoint
Returns
Cartesian position
Vec3 MBSimFlexibleBody::FiniteElement1s21RCM::evalLocalVelocities ( const fmatvec::Vec qLocal,
const fmatvec::Vec qpLocal,
double  s 
)
private

calculates Cartesian velocity

Parameters
localpositions
localvelocities
contourpoint
Returns
Cartesian velocity
virtual const fmatvec::SqrMat& MBSimFlexibleBody::FiniteElement1s21RCM::getdhdq ( ) const
inlinevirtual
Returns
Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

Mat MBSimFlexibleBody::FiniteElement1s21RCM::hFullJacobi ( const fmatvec::Vec qElement,
const fmatvec::Vec qpElement,
const fmatvec::Vec qLocal,
const fmatvec::Vec qpLocal,
const fmatvec::SqrMat Jeg,
const fmatvec::SqrMat Jegp,
const fmatvec::SymMat MLocal,
const fmatvec::Vec hIntermediate 
)
private

calculates JACOBIAN of implicit integration

Parameters
globalpositions
globalvelocities
localpositions
localvelocities
JACOBIANof transformation
derivativeof JACOBIAN of transformation
localmass matrix
localright hand side
Returns
JACOBIAN for implicit integration
Mat MBSimFlexibleBody::FiniteElement1s21RCM::JGeneralized ( const fmatvec::Vec qElement,
double  s 
)

return the JACOBIAN of translation and rotation with respect to generalised global coordinates

Parameters
generalisedcoordinates
contourpoint
Returns
JACOBIAN of translation and rotation with respect to generalised global coordinates
Mat MBSimFlexibleBody::FiniteElement1s21RCM::JGeneralizedInternal ( const fmatvec::Vec qElement,
double  s 
)

return the JACOBIAN of translation and rotation with respect to generalised internal coordinates

Parameters
generalisedcoordinates
contourpoint
Returns
JACOBIAN of translation and rotation with respect to generalised internal coordinates
Mat MBSimFlexibleBody::FiniteElement1s21RCM::JpGeneralized ( const fmatvec::Vec qElement,
const fmatvec::Vec qpElement,
double  s,
double  sp 
)

return the derivative of the JACOBIAN of translation and rotation with respect to generalised global coordinates

Parameters
generalisedcoordinates
generalisedvelocities
contourpoint
contourpoint derivative
Returns
derivative of JACOBIAN of translation and rotation with respect to generalised global coordinates

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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML