mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

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

plate according to Reissner-Mindlin with moving frame of reference and small tilting assumption More...

`#include <2s_13_mfr_mindlin.h>`

Inheritance diagram for MBSimFlexibleBody::FlexibleBody2s13MFRMindlin:
[legend]

## Public Member Functions

| FlexibleBody2s13MFRMindlin (const std::string &name)
| constructor More...
| ~FlexibleBody2s13MFRMindlin () override
| destructor
void | updateM () override
void | BuildElements () override
| references finite element coordinates to assembled coordinates
void | GlobalVectorContribution (int CurrentElement, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec) override
| insert 'local' information in global vectors More...
void | GlobalMatrixContribution (int CurrentElement, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat) override
| insert 'local' information in global matrices More...
void | GlobalMatrixContribution (int CurrentElement, const fmatvec::SymMat &locMat, fmatvec::SymMat &gloMat) override
| insert 'local' information in global matrices More...
fmatvec::Vec3 | evalPosition () override
fmatvec::SqrMat3 | evalOrientation () override
void | updatePositions (Frame2s *frame) override
void | updateVelocities (Frame2s *frame) override
void | updateAccelerations (Frame2s *frame) override
void | updateJacobians (Frame2s *frame, int j=0) override
void | updateGyroscopicAccelerations (Frame2s *frame) override
void | updatePositions (int node) override
void | updateVelocities (int node) override
void | updateAccelerations (int node) override
void | updateJacobians (int node, int j=0) override
void | updateGyroscopicAccelerations (int node) override
void | init (InitStage stage, const MBSim::InitConfigSet &config) override
fmatvec::Vec | transformCW (const fmatvec::Vec &WrPoint) override
| transform Cartesian to cylinder system More...
Public Member Functions inherited from MBSimFlexibleBody::FlexibleBody2s13
| FlexibleBody2s13 (const std::string &name)
| constructor More...
| ~FlexibleBody2s13 () override=default
| destructor
void | updateh (int j=0) override
void | updatedhdz () override
void | updateM () override
void | updateLLM () override
void | plot () override
void | setRadius (double Ri_, double Ra_)
void | setEModul (double E_)
void | setPoissonRatio (double nu_)
void | setThickness (const fmatvec::Vec &d_)
fmatvec::Vec | getThickness () const
void | setDensity (double rho_)
int | getReferenceDegreesOfFreedom () const
int | getRadialNumberOfElements () const
int | getAzimuthalNumberOfElements () const
double | getInnerRadius () const
double | getOuterRadius () const
double | getAzimuthalDegree () const
double | getRadialDegree () const
fmatvec::SqrMat3 & | evalA ()
fmatvec::SqrMat3 & | evalG ()
void | setReferenceInertia (double m0_, fmatvec::SymMat3 J0_)
void | setLockType (LockType LT_)
void | setNumberElements (int nr_, int nj_)
| set number of elements in radial and azimuthal direction More...
double | computePotentialEnergy () override
void | resetUpToDate () override
void | updateExt ()
const fmatvec::Vec & | evalqExt ()
const fmatvec::Vec & | evaluExt ()
Public Member Functions inherited from MBSimFlexibleBody::FlexibleBody2s
| FlexibleBody2s (const std::string &name)
| constructor: More...
void | init (InitStage stage, const MBSim::InitConfigSet &config) override
void | addFrame (Frame2s *frame)
void | setOpenMBVSpineExtrusion (const std::shared_ptr< OpenMBV::SpineExtrusion > &body)
Public Member Functions inherited from MBSimFlexibleBody::FlexibleBodyContinuum< fmatvec::Vec2 >
| FlexibleBodyContinuum (const std::string &name)
| constructor More...
void | setContourNodes (const std::vector< fmatvec::Vec2 > nodes)
void | setNodeOffset (const fmatvec::Vec2 nodeOffset_)
fmatvec::Vec2 | getNodeOffset () const
Public Member Functions inherited from MBSimFlexibleBody::FlexibleBody
| FlexibleBody (const std::string &name)
| constructor More...
| ~FlexibleBody () override
| destructor
void | updateqd () override
void | updateh (int k=0) override
void | updateM () override
void | updatedhdz () override
void | initializeUsingXML (xercesc::DOMElement *element) override
void | init (InitStage stage, const MBSim::InitConfigSet &config) override
virtual double | computeKineticEnergy ()
void | setFrameOfReference (MBSim::Frame *frame) override
virtual void | setq0 (const fmatvec::Vec &q0_)
virtual void | setu0 (const fmatvec::Vec &u0_)
const fmatvec::Vec & | getqElement (int i)
const fmatvec::Vec & | getuElement (int i)
virtual fmatvec::Vec3 | getAngles (int i)
virtual fmatvec::Vec3 | getDerivativeOfAngles (int i)
void | setMassProportionalDamping (const double d_)
| cartesian kinematic for contour or external frame (normal, tangent, binormal) is set by implementation class More...
void | addFrame (MBSim::ContourFrame *frame)
void | addFrame (MBSim::FixedRelativeFrame *frame)
void | addContour (MBSim::Contour *contour) override
virtual void | exportPositionVelocity (const std::string &filenamePos, const std::string &filenameVel=std::string(), const int &deg=3, const bool &writePsFile=false)
| interpolates the position and optional the velocity coordinates of the flexible body with Nurbs-package and exports the nurbs curve in the specified file More...
virtual void | importPositionVelocity (const std::string &filenamePos, const std::string &filenameVel=std::string())
| imports the interpolated position and optional the velocity files (created with exportPositionVelocity) and fits the rigid and flexible coordinate dofs and optional the translatory velocity components of flexible body to the imported nurbs curve More...
void | resetUpToDate () override
void | addFrame (NodeBasedFrame *frame)
Public Member Functions inherited from MBSimFlexibleBody::NodeBasedBody
| NodeBasedBody (const std::string &name)
void | resetUpToDate () override
virtual void | updateStresses (int i)
const fmatvec::Vec3 & | evalNodalPosition (int i)
const fmatvec::Vec3 & | evalNodalVelocity (int i)
const fmatvec::Vec3 & | evalNodalAcceleration (int i)
const fmatvec::Mat3xV & | evalNodalJacobianOfTranslation (int i, int j=0)
const fmatvec::Vec3 & | evalNodalGyroscopicAccelerationOfTranslation (int i)
const fmatvec::Vec3 & | evalNodalDisplacement (int i)
const fmatvec::Vector< fmatvec::Fixed< 6 >, double > & | evalNodalStress (int i)
fmatvec::SqrMat3 & | getNodalOrientation (int i, bool check=true)
fmatvec::Vec3 & | getNodalAngularVelocity (int i, bool check=true)
fmatvec::Vec3 & | getNodalAngularAcceleration (int i, bool check=true)
fmatvec::Mat3xV & | getNodalJacobianOfRotation (int i, int j=0, bool check=true)
fmatvec::Vec3 & | getNodalGyroscopicAccelerationOfRotation (int i, bool check=true)
void | addFrame (NodeBasedFrame *frame)
void | init (InitStage stage, const MBSim::InitConfigSet &config) override
int | getNumberOfNodes ()
int | getNodeIndex (int nodeNumber) const
Public Member Functions inherited from MBSim::Body
| Body (const std::string &name)
void | setDynamicSystemSolver (DynamicSystemSolver *sys) override
void | init (InitStage stage, const InitConfigSet &config) override
void | createPlotGroup () override
virtual Contour * | getContour (const std::string &name, bool check=true) const
virtual Frame * | getFrame (const std::string &name, bool check=true) const
virtual Frame * | getFrameOfReference ()
virtual const Frame * | getFrameOfReference () const
int | frameIndex (const Frame *frame_) const
int | contourIndex (const Contour *contour_) const
Element * | getChildByContainerAndName (const std::string &container, const std::string &name) const override
virtual void | addFrame (Frame *frame)
Public Member Functions inherited from MBSim::Object
| Object (const std::string &name)
virtual void | updateqRef (fmatvec::Vec &qRef)
virtual void | updateqdRef (fmatvec::Vec &qdRef)
virtual void | updatedqRef (fmatvec::Vec &dqRef)
virtual void | updateuRef (fmatvec::Vec &uRef)
virtual void | updateuallRef (fmatvec::Vec &uallRef)
virtual void | updateudRef (fmatvec::Vec &udRef)
virtual void | updateduRef (fmatvec::Vec &duRef)
virtual void | updateudallRef (fmatvec::Vec &udallRef)
virtual void | updatehRef (fmatvec::Vec &hRef, int i=0)
virtual void | updatedhdqRef (fmatvec::Mat &dhdqRef, int i=0)
virtual void | updatedhduRef (fmatvec::SqrMat &dhduRef, int i=0)
virtual void | updatedhdtRef (fmatvec::Vec &dhdtRef, int i=0)
virtual void | updaterRef (fmatvec::Vec &ref, int i=0)
virtual void | updaterdtRef (fmatvec::Vec &ref)
virtual void | updateTRef (fmatvec::Mat &ref)
virtual void | updateMRef (fmatvec::SymMat &ref)
virtual void | updateLLMRef (fmatvec::SymMat &ref)
void | init (InitStage stage, const InitConfigSet &config) override
virtual void | initz ()
virtual void | writez (H5::GroupBase *group)
virtual void | readz0 (H5::GroupBase *group)
virtual void | setUpInverseKinetics ()
void | createPlotGroup () override
Public Member Functions inherited from MBSim::Element
| Element (const std::string &name)
virtual void | plotAtSpecialEvent ()
const std::string & | getName () const
void | setName (const std::string &str)
DynamicSystemSolver * | getDynamicSystemSolver ()
H5::GroupBase * | getPlotGroup ()
bool | getPlotFeature (const PlotFeatureEnum &pf)
virtual void | setPlotFeature (const PlotFeatureEnum &pf, bool value)
void | setPlotFeatureForChildren (const PlotFeatureEnum &pf, bool value)
void | setPlotFeatureRecursive (const PlotFeatureEnum &pf, bool value)
void | setPlotAttribute (const std::string &name, const T &value)
T * | getByPath (const std::string &path, bool initialCaller=true) const
std::string | getPath (const Element *relTo=nullptr, std::string sep="/") const
std::vector< Element * > | getDependencies () const
int | computeLevel ()

## Protected Member Functions

void | initMatrices () override
| calculate the matrices for the first time
void | updateAG () override
| update the transformation matrices A and G
void | computeStiffnessMatrix ()
| calculate constant stiffness matrix
void | computeConstantMassMatrixParts ()
| calculate constant parts of the mass matrix
Protected Member Functions inherited from MBSimFlexibleBody::FlexibleBody2s13
void | BuildElement (const fmatvec::Vec &s)
| detect involved element for contact description More...
double | computeThickness (const double &r_)

## Protected Attributes

fmatvec::Mat * | N_compl
| matrix for the computation of the mass-matrix (assembled part of the element matrix)
fmatvec::SqrMat * | N_ij [3][3]
| matrix for the computation of the mass-matrix (assembled part of the element matrix)
fmatvec::RowVec * | NR_ij [3][3]
| matrix for the computation of the mass-matrix (assembled part of the element matrix)
fmatvec::Vec * | R_compl
| matrix for the computation of the mass-matrix (assembled part of the element matrix)
fmatvec::SymMat * | R_ij
| matrix for the computation of the mass-matrix (assembled part of the element matrix)
Protected Attributes inherited from MBSimFlexibleBody::FlexibleBody2s13
int | Elements
| total number of elements
int | NodeDofs
| elastic dof per node
int | RefDofs
| dof of moving frame of reference
double | E
| Young's modulus.
double | nu
| Poisson ratio.
double | rho
| density
fmatvec::Vec | d
| parameterization of thickness over radius function: d(0) + d(1)*r + d(2)*r*r More...
double | Ri
| inner and outer radius of disk
double | Ra
double | dr
| radial and azimuthal length of an FE
double | dj
double | m0
| mass of the attached shaft
fmatvec::SymMat3 | J0
| inertia of the attached shaft in local coordinates
int | degV
| degree of surface interpolation in radial and azimuthal direction More...
int | degU
int | drawDegree
| number of points drawn between nodes
std::vector< fmatvec::Vec > | ElementalNodes
| vector of boundary data of the FE (r1,j1,r2,j2)
int | currentElement
| number of element currently involved in contact calculations
fmatvec::SymMat | MConst
| constant part of the mass matrix
fmatvec::SymMat | K
| stiffness matrix
int | nr
| number of elements in radial and azimuthal direction, number of FE nodes
int | nj
int | Nodes
fmatvec::Mat | NodeCoordinates
| matrix mapping nodes and coordinates (size number of nodes x number of node coordinates) More...
fmatvec::Matrix< fmatvec::General, fmatvec::Ref, fmatvec::Ref, int > | ElementNodeList
| matrix mapping elements and nodes (size number of elements x number of nodes per elements) More...
int | Dofs
| total dof of disk with reference movement and elastic deformation but without including bearing
LockType | LType
| Dirichlet boundary condition concerning reference movement. More...
fmatvec::RangeV | ILocked
| index of condensated dofs
fmatvec::Vec | qext
| position and velocity with respect to Dofs
fmatvec::Vec | uext
fmatvec::SqrMat3 | A
| transformation matrix of coordinates of the moving frame of reference into the reference frame
fmatvec::SqrMat3 | G
| transformation matrix of the time derivates of the angles into tho angular velocity in reference coordinates
fmatvec::Mat | Jext
NurbsDisk2s * | contour
| contour for contact description
bool | updExt
bool | updAG
Protected Attributes inherited from MBSimFlexibleBody::FlexibleBodyContinuum< fmatvec::Vec2 >
std::vector< fmatvec::Vec2 > | userContourNodes
| grid for contact point detection
fmatvec::Vec2 | nodeOffset
| offset of the ROTNODE from the TRANSNODE
Protected Attributes inherited from MBSimFlexibleBody::FlexibleBody
std::vector< DiscretizationInterface * > | discretization
| stl-vector of discretizations/finite elements
std::vector< fmatvec::Vec > | qElement
| stl-vector of finite element wise positions
std::vector< fmatvec::Vec > | uElement
| stl-vector of finite element wise velocities
double | d_massproportional
| damping factor for mass proportion, see BodyFlexible::setMassProportionalDamping()
bool | updEle
| vector of contour parameters each describing a frame More...
Protected Attributes inherited from MBSimFlexibleBody::NodeBasedBody
std::vector< fmatvec::Vec3 > | WrOP
std::vector< fmatvec::Vec3 > | WvP
std::vector< fmatvec::Vec3 > | Wom
std::vector< fmatvec::Vec3 > | WaP
std::vector< fmatvec::Vec3 > | Wpsi
std::vector< fmatvec::Vec3 > | WjP
std::vector< fmatvec::Vec3 > | WjR
std::vector< fmatvec::Vec3 > | disp
std::vector< fmatvec::SqrMat3 > | AWK
std::vector< fmatvec::Mat3xV > | WJP [2]
std::vector< fmatvec::Mat3xV > | WJR [2]
std::vector< bool > | updNodalPos
std::vector< bool > | updNodalVel
std::vector< bool > | updNodalAcc
std::vector< bool > | updNodalGA
std::vector< bool > | updNodalStress
std::vector< bool > | updNodalJac [2]
std::vector< fmatvec::Vector< fmatvec::Fixed< 6 >, double > > | sigma
int | nn {0}
std::vector< int > | nodeMap
std::vector< int > | nodeNumbers
Protected Attributes inherited from MBSim::Body
std::vector< Frame * > | frame
Frame * | R
fmatvec::Mat3xV | PJT [2]
Protected Attributes inherited from MBSim::Object
int | qSize
int | uSize [2]
int | hSize [2]
int | qInd
fmatvec::Vec | q
fmatvec::Vec | q0
fmatvec::Vec | qd
fmatvec::Vec | h [2]
fmatvec::Mat | dhdq
fmatvec::Mat | T
fmatvec::SymMat | M
fmatvec::SymMat | LLM
Protected Attributes inherited from MBSim::Element
std::string | name
std::string | path
MBXMLUtils::DOMEvalException | domEvalError
DynamicSystemSolver * | ds
H5::VectorSerie< double > * | plotVectorSerie
std::vector< double > | plotVector
std::vector< std::string > | plotColumns
H5::GroupBase * | plotGroup
std::vector< Element * > | dependency
PlotFeatureMap | plotFeature

