mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

Public Member Functions | Private Member Functions | Private Attributes | List of all members
MBSimFlexibleBody::FiniteElement1s33ANCF Class Reference

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

`#include <1s_33_ancf.h>`

Inheritance diagram for MBSimFlexibleBody::FiniteElement1s33ANCF:
[legend]

## Public Member Functions

| FiniteElement1s33ANCF (double sl0, double srho, double sE, double sG, double sA, double sI0, double sI1, double sI2, const fmatvec::Vec &sg)
| constructor More...
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 | computeJacobianOfMotion (const fmatvec::Vec &qElement, double s)
void | setCurlRadius (double R1, double R2)
void | setMaterialDamping (double depsilons)
void | initM ()
| calculate constant mass matrix
fmatvec::Vec | LocateBalken (const fmatvec::Vec &qElement, double s)
| return the position and Cardan angles at a contour point More...
fmatvec::Vec | StateBalken (const fmatvec::Vec &qElement, const fmatvec::Vec &qpElement, double s)
| return the state including Cardan angles at a contour point 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::Vec3 | getTangent (const fmatvec::Vec &qElement, double s)
| returns the tangent More...
fmatvec::Vec3 | getNormal (const fmatvec::Vec &qElement, double s)
| returns the normal More...
fmatvec::Vec3 | getBinormal (const fmatvec::Vec &qElement, double s)
| returns the binormal More...
Public Member Functions inherited from MBSimFlexibleBody::DiscretizationInterface
| DiscretizationInterface ()=default
| constructor
virtual | ~DiscretizationInterface ()=default
| destructor

## Private Member Functions

| FiniteElement1s33ANCF (const FiniteElement1s33ANCF &)
| copy constructor is declared private
FiniteElement1s33ANCF & | operator= (const FiniteElement1s33ANCF &)
| assignment operator is declared private

## Private Attributes

double | l0
| beam element length
double | rho
| density
double | E
| Young's modulus.
double | G
| shear modulus
double | A
| cross-secion area
double | I0
| polar moment of inertia
double | I1
| area moment of inertia
double | I2
| area moment of inertia
double | wss01
| predefined bending curvature
double | wss02
| predefined bending curvature
double | depsilon
| longitudinal damping
fmatvec::Vec | g
| gravitation
fmatvec::SymMat | M
| mass matrix
fmatvec::Vec | h
| right hand side
fmatvec::SqrMat | Damp
| damping matrix
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 spatial beam using Absolute Nodal Coordinate Formulation (ANCF)

cable element with no explicit torsion, i.e. angular velocity and Jacobian of rotation depend only on two bending angles

Author
  Thorsten Schindler

Date
  2014-03-20 initial commit

model based on DOMBROWSKI, S.: Analysis of Large Flexible Body Deformation in Multibody Systems Using Absolute Coordinates. Multibody System Dynamics (2002)

## Constructor & Destructor Documentation

## ◆ FiniteElement1s33ANCF()

MBSimFlexibleBody::FiniteElement1s33ANCF::FiniteElement1s33ANCF | ( | double | sl0,
|  | double | srho,
|  | double | sE,
|  | double | sG,
|  | double | sA,
|  | double | sI0,
|  | double | sI1,
|  | double | sI2,
|  | const fmatvec::Vec & | sg
| ) |  |

explicit

constructor

Parameters

  undeformed | lenght of element
  cross-section | area
  density | of beam
  Young's | modulus
  shear | modulus
  polar | moment of inertia
  area | moment of inertia
  area | moment of inertia
  vector | of gravitational acceleration

## Member Function Documentation

## ◆ computedhdz()

void MBSimFlexibleBody::FiniteElement1s33ANCF::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::FiniteElement1s33ANCF::computeElasticEnergy | ( | const fmatvec::Vec & | q | ) |

override virtual

compute elastic energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeGravitationalEnergy()

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

override virtual

compute gravitational energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeh()

void MBSimFlexibleBody::FiniteElement1s33ANCF::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::FiniteElement1s33ANCF::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::FiniteElement1s33ANCF::computeM | ( | const fmatvec::Vec & | q | ) |

override virtual

compute mass matrix

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getBinormal()

Vec3 MBSimFlexibleBody::FiniteElement1s33ANCF::getBinormal | ( | const fmatvec::Vec & | qElement,
|  | double | s
| ) |  |

returns the binormal

Parameters

  generalised | coordinates
  contour | point

Returns
  binormal

## ◆ getdhdq()

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

inline override virtual

Returns
  Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdu()

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

inline override virtual

Returns
  Jacobian of implicit integration regarding velocity

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ geth()

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

inline override virtual

Returns
  smooth right hand side of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getM()

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

inline override virtual

Returns
  mass matrix of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getNormal()

Vec3 MBSimFlexibleBody::FiniteElement1s33ANCF::getNormal | ( | const fmatvec::Vec & | qElement,
|  | double | s
| ) |  |

returns the normal

Parameters

  generalised | coordinates
  contour | point

Returns
  normal

## ◆ getqSize()

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

inline override virtual

Returns
  dimension of positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getTangent()

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

returns the tangent

Parameters

  generalised | coordinates
  contour | point

Returns
  tangent

## ◆ getuSize()

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

inline override virtual

Returns
  dimension of velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ GlobalShapeFunctions()

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

return the matrix of global shape functions

Parameters

  contour | point

Returns
  matrix of global shape functions

## ◆ JGeneralized()

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

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

Parameters

  generalised | coordinates
  contour | point

Returns
  JACOBIAN of translation and rotation with respect to generalised coordinates

## ◆ LocateBalken()

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

return the position and Cardan angles at a contour point

Parameters

  generalised | coordinates
  contour | point

Returns
  position and Cardan angles

## ◆ StateBalken()

Vec MBSimFlexibleBody::FiniteElement1s33ANCF::StateBalken | ( | const fmatvec::Vec & | qElement,
|  | const fmatvec::Vec & | qpElement,
|  | double | s
| ) |  |

return the state including Cardan angles at a contour point

Parameters

  generalised | positions
  generalised | velocities
  contour | point

Returns
  state including Cardan angles

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

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