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

flexible body model based on floating frame reference using the system information external linear FEM code More...

#include <flexible_body_linear_external_ffr.h>

Inheritance diagram for MBSimFlexibleBody::FlexibleBodyLinearExternalFFR:
MBSimFlexibleBody::FlexibleBodyContinuum< fmatvec::Vec > MBSimFlexibleBody::FlexibleBody MBSim::Body MBSim::Object MBSim::Element fmatvec::Atom

Public Member Functions

 FlexibleBodyLinearExternalFFR (const std::string &name, const bool &DEBUG_)
 constructor More...
 
virtual ~FlexibleBodyLinearExternalFFR ()
 destructor
 
virtual int getNumberElements () const
 
virtual double getLength () const
 
virtual bool isOpenStructure () const
 
virtual void updateM ()
 
virtual void BuildElements ()
 references finite element coordinates to assembled coordinates
 
virtual void GlobalVectorContribution (int CurrentElement, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec)
 insert 'local' information in global vectors More...
 
virtual void GlobalMatrixContribution (int CurrentElement, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat)
 insert 'local' information in global matrices More...
 
virtual void GlobalMatrixContribution (int CurrentElement, const fmatvec::SymMat &locMat, fmatvec::SymMat &gloMat)
 insert 'local' information in global matrices More...
 
virtual void updateh (int k=0)
 
virtual void init (InitStage stage)
 
virtual void calcqSize ()
 
virtual void calcuSize (int j)
 
virtual std::string getType () const
 
void setNumberOfModes (int nf_)
 
int getNumberModes () const
 
MBSim::FramegetFloatingFrameOfReference ()
 
const fmatvec::Vec3 getModeShapeVector (int node, int column) const
 
void readFEMData (std::string inFilePath, const bool millimeterUnits, bool output=false)
 read u0, mij, mode shape matrix and stiffness matrix form the input file
 
void enableFramePlot (double size=1e-3, fmatvec::VecInt numbers=fmatvec::VecInt(0))
 
void resetUpToDate ()
 
const fmatvec::SqrMat3 & evalA ()
 
const fmatvec::SqrMat3 & evalG_bar ()
 
const fmatvec::SqrMat3 & evalG_bar_Dot ()
 
const fmatvec::VecevalQv ()
 
void updatePositions (MBSim::Frame *frame)
 
void updateVelocities (MBSim::Frame *frame)
 
void updateAccelerations (MBSim::Frame *frame)
 
void updateJacobians (MBSim::Frame *frame, int j=0)
 
void updateGyroscopicAccelerations (MBSim::Frame *frame)
 
void updatePositions (NodeFrame *frame)
 
void updateVelocities (NodeFrame *frame)
 
void updateAccelerations (NodeFrame *frame)
 
void updateJacobians (NodeFrame *frame, int j=0)
 
void updateGyroscopicAccelerations (NodeFrame *frame)
 
fmatvec::Vec3 evalLocalPosition (int i)
 
- Public Member Functions inherited from MBSimFlexibleBody::FlexibleBodyContinuum< fmatvec::Vec >
 FlexibleBodyContinuum (const std::string &name)
 constructor More...
 
void setContourNodes (const std::vector< fmatvec::Vec > nodes)
 
void setNodeOffset (const fmatvec::VecnodeOffset_)
 
fmatvec::Vec 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 updatedhdz ()
 
virtual void plot ()
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 
virtual double computeKineticEnergy ()
 
virtual double computePotentialEnergy ()
 
virtual void setFrameOfReference (MBSim::Frame *frame)
 
virtual void setq0 (fmatvec::Vec q0_)
 
virtual void setu0 (fmatvec::Vec u0_)
 
const fmatvec::VecgetqElement (int i)
 
