mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

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 <1s_21_ancf.h>`

Inheritance diagram for MBSimFlexibleBody::FiniteElement1s21ANCF:
[legend]

## Public Member Functions

| FiniteElement1s21ANCF (double sl0, double sArho, double sEA, double sEI, const fmatvec::Vec &sg, bool sEuler=false, double sv0=0.)
| constructor More...
| ~FiniteElement1s21ANCF () override
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 &qElement) override
| compute mass matrix More...
void | computeh (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement) override
| compute smooth right hand side More...
void | computedhdz (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement) override
| compute Jacobian for implicit integration More...
double | computeKineticEnergy (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement) override
| compute kinetic energy More...
double | computeGravitationalEnergy (const fmatvec::Vec &qElement) override
| compute gravitational energy More...
double | computeElasticEnergy (const fmatvec::Vec &qElement) 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 | 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 ()=default
| constructor
virtual | ~DiscretizationInterface ()=default
| 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

## ◆ FiniteElement1s21ANCF()

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

explicit

constructor

Parameters

  undeformed | lenght of element
  line-density | of beam
  longitudinal | stiffness
  bending | stiffness
  vector | of gravitational acceleration

## ◆ ~FiniteElement1s21ANCF()

MBSimFlexibleBody::FiniteElement1s21ANCF::~FiniteElement1s21ANCF | ( |  | ) |

override default

\destructor

## Member Function Documentation

## ◆ computedhdz()

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

override virtual

compute Jacobian for implicit integration

Parameters

  generalised | positions
  generalised | velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeElasticEnergy()

double MBSimFlexibleBody::FiniteElement1s21ANCF::computeElasticEnergy | ( | const fmatvec::Vec & | q | ) |

override virtual

compute elastic energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeGravitationalEnergy()

double MBSimFlexibleBody::FiniteElement1s21ANCF::computeGravitationalEnergy | ( | const fmatvec::Vec & | q | ) |

override virtual

compute gravitational energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeh()

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

override virtual

compute smooth right hand side

Parameters

  generalised | positions
  generalised | velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeKineticEnergy()

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

override virtual

compute kinetic energy

Parameters

  generalised | positions
  generalised | velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeM()

void MBSimFlexibleBody::FiniteElement1s21ANCF::computeM | ( | const fmatvec::Vec & | q | ) |

override virtual

compute mass matrix

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdq()

const fmatvec::SqrMat& MBSimFlexibleBody::FiniteElement1s21ANCF::getdhdq | ( |  | ) | const

inline override virtual

Returns
  Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdu()

const fmatvec::SqrMat& MBSimFlexibleBody::FiniteElement1s21ANCF::getdhdu | ( |  | ) | const

inline override virtual

Returns
  Jacobian of implicit integration regarding velocity

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ geth()

const fmatvec::Vec& MBSimFlexibleBody::FiniteElement1s21ANCF::geth | ( |  | ) | const

inline override virtual

Returns
  smooth right hand side of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getM()

const fmatvec::SymMat& MBSimFlexibleBody::FiniteElement1s21ANCF::getM | ( |  | ) | const

inline override virtual

Returns
  mass matrix of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getqSize()

int MBSimFlexibleBody::FiniteElement1s21ANCF::getqSize | ( |  | ) | const

inline override virtual

Returns
  dimension of positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getTangent()

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

returns the tangent

Parameters

  generalised | coordinates
  contour | point (Lagrange/Euler)

Returns
  tangent

## ◆ getuSize()

int MBSimFlexibleBody::FiniteElement1s21ANCF::getuSize | ( |  | ) | const

inline override virtual

Returns
  dimension of velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ GlobalShapeFunctions()

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

return the matrix of global shape functions

Parameters

  contour | point (Lagrange/Euler)

Returns
  matrix of global shape functions

## ◆ GlobalShapeFunctions_1stDerivative()

Mat MBSimFlexibleBody::FiniteElement1s21ANCF::GlobalShapeFunctions_1stDerivative | ( | double | s | ) |

return 1st derivative of the matrix of global shape functions

Parameters

  contour | point (Lagrange/Euler)

Returns
  1st derivative of the matrix of global shape functions

## ◆ JGeneralized()

Mat MBSimFlexibleBody::FiniteElement1s21ANCF::JGeneralized | ( | const fmatvec::Vec & | qElement,
|  | double | s
| ) |  |

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

Parameters

  generalised | coordinates
  contour | point (Lagrange/Euler)

Returns
  JACOBIAN of translation and rotation with respect to generalised coordinates

## ◆ LocateBalken()

Vec MBSimFlexibleBody::FiniteElement1s21ANCF::LocateBalken | ( | const fmatvec::Vec & | qElement,
|  | double | s
| ) |  |

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

Parameters

  generalised | coordinates
  contour | point (Lagrange/Euler)

Returns
  planar position and angle

## ◆ setCurlRadius()

void MBSimFlexibleBody::FiniteElement1s21ANCF::setCurlRadius | ( | double | R | ) |

compute additional informations for element

## ◆ StateBalken()

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

  generalised | positions
  generalised | velocities
  contour | point (Lagrange/Euler)

Returns
  planar state

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

- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/fe/1s_21_ancf.h
- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/fe/1s_21_ancf.cc