|
| FlexibleBody1s33Cosserat (const std::string &name, bool openStructure) |
| constructor More...
|
|
virtual | ~FlexibleBody1s33Cosserat () |
| destructor
|
|
virtual void | BuildElements () |
| references finite element coordinates to assembled coordinates
|
|
virtual void | GlobalVectorContribution (int n, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec) |
| insert 'local' information in global vectors More...
|
|
virtual void | GlobalMatrixContribution (int n, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat) |
| insert 'local' information in global matrices More...
|
|
virtual void | GlobalMatrixContribution (int n, const fmatvec::SymMat &locMat, fmatvec::SymMat &gloMat) |
| insert 'local' information in global matrices More...
|
|
virtual void | exportPositionVelocity (const std::string &filenamePos, const std::string &filenameVel=std::string(), const int °=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...
|
|
virtual void | updatePositions (Frame1s *frame) |
|
virtual void | updateVelocities (Frame1s *frame) |
|
virtual void | updateAccelerations (Frame1s *frame) |
|
virtual void | updateJacobians (Frame1s *frame, int j=0) |
|
virtual void | updateGyroscopicAccelerations (Frame1s *frame) |
|
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 fmatvec::Vec3 | getAngles (int i) |
|
virtual fmatvec::Vec3 | getDerivativeOfAngles (int i) |
|
virtual void | init (InitStage stage) |
|
virtual double | computePotentialEnergy () |
|
virtual void | updateLLM () |
|
virtual std::string | getType () const |
|
void | setNumberElements (int n) |
|
void | setMomentsInertia (double I1_, double I2_, double I0_) |
|
void | setCurlRadius (double R1_, double R2_) |
|
void | setMaterialDamping (double cEps0D_, double cEps1D_, double cEps2D_) |
|
virtual int | getNumberOfElementDOF () const |
|
int | getNumberElements () const |
|
int | getNumberDOFs () const |
|
fmatvec::Vector
< fmatvec::Fixed< 6 >, double > | getPositions (double x) |
| compute positions and angle at Lagrangian coordinate in local FE coordinates More...
|
|
fmatvec::Vector
< fmatvec::Fixed< 6 >, double > | getVelocities (double x) |
| compute velocities and differentiated angles at Lagrangian coordinate in local FE coordinates More...
|
|
fmatvec::Vec3 | computeAngles (double sGlobal, const fmatvec::Vec &vec) |
| compute angles at Lagrangian coordinate in local FE coordinates More...
|
|
void | initInfo () |
| initialise beam only for giving information with respect to state, number elements, length, (not for simulation)
|
|
void | BuildElementTranslation (const double &sGlobal, double &sLocal, int ¤tElementTranslation) |
| detect current finite element (t void setOpenMBVSpineExtrusion(OpenMBV::SpineExtrusion* spineExtrusion) { openMBVSpineExtrusion = spineExtrusion; } OpenMBV::Body* getOpenMBVSpineExtrusion() { return openMBVSpineExtrusion; } More...
|
|
Public Member Functions inherited from MBSimFlexibleBody::FlexibleBody1sCosserat |
| FlexibleBody1sCosserat (const std::string &name, bool openStructure) |
| constructor More...
|
|
const fmatvec::Vec & | evalqRotationElement (int i) |
|
const fmatvec::Vec & | evaluRotationElement (int i) |
|
virtual void | updateh (int i=0) |
|
void | setEGModuls (double E_, double G_) |
|
void | setDensity (double rho_) |
|
void | setCrossSectionalArea (double A_) |
|
virtual void | setMomentsInertia (double I1_) |
|
virtual void | setCurlRadius (double R1_) |
|
virtual void | setMaterialDamping (double cEps0D_, double cEps1D_) |
|
virtual Contour1sNeutralCosserat * | createNeutralPhase (const std::string &contourName="Neutral") |
| automatically creates its neutral contour
|
|
virtual fmatvec::Mat3xV | transformJacobian (fmatvec::Mat3xV J) |
| interface function to transform the Jacobian if the generalized coordinates have been changed More...
|
|
virtual int | getqSizeFull () const |
|
Public Member Functions inherited from MBSimFlexibleBody::FlexibleBody1s |
| FlexibleBody1s (const std::string &name, bool openStructure) |
| constructor: More...
|
|
virtual void | plot () |
|
void | setLength (double L_) |
|
double | getLength () const |
|
bool | getOpenStructure () const |
|
void | addFrame (Frame1s *frame) |
|
virtual fmatvec::Vec3 | getPosition (double s) |
|
virtual fmatvec::SqrMat3 | getOrientation (double s) |
|
virtual fmatvec::Vec3 | getAngles (double s) |
|
void | setOpenMBVSpineExtrusion (const std::shared_ptr< OpenMBV::SpineExtrusion > &body) |
|
Public Member Functions inherited from MBSimFlexibleBody::FlexibleBodyContinuum< double > |
| FlexibleBodyContinuum (const std::string &name) |
| constructor More...
|
|
void | setContourNodes (const std::vector< double > nodes) |
|
void | setNodeOffset (const doublenodeOffset_) |
|
double | 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 | updateM () |
|
virtual void | updatedhdz () |
|
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_) |
|
const fmatvec::Vec & | getqElement (int i) |
|
const fmatvec::Vec & | getuElement (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) |
|
void | resetUpToDate () |
|
Public Member Functions inherited from MBSim::Body |
| Body (const std::string &name) |
|
virtual void | closePlot () |
|
virtual void | setDynamicSystemSolver (DynamicSystemSolver *sys) |
|
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 |
|
virtual Element * | getChildByContainerAndName (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 () |
|
Atom & | operator= (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) |
|
finite element for spatial beam using Cosserat model
- Author
- Thorsten Schindler
-
Christian Käsbauer
-
Thomas Cebulla
- Date
- 2011-09-10 initial commit (Thorsten Schindler) 2011-10-08 basics derived and included (Thorsten Schindler)
-
2011-10-12 rotation grid added (Thorsten Schindler)
-
2012-03-15 updateKinematicsForFrame and contact Jacobians (Cebulla / Schindler)
-
2012-05-10 added initInfo()-function and Contour1sFlexible for perlchain example (Thomas Cebulla)
-
2012-05-25 added export and import position velocity function (Thomas Cebulla)
- Todo:
compute boundary conditions TODO
check open structure in contact kinematics TODO
Cosserat model based on H. Lang, J. Linn, M. Arnold: Multi-body dynamics simulation of geometrically exact Cosserat rods but with
- Kirchhoff assumption (-> less stiff)
- Cardan parametrisation (-> less problems with condition and drift for quaternion dae system)
- piecewise constant Darboux vector with evaluation according to I. Romero: The interpolation of rotations and its application to finite element models of geometrically exact beams