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

finite element for planar beam using Absolute Nodal Coordinate Formulation (ANCF) More...

#include <finite_element_1s_21_ancf.h>

Inheritance diagram for MBSimFlexibleBody::FiniteElement1s21ANCF:
MBSimFlexibleBody::DiscretizationInterface

Public Member Functions

 FiniteElement1s21ANCF (double sl0, double sArho, double sEA, double sEI, fmatvec::Vec sg, bool sEuler=false, double sv0=0.)
 constructor More...
 
virtual ~FiniteElement1s21ANCF ()
 
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 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)
 
void setCurlRadius (double R)
 
void setMaterialDamping (double depsilon_, double dkappa_)
 
void initM ()
 calculate constant mass matrix
 
fmatvec::Vec LocateBalken (const fmatvec::Vec &qElement, double s)
 return the planar position and angle at a contour point (Lagrange/Euler) More...
 
fmatvec::Vec StateBalken (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, double s)
 return the planar state at a contour point (Lagrange/Euler) More...
 
fmatvec::Mat JGeneralized (const fmatvec::Vec &qElement, double s)
 return the JACOBIAN of translation and rotation with respect to generalised coordinates More...
 
fmatvec::Mat GlobalShapeFunctions (double s)
 return the matrix of global shape functions More...
 
fmatvec::Mat GlobalShapeFunctions_1stDerivative (double s)
 return 1st derivative of the matrix of global shape functions More...
 
fmatvec::Vec3 getTangent (const fmatvec::Vec &qElement, double s)
 returns the tangent More...
 
- Public Member Functions inherited from MBSimFlexibleBody::DiscretizationInterface
 DiscretizationInterface ()
 constructor
 
virtual ~DiscretizationInterface ()
 destructor
 

Private Attributes

double l0
 beam element length
 
double Arho
 line-density
 
double EA
 longitudinal stiffness
 
double EI
 bending stiffness
 
bool Euler
 Euler perspective: true if set.
 
double v0
 Euler perspective: constant longitudinal velocity.
 
double wss0
 predefined bending curvature
 
double depsilon
 longitudinal damping
 
double dkappa
 curvature 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
 
fmatvec::SqrMat Dhqp
 derivative of right hand side with respect to velocities
 

Detailed Description

finite element for planar beam using Absolute Nodal Coordinate Formulation (ANCF)

Author
Roland Zander
Thorsten Schindler
Date
2014-02-27 basic revision
2014-03-23 damping added
2014-05-09 Euler perspective added as an option

model based on SHABANA, A. A.: Computer Implementation of the Absolute Nodal Coordinate Formulation for Flexible Multibody Dynamics. In: Nonlinear Dynamics 16 (1998), S. 293-306 SHABANA, A. A.: Definition of the Slopes and the Finite Element Absolute Nodal Coordinate Formulation. In: Nonlinear Dynamics 1 (1997), S. 339-348 SHABANE, A. A.: Dynamics of Multibody Systems. Cambridge University Press (2005)

Constructor & Destructor Documentation

MBSimFlexibleBody::FiniteElement1s21ANCF::FiniteElement1s21ANCF ( double  sl0,
double  sArho,
double  sEA,
double  sEI,
fmatvec::Vec  sg,
bool  sEuler = false,
double  sv0 = 0. 
)
explicit

constructor

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

Member Function Documentation

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

compute Jacobian for implicit integration

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute elastic energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute gravitational energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute smooth right hand side

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute kinetic energy

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute mass matrix

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

virtual const fmatvec::SqrMat& MBSimFlexibleBody::FiniteElement1s21ANCF::getdhdq ( ) const
inlinevirtual
Returns
Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

Vec3 MBSimFlexibleBody::FiniteElement1s21ANCF::getTangent ( const fmatvec::Vec qElement,
double  s 
)

returns the tangent

Parameters
generalisedcoordinates
contourpoint (Lagrange/Euler)
Returns
tangent
virtual int MBSimFlexibleBody::FiniteElement1s21ANCF::getuSize ( ) const
inlinevirtual
Returns
dimension of velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

Mat MBSimFlexibleBody::FiniteElement1s21ANCF::GlobalShapeFunctions ( double  s)

return the matrix of global shape functions

Parameters
contourpoint (Lagrange/Euler)
Returns
matrix of global shape functions
Mat MBSimFlexibleBody::FiniteElement1s21ANCF::GlobalShapeFunctions_1stDerivative ( double  s)

return 1st derivative of the matrix of global shape functions

Parameters
contourpoint (Lagrange/Euler)
Returns
1st derivative of the matrix of global shape functions
Mat MBSimFlexibleBody::FiniteElement1s21ANCF::JGeneralized ( const fmatvec::Vec qElement,
double  s 
)

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

Parameters
generalisedcoordinates
contourpoint (Lagrange/Euler)
Returns
JACOBIAN of translation and rotation with respect to generalised coordinates
Vec MBSimFlexibleBody::FiniteElement1s21ANCF::LocateBalken ( const fmatvec::Vec qElement,
double  s 
)

return the planar position and angle at a contour point (Lagrange/Euler)

Parameters
generalisedcoordinates
contourpoint (Lagrange/Euler)
Returns
planar position and angle
void MBSimFlexibleBody::FiniteElement1s21ANCF::setCurlRadius ( double  R)

compute additional informations for element

Vec MBSimFlexibleBody::FiniteElement1s21ANCF::StateBalken ( const fmatvec::Vec qElement,
const fmatvec::Vec qpElement,
double  s 
)

return the planar state at a contour point (Lagrange/Euler)

Parameters
generalisedpositions
generalisedvelocities
contourpoint (Lagrange/Euler)
Returns
planar state

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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML