All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
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:
MBSimFlexibleBody::DiscretizationInterface

Public Member Functions

void init (MBSim::Element::InitStage stage)
 
void setM (const fmatvec::SymMat &M_)
 
void setK (const fmatvec::SqrMat &K_)
 
void setProportionalDamping (double alpha_, double beta_)
 
const fmatvec::SymMatgetM () const
 
const fmatvec::Vecgeth () const
 
const fmatvec::SqrMatgetdhdq () const
 
const fmatvec::SqrMatgetdhdu () 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 ()
 constructor
 
virtual ~DiscretizationInterface ()
 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::MatJ
 
std::vector< fmatvec::VecKrP
 

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

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

compute Jacobian for implicit integration

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

double MBSimFlexibleBody::SuperElementLinearExternal::computeElasticEnergy ( const fmatvec::Vec q)
inlinevirtual

compute elastic energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

double MBSimFlexibleBody::SuperElementLinearExternal::computeGravitationalEnergy ( const fmatvec::Vec q)
inlinevirtual

compute gravitational energy

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

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

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

compute kinetic energy

Parameters
generalisedpositions
generalisedvelocities

Implements MBSimFlexibleBody::DiscretizationInterface.

void MBSimFlexibleBody::SuperElementLinearExternal::computeM ( const fmatvec::Vec q)
inlinevirtual

compute mass matrix

Parameters
generalisedpositions

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

Implements MBSimFlexibleBody::DiscretizationInterface.

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

set constant stiffness matrix $\vK$

Parameters
Kstiffness matrix
void MBSimFlexibleBody::SuperElementLinearExternal::setM ( const fmatvec::SymMat M_)

set constant mass matrix $\vM$

Parameters
Mmass matrix
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
alphaproportional coefficient for mass matrix
betaproportional coefficient for stiffness matrix

Member Data Documentation

double MBSimFlexibleBody::SuperElementLinearExternal::alpha
protected

constant for damping matrix, see setProportionalDamping

double MBSimFlexibleBody::SuperElementLinearExternal::beta
protected

constant for damping matrix, see setProportionalDamping

fmatvec::SqrMat MBSimFlexibleBody::SuperElementLinearExternal::D
protected

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

fmatvec::SqrMat MBSimFlexibleBody::SuperElementLinearExternal::Dhq
protected

constant Jacobians for implicit integration

fmatvec::Vec MBSimFlexibleBody::SuperElementLinearExternal::h
protected

right hand side

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

container holding constant JACOBIAN-matrizes of all Frames and Contours

fmatvec::SqrMat MBSimFlexibleBody::SuperElementLinearExternal::K
protected

constant stiffness matrix $\vK$

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

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

fmatvec::SymMat MBSimFlexibleBody::SuperElementLinearExternal::M
protected

constant mass matrix $\vM$


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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML