model for planar beams with large deflection using Redundant Coordinate Method (RCM)
More...
|
| | FlexibleBody1s21RCM (const std::string &name, bool openStructure) |
| | constructor: More...
|
| |
| void | BuildElements () override |
| | references finite element coordinates to assembled coordinates More...
|
| |
| void | GlobalVectorContribution (int n, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec) override |
| | insert 'local' information in global vectors More...
|
| |
| void | GlobalMatrixContribution (int n, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat) override |
| | insert 'local' information in global matrices More...
|
| |
| void | GlobalMatrixContribution (int n, const fmatvec::SymMat &locMat, fmatvec::SymMat &gloMat) override |
| | insert 'local' information in global matrices More...
|
| |
| void | exportPositionVelocity (const std::string &filenamePos, const std::string &filenameVel=std::string(), const int °=3, const bool &writePsFile=false) override |
| | 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...
|
| |
| void | importPositionVelocity (const std::string &filenamePos, const std::string &filenameVel=std::string()) override |
| | 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 | updatePositions (Frame1s *frame) override |
| |
| void | updateVelocities (Frame1s *frame) override |
| |
| void | updateAccelerations (Frame1s *frame) override |
| |
| void | updateJacobians (Frame1s *frame, int j=0) override |
| |
| void | updateGyroscopicAccelerations (Frame1s *frame) override |
| |
|
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) |
| |
|
void | init (InitStage stage, const MBSim::InitConfigSet &config) override |
| |
| void | plot () override |
| |
|
void | setNumberElements (int n) |
| | sets size of positions and velocities
|
| |
|
int | getNumberElements () |
| |
|
double | getLength () |
| |
|
void | setEModul (double E_) |
| |
|
void | setCrossSectionalArea (double A_) |
| |
|
void | setMomentInertia (double I_) |
| |
|
void | setDensity (double rho_) |
| |
|
void | setCurlRadius (double r) |
| |
|
void | setMaterialDamping (double d) |
| |
|
void | setLehrDamping (double d) |
| |
|
void | setElementPlotList (const fmatvec::VecInt &plotElements_) |
| |
| fmatvec::Vec3 | getPositions (double x) |
| | compute positions and angle at Lagrangian coordinate in local FE coordinates More...
|
| |
| fmatvec::Vec3 | getVelocities (double x) |
| | compute velocities and differentiated angles at Lagrangian coordinate in local FE coordinates More...
|
| |
|
double | computePhysicalStrain (double sGlobal) |
| | computes the phyiscal strain (compare Zander p.71) of the element, defined by the global position
|
| |
| void | initRelaxed (double alpha) |
| | initialise beam state concerning a straight cantilever setting or a circle shaped ring More...
|
| |
|
void | initInfo () |
| | initialise beam only for giving information with respect to state, number elements, length, (not for simulation)
|
| |
Public Member Functions inherited from MBSimFlexibleBody::FlexibleBody1s |
| | FlexibleBody1s (const std::string &name, bool openStructure) |
| | constructor: More...
|
| |
|
void | init (InitStage stage, const MBSim::InitConfigSet &config) override |
| |
| void | plot () override |
| |
|
void | setLength (double L_) |
| |
|
double | getLength () const |
| |
|
bool | getOpenStructure () const |
| |
|
void | addFrame (Frame1s *frame) |
| |
|
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 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 double nodeOffset_) |
| |
|
double | 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 () |
| |
| virtual double | computePotentialEnergy () |
| |
| void | setFrameOfReference (MBSim::Frame *frame) override |
| |
|
virtual void | setq0 (const fmatvec::Vec &q0_) |
| |
|
virtual void | setu0 (const fmatvec::Vec &u0_) |
| |
| virtual void | BuildElements ()=0 |
| | references finite element coordinates to assembled coordinates More...
|
| |
|
const fmatvec::Vec & | getqElement (int i) |
| |
|
const fmatvec::Vec & | getuElement (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_) |
| | Jacobians and gyroscopes for contour or external frame are 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 °=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 | updatePositions (int i) |
| |
|
virtual void | updateVelocities (int i) |
| |
|
virtual void | updateAccelerations (int i) |
| |
|
virtual void | updateJacobians (int i, int j=0) |
| |
|
virtual void | updateGyroscopicAccelerations (int i) |
| |
|
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 | plot () override |
| |
| 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 |
| |
|
virtual void | setFrameOfReference (Frame *frame) |
| |
|
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) |
| |
|
virtual void | addContour (Contour *contour) |
| |
|
| Object (const std::string &name) |
| |
| void | plot () override |
| |
|
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 | updateLLM () |
| |
| virtual void | setUpInverseKinetics () |
| |
| void | createPlotGroup () override |
| |
|
| Element (const std::string &name) |
| |
| virtual void | setDynamicSystemSolver (DynamicSystemSolver *sys) |
| |
| virtual void | plot () |
| |
| virtual void | plotAtSpecialEvent () |
| |
|
const std::string & | getName () const |
| |
|
void | setName (const std::string &str) |
| |
|
DynamicSystemSolver * | getDynamicSystemSolver () |
| |
| virtual void | init (InitStage stage, const InitConfigSet &config=InitConfigSet()) |
| |
| virtual void | createPlotGroup () |
| |
|
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, PlotAttributeStorage storage=PlotAttributeStorage::attribute) |
| |
|
T * | getByPath (const std::string &path, bool initialCaller=true) const |
| |
|
std::string | getPath (const Element *relTo=nullptr, std::string sep="/") const |
| |
| virtual Element * | getChildByContainerAndName (const std::string &container, const std::string &name) const |
| |
|
std::vector< Element * > | getDependencies () const |
| |
|
int | computeLevel () |
| |
|
|
int | Elements |
| | number of finite elements used for discretisation
|
| |
|
double | l0 |
| | length of one finite element
|
| |
|
double | E |
| | modulus of linear elasticity
|
| |
|
double | A |
| | cross-section area
|
| |
|
double | I |
| | moment of inertia of cross-section
|
| |
|
double | rho |
| | material density
|
| |
|
double | rc |
| | curl radius
|
| |
|
double | dm |
| | coefficient of material damping
|
| |
|
double | dl |
| | coefficient of Lehr-damping
|
| |
|
fmatvec::VecInt | plotElements |
| | variables to plot in addition to state
|
| |
|
bool | initialized |
| | flag for testing if beam is initialised
|
| |
Protected Attributes inherited from MBSimFlexibleBody::FlexibleBody1s |
|
double | L |
| | length of beam
|
| |
|
bool | openStructure |
| | flag for open (cantilever beam) or closed (rings) structures
|
| |
|
Frame1s | P |
| |
Protected Attributes inherited from MBSimFlexibleBody::FlexibleBodyContinuum< double > |
|
std::vector< double > | userContourNodes |
| | grid for contact point detection
|
| |
|
double | 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] |
| |
|
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 |
| |
|
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 |
| |
model for planar beams with large deflection using Redundant Coordinate Method (RCM)
- Author
- Roland Zander
- Date
- 2009-03-23 initial kernel_dev commit (Thorsten Schindler)
-
2009-03-26 cosmetics on doxygen (*! **) and alignements; some renames (Roland Zander)
-
2009-04-05 minor change: parent class now is FlexibleBodyContinuum (Schindler / Zander)
-
2009-04-20 binormals of contours can be time variant (Thorsten Schindler)
-
2009-05-08 visualisation (Thorsten Schindler)
-
2009-07-16 splitted link / object right hand side (Thorsten Schindler)
-
2009-07-23 implicit integration (Thorsten Schindler)
-
2010-03-07 element polt list for additional element data (Roland Zander)
-
2010-04-07 added initInfo() function same as in FlexibleBody1s33RCM (Thomas Cebulla)
- Todo:
gyroscopic accelerations TODO
inverse kinetics TODO
read:
Zander, R.; Ulbrich, H.: Reference-free mixed FE-MBS approach for beam structures with constraints, Journal of Nonlinear Dynamics, Kluwer Academic Publishers, 2005
Zander, R.; Ulbrich, H.: Impacts on beam structures: Interaction of wave propagationand global dynamics, IUTAM Symposium on Multiscale Problems in Multibody System Contacts Stuttgart, Germany, 2006
Zander, R.; Ulbrich, H.: Free plain motion of flexible beams in MBS - A comparison of models, III European Conference on Computational Mechanics Lissbon, Portugal, 2006