const fmatvec::VecgetuElement (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 (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 void updateLLM ()
 
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 initM ()
 initialize the mass matrix
 
void initQv ()
 initialize the quadratic velocity vector
 
void updateQv ()
 update the quadratic velocity vector
 
void computeShapeIntegrals ()
 compute the constant shape integrals of the whole body
 
void updateAGbarGbardot ()
 update A, G_bar, and G_bar_Dot
 
- 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 nNodes
 total number of nodes
 
MBSim::FrameFFR
 Floating Frame of Reference.
 
fmatvec::Vec3 I_1
 matrix for the computation of the mass-matrix (assembled part of the element matrix)
 
fmatvec::SymMat3 I_kl
 matrix
 
fmatvec::Mat S_bar
 matrix for the computation of the mass-matrix (assembled part of the element matrix)
 
fmatvec::SqrMat S_kl_bar [3][3]
 matrix for the computation of the mass-matrix (assembled part of the element matrix)
 
fmatvec::RowVec I_kl_bar [3][3]
 matrix for the computation of the mass-matrix (assembled part of the element matrix)
 
fmatvec::SymMat3 I_ThetaTheta_bar
 inertia tensor
 
fmatvec::Mat I_ThetaF_bar
 I_ThetaF 3*nf.
 
fmatvec::SymMat K
 stiffness matrix
 
fmatvec::SymMat KFull
 full stiffness matrix
 
fmatvec::SqrMat3 G_bar
 transformation matrix of the time derivates of the angles into tho angular velocity in reference coordinates
 
fmatvec::SqrMat3 G_bar_Dot
 transformation matrix of the time derivates of the angles into tho angular velocity in reference coordinates
 
fmatvec::SqrMat3 A
 transformation matrix of coordinates of the moving frame of reference into the reference frame
 
fmatvec::SymMat M_FF
 matrix for the computation of the mass-matrix (assembled part of the element matrix)
 
fmatvec::Vec Qv
 quadratic velocity vector
 
fmatvec::Vec mij
 lumped mass for each node
 
fmatvec::Mat phiFull
 matrix of all modes
 
fmatvec::Mat phi
 matrix of modes used
 
std::vector< fmatvec::Vec3 > u0
 initial position of each node
 
int nf
 number of mode shapes used to describe the deformation
 
bool openStructure
 open or closed beam structure
 
bool DEBUG
 debug flag
 
bool updAG
 
bool updQv
 
- Protected Attributes inherited from MBSimFlexibleBody::FlexibleBodyContinuum< fmatvec::Vec >
std::vector< fmatvec::VecuserContourNodes
 grid for contact point detection
 
fmatvec::Vec 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

- Public Types inherited from fmatvec::Atom
enum  MsgType
 
- 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

flexible body model based on floating frame reference using the system information external linear FEM code

Author
Kilian Grundl
Zhan Wang
Date

Constructor & Destructor Documentation

MBSimFlexibleBody::FlexibleBodyLinearExternalFFR::FlexibleBodyLinearExternalFFR ( const std::string &  name,
const bool &  DEBUG_ 
)

constructor

Parameters
nameof body

Member Function Documentation

void MBSimFlexibleBody::FlexibleBodyLinearExternalFFR::GlobalMatrixContribution ( int  CurrentElement,
const fmatvec::Mat locMat,
fmatvec::Mat gloMat 
)
virtual

insert 'local' information in global matrices

Parameters
CurrentElementnumber of current finite element
locMatlocal matrix
gloMatglobal matrix

Implements MBSimFlexibleBody::FlexibleBody.

void MBSimFlexibleBody::FlexibleBodyLinearExternalFFR::GlobalMatrixContribution ( int  CurrentElement,
const fmatvec::SymMat locMat,
fmatvec::SymMat gloMat 
)
virtual

insert 'local' information in global matrices

Parameters
CurrentElementnumber of current finite element
locMatlocal matrix
gloMatglobal matrix

Implements MBSimFlexibleBody::FlexibleBody.

void MBSimFlexibleBody::FlexibleBodyLinearExternalFFR::GlobalVectorContribution ( int  CurrentElement,
const fmatvec::Vec locVec,
fmatvec::Vec gloVec 
)
virtual

insert 'local' information in global vectors

Parameters
numberof finite element
localvector
globalvector

Implements MBSimFlexibleBody::FlexibleBody.


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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML