All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MBSimFlexibleBody::FlexibleBody2s13 Class Referenceabstract

plate according to Reissner-Mindlin with moving frame of reference More...

#include <flexible_body_2s_13.h>

Inheritance diagram for MBSimFlexibleBody::FlexibleBody2s13:
MBSimFlexibleBody::FlexibleBody2s MBSimFlexibleBody::FlexibleBodyContinuum< fmatvec::Vec2 > MBSimFlexibleBody::FlexibleBody MBSim::Body MBSim::Object MBSim::Element fmatvec::Atom MBSimFlexibleBody::FlexibleBody2s13Disk MBSimFlexibleBody::FlexibleBody2s13MFRMindlin

Public Types

enum  LockType { innerring, outerring }
 condensation setting for clamping to rigid body motion
 
- Public Types inherited from fmatvec::Atom
enum  MsgType
 

Public Member Functions

 FlexibleBody2s13 (const std::string &name, const int &DEBUGLEVEL_=0)
 constructor More...
 
virtual ~FlexibleBody2s13 ()
 destructor
 
virtual void updateh (int j=0)
 
virtual void updatedhdz ()
 
virtual void updateM ()
 
virtual void updateLLM ()
 
virtual void plot ()
 
virtual std::string getType () const
 
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 ()
 
virtual fmatvec::Vec transformCW (const fmatvec::Vec &WrPoint)=0
 transform Cartesian to cylinder system More...
 
void resetUpToDate ()
 
void updateExt ()
 
const fmatvec::VecevalqExt ()
 
const fmatvec::VecevaluExt ()
 
virtual fmatvec::Vec3 evalPosition ()
 
virtual fmatvec::SqrMat3 evalOrientation ()
 
- Public Member Functions inherited from MBSimFlexibleBody::FlexibleBody2s
 FlexibleBody2s (const std::string &name)
 constructor: More...
 
virtual void init (InitStage stage)
 
void addFrame (Frame2s *frame)
 
virtual void updatePositions (Frame2s *frame)
 
virtual void updateVelocities (Frame2s *frame)
 
virtual void updateAccelerations (Frame2s *frame)
 
virtual void updateJacobians (Frame2s *frame, int j=0)
 
virtual void updateGyroscopicAccelerations (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::Vec2nodeOffset_)
 
fmatvec::Vec2 getNodeOffset () const
 
- Public Member Functions inherited from MBSimFlexibleBody::FlexibleBody
 FlexibleBody (const std::string &name)
 constructor More...
 
virtual ~FlexibleBody ()
 destructor
 
virtual void updatedq ()
 
virtual void updateqd ()
 
virtual void updatePositions (NodeFrame *frame)
 
virtual void updateVelocities (NodeFrame *frame)
 
virtual void updateAccelerations (NodeFrame *frame)
 
virtual void updateJacobians (NodeFrame *frame, int j=0)
 
virtual void updateGyroscopicAccelerations (NodeFrame *frame)
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 
virtual double computeKineticEnergy ()
 
virtual void setFrameOfReference (MBSim::Frame *frame)
 
virtual void setq0 (fmatvec::Vec q0_)
 
virtual void setu0 (fmatvec::Vec u0_)
 
virtual void BuildElements ()=0
 references finite element coordinates to assembled coordinates
 
const fmatvec::VecgetqElement (int i)
 
const fmatvec::VecgetuElement (int i)
 
virtual fmatvec::Vec3 getAngles (int i)
 
virtual fmatvec::Vec3 getDerivativeOfAngles (int i)
 
virtual void GlobalVectorContribution (int CurrentElement, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec)=0
 insert 'local' information in global vectors More...
 
virtual void GlobalMatrixContribution (int CurrentElement, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat)=0
 insert 'local' information in global matrices More...
 
virtual void GlobalMatrixContribution (int CurrentElement, const fmatvec::SymMat &locMat, fmatvec::SymMat &gloMat)=0
 insert 'local' information in global matrices More...
 