## Additional Inherited Members

Public Types inherited from MBSimFlexibleBody::FlexibleBody2s13
enum | LockType { innerring, outerring }
| condensation setting for clamping to rigid body motion
Public Types inherited from MBSim::Element
enum | InitStage
Public Attributes inherited from MBSim::Element
| resolveStringRef
| preInit
| plotting
| unknownStage

## Detailed Description

plate according to Reissner-Mindlin with moving frame of reference and small tilting assumption

Author
  Kilian Grundl
  Thorsten Schindler

Date
  2009-12-23 initial commit (Schindler / Grundl)
  2010-04-21 parent class (Schindler / Grundl)
  2010-08-19 check (Schindler / Grundl)

Todo:
  gravity TODO

## Constructor & Destructor Documentation

## ◆ FlexibleBody2s13MFRMindlin()

MBSimFlexibleBody::FlexibleBody2s13MFRMindlin::FlexibleBody2s13MFRMindlin | ( | const std::string & | name | ) |

constructor

Parameters

  name | of body

## Member Function Documentation

## ◆ GlobalMatrixContribution() [1/2]

void MBSimFlexibleBody::FlexibleBody2s13MFRMindlin::GlobalMatrixContribution | ( | int | CurrentElement,
|  | const fmatvec::Mat & | locMat,
|  | fmatvec::Mat & | gloMat
| ) |  |

override virtual

insert 'local' information in global matrices

Parameters

  CurrentElement | number of current finite element
  locMat | local matrix
  gloMat | global matrix

Implements MBSimFlexibleBody::FlexibleBody.

## ◆ GlobalMatrixContribution() [2/2]

void MBSimFlexibleBody::FlexibleBody2s13MFRMindlin::GlobalMatrixContribution | ( | int | CurrentElement,
|  | const fmatvec::SymMat & | locMat,
|  | fmatvec::SymMat & | gloMat
| ) |  |

override virtual

insert 'local' information in global matrices

Parameters

  CurrentElement | number of current finite element
  locMat | local matrix
  gloMat | global matrix

Implements MBSimFlexibleBody::FlexibleBody.

## ◆ GlobalVectorContribution()

void MBSimFlexibleBody::FlexibleBody2s13MFRMindlin::GlobalVectorContribution | ( | int | CurrentElement,
|  | const fmatvec::Vec & | locVec,
|  | fmatvec::Vec & | gloVec
| ) |  |

override virtual

insert 'local' information in global vectors

Parameters

  number | of finite element
  local | vector
  global | vector

Implements MBSimFlexibleBody::FlexibleBody.

## ◆ transformCW()

Vec MBSimFlexibleBody::FlexibleBody2s13MFRMindlin::transformCW | ( | const fmatvec::Vec & | WrPoint | ) |

override virtual

transform Cartesian to cylinder system

Parameters

  Cartesian | vector in world system of plate

Returns
  cylindrical coordinates

Implements MBSimFlexibleBody::FlexibleBody2s13.

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

- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/2s_13_mfr_mindlin.h
- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/2s_13_mfr_mindlin.cc