mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

Public Member Functions | Protected Attributes | List of all members
MBSimFlexibleBody::SuperElementLinearExternal Class Reference

superelement for linear models from external preprocessing. More...

`#include <superelement_linear_external.h>`

Inheritance diagram for MBSimFlexibleBody::SuperElementLinearExternal:
[legend]

## Public Member Functions

void | init (MBSim::Element::InitStage stage, const MBSim::InitConfigSet &config)
void | setM (const fmatvec::SymMat &M_)
void | setK (const fmatvec::SqrMat &K_)
void | setProportionalDamping (double alpha_, double beta_)
const fmatvec::SymMat & | getM () const
const fmatvec::Vec & | geth () const
const fmatvec::SqrMat & | getdhdq () const
const fmatvec::SqrMat & | getdhdu () const
int | getqSize () const
int | getuSize () const
void | computeM (const fmatvec::Vec &qElement)
| compute mass matrix More...
void | computeh (const fmatvec::Vec &qElement, const fmatvec::Vec &uElement)
void | computedhdz (const fmatvec::Vec &qElement, const fmatvec::Vec &uElement)
| compute Jacobian for implicit integration More...
double | computeKineticEnergy (const fmatvec::Vec &q, const fmatvec::Vec &u)
| compute kinetic energy More...
double | computeGravitationalEnergy (const fmatvec::Vec &q)
| compute gravitational energy More...
double | computeElasticEnergy (const fmatvec::Vec &q)
| compute elastic energy More...
fmatvec::Vec | computeVelocity (const fmatvec::Vec &q, const fmatvec::Vec &u, const MBSim::ContourPointData &cp)
fmatvec::Vec | computeAngularVelocity (const fmatvec::Vec &q, const fmatvec::Vec &u, const MBSim::ContourPointData &cp)
fmatvec::Vec | computePosition (const fmatvec::Vec &q, const MBSim::ContourPointData &cp)
fmatvec::SqrMat | computeOrientation (const fmatvec::Vec &q, const MBSim::ContourPointData &cp)
fmatvec::Mat | computeJacobianOfMotion (const fmatvec::Vec &q, const MBSim::ContourPointData &cp)
MBSim::ContourPointData | addInterface (fmatvec::Mat J_, fmatvec::Vec KrP_)
Public Member Functions inherited from MBSimFlexibleBody::DiscretizationInterface
| DiscretizationInterface ()=default
| constructor
virtual | ~DiscretizationInterface ()=default
| destructor

## Protected Attributes

fmatvec::SymMat | M
fmatvec::Vec | h
fmatvec::SqrMat | K
fmatvec::SqrMat | D
double | alpha
double | beta
fmatvec::SqrMat | Dhq
fmatvec::SqrMat | Dhqp
std::vector< fmatvec::Mat > | J
std::vector< fmatvec::Vec > | KrP

## Detailed Description

superelement for linear models from external preprocessing.

Author
  Roland Zander

Date
  2009-05-22 some references added (Thorsten Schindler)
  2009-07-16 fixed proportional damping (Thorsten Schindler)
  2009-07-23 implicit integration (Thorsten Schindler)

## Member Function Documentation

## ◆ computedhdz()

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

inline virtual

compute Jacobian for implicit integration

Parameters

  generalised | positions
  generalised | velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeElasticEnergy()

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

inline virtual

compute elastic energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeGravitationalEnergy()

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

inline virtual

compute gravitational energy

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeh()

void MBSimFlexibleBody::SuperElementLinearExternal::computeh | ( | const fmatvec::Vec & | qElement,
|  | const fmatvec::Vec & | uElement
| ) |  |

inline virtual

update \(\vh= -(\vK \vq + \vD \vu)\), \(\vM\) is constant

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeKineticEnergy()

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

inline virtual

compute kinetic energy

Parameters

  generalised | positions
  generalised | velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ computeM()

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

inline virtual

compute mass matrix

Parameters

  generalised | positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdq()

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

inline virtual

Returns
  Jacobian of implicit integration regarding position

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getdhdu()

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

inline virtual

Returns
  Jacobian of implicit integration regarding velocity

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ geth()

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

inline virtual

Returns
  smooth right hand side of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getM()

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

inline virtual

Returns
  mass matrix of discretization

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getqSize()

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

inline virtual

Returns
  dimension of positions

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ getuSize()

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

inline virtual

Returns
  dimension of velocities

Implements MBSimFlexibleBody::DiscretizationInterface.

## ◆ setK()

void MBSimFlexibleBody::SuperElementLinearExternal::setK | ( | const fmatvec::SqrMat & | K_ | ) |

set constant stiffness matrix \(\vK\)

Parameters

  K | stiffness matrix

## ◆ setM()

void MBSimFlexibleBody::SuperElementLinearExternal::setM | ( | const fmatvec::SymMat & | M_ | ) |

set constant mass matrix \(\vM\)

Parameters

  M | mass matrix

## ◆ setProportionalDamping()

void MBSimFlexibleBody::SuperElementLinearExternal::setProportionalDamping | ( | double | alpha_,
|  | double | beta_
| ) |  |

inline

set coefficients \(\alpha\) and \(\beta\) for proportional damping: constant damping matrix \(\vD\) proportional to mass and stiffness

\[ \vD = \alpha * \vM + \beta*\vK \]

Parameters

  alpha | proportional coefficient for mass matrix
  beta | proportional coefficient for stiffness matrix

## Member Data Documentation

## ◆ alpha

double MBSimFlexibleBody::SuperElementLinearExternal::alpha

protected

constant for damping matrix, see setProportionalDamping

## ◆ beta

double MBSimFlexibleBody::SuperElementLinearExternal::beta

protected

constant for damping matrix, see setProportionalDamping

## ◆ D

fmatvec::SqrMat MBSimFlexibleBody::SuperElementLinearExternal::D

protected

constant damping matrix \(\vD\), see setProportionalDamping()

## ◆ Dhq

fmatvec::SqrMat MBSimFlexibleBody::SuperElementLinearExternal::Dhq

protected

constant Jacobians for implicit integration

## ◆ h

fmatvec::Vec MBSimFlexibleBody::SuperElementLinearExternal::h

protected

right hand side

## ◆ J

std::vector<fmatvec::Mat> MBSimFlexibleBody::SuperElementLinearExternal::J

protected

container holding constant JACOBIAN-matrizes of all Frames and Contours

## ◆ K

fmatvec::SqrMat MBSimFlexibleBody::SuperElementLinearExternal::K

protected

constant stiffness matrix \(\vK\)

## ◆ KrP

std::vector<fmatvec::Vec> MBSimFlexibleBody::SuperElementLinearExternal::KrP

protected

container holding undeformed positions in body coordinate system of all Frames and Contours

## ◆ M

fmatvec::SymMat MBSimFlexibleBody::SuperElementLinearExternal::M

protected

constant mass matrix \(\vM\)

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

- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/fe/superelement_linear_external.h
- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/fe/superelement_linear_external.cc