void setMassProportionalDamping (const double d_)
 cartesian kinematic for contour or external frame (normal, tangent, binormal) is set by implementation class More...
 
void addFrame (NodeFrame *frame)
 
void addFrame (MBSim::ContourFrame *frame)
 
void addFrame (MBSim::FixedRelativeFrame *frame)
 
void addContour (MBSim::Contour *contour)
 
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 ()
 
- Public Member Functions inherited from MBSim::Body
 Body (const std::string &name)
 
virtual void closePlot ()
 
virtual void setDynamicSystemSolver (DynamicSystemSolver *sys)
 
virtual ContourgetContour (const std::string &name, bool check=true) const
 
virtual FramegetFrame (const std::string &name, bool check=true) const
 
virtual FramegetFrameOfReference ()
 
virtual const FramegetFrameOfReference () const
 
int frameIndex (const Frame *frame_) const
 
int contourIndex (const Contour *contour_) const
 
virtual ElementgetChildByContainerAndName (const std::string &container, const std::string &name) const
 
 Object (const std::string &name)
 
virtual void updateqRef (const fmatvec::Vec &qRef)
 
virtual void updateqdRef (const fmatvec::Vec &qdRef)
 
virtual void updatedqRef (const fmatvec::Vec &dqRef)
 
virtual void updateuRef (const fmatvec::Vec &uRef)
 
virtual void updateuallRef (const fmatvec::Vec &uallRef)
 
virtual void updateudRef (const fmatvec::Vec &udRef)
 
virtual void updateduRef (const fmatvec::Vec &duRef)
 
virtual void updateudallRef (const fmatvec::Vec &udallRef)
 
virtual void updatehRef (const fmatvec::Vec &hRef, int i=0)
 
virtual void updatedhdqRef (const fmatvec::Mat &dhdqRef, int i=0)
 
virtual void updatedhduRef (const fmatvec::SqrMat &dhduRef, int i=0)
 
virtual void updatedhdtRef (const fmatvec::Vec &dhdtRef, int i=0)
 
virtual void updaterRef (const fmatvec::Vec &ref, int i=0)
 
virtual void updaterdtRef (const fmatvec::Vec &ref)
 
virtual void updateTRef (const fmatvec::Mat &ref)
 
virtual void updateMRef (const fmatvec::SymMat &ref)
 
virtual void updateLLMRef (const fmatvec::SymMat &ref)
 
virtual void initz ()
 
virtual void writez (H5::GroupBase *group)
 
virtual void readz0 (H5::GroupBase *group)
 
virtual double evalKineticEnergy ()
 
virtual double evalPotentialEnergy ()
 
virtual void setUpInverseKinetics ()
 
- Public Member Functions inherited from fmatvec::Atom
Atomoperator= (const Atom &)
 
void setMessageStreamActive (MsgType type, bool active)
 
void getMessageStream (MsgType type, std::shared_ptr< bool > &a, std::shared_ptr< std::ostream > &s)
 
void adoptMessageStreams (const Atom *src=NULL)
 
std::ostream & msg (MsgType type)
 
bool msgAct (MsgType type)
 

Protected Member Functions

void BuildElement (const fmatvec::Vec &s)
 detect involved element for contact description More...
 
virtual void initMatrices ()=0
 calculate the matrices for the first time
 
virtual void updateAG ()=0
 update the transformation matrices A and G
 
double computeThickness (const double &r_)
 
- Protected Member Functions inherited from MBSim::Body
virtual void addFrame (Frame *frame)
 
- Protected Member Functions inherited from fmatvec::Atom
 Atom (const Atom &src)
 

Protected Attributes

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::VecElementalNodes
 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
 
NurbsDisk2scontour
 contour for contact description
 
int DEBUGLEVEL
 
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::VecqElement
 stl-vector of finite element wise positions
 
