|
| FlexibleBody1s21Cosserat (const std::string &name, bool openStructure) |
| constructor More...
|
|
virtual | ~FlexibleBody1s21Cosserat () |
| destructor
|
|
virtual void | BuildElements () |
| references finite element coordinates to assembled coordinates
|
|
const fmatvec::Vec & | evalqFull () |
|
const fmatvec::Vec & | evaluFull () |
|
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 void | init (InitStage stage) |
|
virtual double | computePotentialEnergy () |
|
virtual void | updateM () |
|
virtual void | updateLLM () |
|
virtual void | updateh (int i=0) |
|
virtual std::string | getType () const |
|
void | setNumberElements (int n) |
|
void | setMomentsInertia (double I1_) |
|
void | setCurlRadius (double R1_) |
|
void | setMaterialDamping (double cEps0D_, double cEps1D_) |
|
virtual fmatvec::Mat3xV | transformJacobian (fmatvec::Mat3xV J) |
| interface function to transform the Jacobian if the generalized coordinates have been changed More...
|
|
virtual int | getNumberOfElementDOF () const |
|
int | getNumberElements () const |
|
double | getLength () const |
|
virtual int | getqSizeFull () const |
|
bool | isOpenStructure () const |
|
void | enablePOD (const std::string &h5Path, int reduceMode=0, int POMSize=0) |
|
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 (translation) 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) |
|
void | setEGModuls (double E_, double G_) |
|
void | setDensity (double rho_) |
|
void | setCrossSectionalArea (double A_) |
|
virtual void | setMomentsInertia (double I1_, double I2_, double I0_) |
|
virtual void | setCurlRadius (double R1_, double R2_) |
|
virtual void | setMaterialDamping (double cEps0D_, double cEps1D_, double cEps2D_) |
|
virtual Contour1sNeutralCosserat * | createNeutralPhase (const std::string &contourName="Neutral") |
| automatically creates its neutral contour
|
|
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 | 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) |
|
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) |
|
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) |
|
flexible body for planar beam using Cosserat model
- Author
- Thomas Cebulla
-
Thorsten Schindler
-
Robert von Zitzewitz
- Date
- 2012-12-14 initial commit (Thomas Cebulla)
-
2013-02-04 completed 2D Cosserat beam for closed structure (Robert von Zitzewitz)
-
2013-02-04 completed POD model reduction for TIMESTEPPING integrator (Robert von Zitzewitz)
- Todo:
compute boundary conditions TODO
open structure 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