std::vector< fmatvec::VecuElement
 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 MBSim::Body
std::vector< Frame * > frame
 
FrameR
 
fmatvec::Mat3xV PJT [2]
 
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
 

Additional Inherited Members

- Static Public Member Functions inherited from fmatvec::Atom
static void setCurrentMessageStream (MsgType type, const std::shared_ptr< bool > &a=std::make_shared< bool >(true), const std::shared_ptr< std::ostream > &s=std::make_shared< std::ostream >(std::cout.rdbuf()))
 
static std::ostream & msgStatic (MsgType type)
 
static bool msgActStatic (MsgType type)
 

Detailed Description

plate according to Reissner-Mindlin with moving frame of reference

Author
Kilian Grundl
Thorsten Schindler
Date
2010-04-23 initial commit (Schindler / Grundl)
2010-08-12 revision (Schindler)

The plate lies in the xy-plane of its reference frame. The z-vector is its "normal". Thus the radial and the azimuthal component give the x- and y- coordinates where the z-coordinate is defined by the thickness parameterization. (neglecting the flexible dofs)

Constructor & Destructor Documentation

MBSimFlexibleBody::FlexibleBody2s13::FlexibleBody2s13 ( const std::string &  name,
const int &  DEBUGLEVEL_ = 0 
)

constructor

Parameters
nameof body

Member Function Documentation

void MBSimFlexibleBody::FlexibleBody2s13::BuildElement ( const fmatvec::Vec s)
protected

detect involved element for contact description

Parameters
parametrisationvector (radial / azimuthal)
double MBSimFlexibleBody::FlexibleBody2s13::computePotentialEnergy ( )
inlinevirtual
Returns
potential energy

Reimplemented from MBSimFlexibleBody::FlexibleBody.

double MBSimFlexibleBody::FlexibleBody2s13::computeThickness ( const double &  r_)
protected
Returns
thickness of disk at radial coordinate
Parameters
radialcoordinate
void MBSimFlexibleBody::FlexibleBody2s13::setNumberElements ( int  nr_,
int  nj_ 
)

set number of elements in radial and azimuthal direction

Parameters
radialnumber of elements
azimuthalnumber of elements
virtual fmatvec::Vec MBSimFlexibleBody::FlexibleBody2s13::transformCW ( const fmatvec::Vec WrPoint)
pure virtual

transform Cartesian to cylinder system

Parameters
Cartesianvector in world system of plate
Returns
cylindrical coordinates

Implemented in MBSimFlexibleBody::FlexibleBody2s13MFRMindlin, and MBSimFlexibleBody::FlexibleBody2s13Disk.

Member Data Documentation

fmatvec::Vec MBSimFlexibleBody::FlexibleBody2s13::d
protected

parameterization of thickness over radius function: d(0) + d(1)*r + d(2)*r*r

Remarks
vector must have length 3
int MBSimFlexibleBody::FlexibleBody2s13::degV
protected

degree of surface interpolation in radial and azimuthal direction

both degrees have to be smaller than 8

fmatvec::Matrix<fmatvec::General,fmatvec::Ref,fmatvec::Ref,int> MBSimFlexibleBody::FlexibleBody2s13::ElementNodeList
protected

matrix mapping elements and nodes (size number of elements x number of nodes per elements)

ElementNodeList(Element,LocalNodeNumber) = globalNodeNumber;

LockType MBSimFlexibleBody::FlexibleBody2s13::LType
protected

Dirichlet boundary condition concerning reference movement.

possible settings: innering/outerring

fmatvec::Mat MBSimFlexibleBody::FlexibleBody2s13::NodeCoordinates
protected

matrix mapping nodes and coordinates (size number of nodes x number of node coordinates)

NodeCoordinates(GlobalNodeNumber,0) = radius (at the node) NodeCoordinates(GlobalNodeNumber,1) = angle (at the node)


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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML