class that implements an one dimensional nonlinear beam that uses a reference curve for the nonlinearity together with overlaid deformations. Also the Eulerian coordinates ("S" not "s") are used to project the movement of the nodes back to their original position...
More...
|
| FlexibleBody1SReferenceCurve (const std::string &name, ReferenceCurve *refCurve) |
|
virtual void | init (MBSim::Element::InitStage stage) |
|
virtual void | initInfo (fmatvec::Vec q0=fmatvec::Vec(0, fmatvec::NONINIT), fmatvec::Vec u0=fmatvec::Vec(0, fmatvec::NONINIT)) |
|
virtual void | BuildElements () |
| references finite element coordinates to assembled coordinates
|
|
virtual void | updateh (int k=0) |
|
virtual void | updateM () |
|
virtual void | updatedq () |
|
virtual void | updatedu () |
|
virtual void | updateud () |
|
virtual void | updateqd () |
|
virtual void | initz () |
|
virtual void | plot (double t, double dt=1.) |
|
virtual void | GlobalVectorContribution (int, const fmatvec::Vec &, fmatvec::Vec &) |
| insert 'local' information in global vectors More...
|
|
virtual void | GlobalMatrixContribution (int, const fmatvec::Mat3xV &, fmatvec::Mat3xV &) |
|
virtual void | GlobalMatrixContribution (int, const fmatvec::Mat &, fmatvec::Mat &) |
| insert 'local' information in global matrices More...
|
|
virtual void | GlobalMatrixContribution (int, const fmatvec::SymMat &, fmatvec::SymMat &) |
| insert 'local' information in global matrices More...
|
|
virtual void | setq0 (fmatvec::Vec q0_) |
|
virtual void | setu0 (fmatvec::Vec u0_) |
|
void | setLength (double length_) |
|
double | getlength () const |
|
void | setDensity (double rho_) |
|
double | getrho () const |
|
void | setCrossSectionalArea (double A_) |
|
double | getA () const |
|
void | setEModul (double E_) |
|
double | getE () const |
|
void | setNu (double nu_) |
|
double | getNu () const |
|
void | setIn (double In_) |
|
double | getIn () const |
|
void | setIb (double Ib_) |
|
double | getIb () const |
|
void | setIt (double It_) |
|
double | getIt () const |
|
void | setdPulley (double dPulley_) |
|
double | getdPulley () const |
|
void | setNumberElements (int elements_) |
|
void | setElementOrder (int elementOrder_) |
|
void | setNodeDofs (int nodeDofs_) |
|
void | setUseSpatialReferenceKinematics (bool switch_) |
|
void | setThetaDamping (double dTheta_) |
|
void | setLockedDofs (std::set< int > lockedDofs_) |
|
void | setLambdaqSwitches (const fmatvec::VecV &lambdaqSwitches_) |
|
void | setLambdauSwitches (const fmatvec::VecV &lambdauSwitches_) |
|
virtual void | setelongationActive (bool val) |
|
virtual void | setnormalBendingActive (bool val) |
|
virtual double | gets () |
|
Contour1sNeutralFlexibleBody1SReferenceCurve * | createNeutralPhase (const std::string &contourName) |
| create a neutral phase as a basis for overlaid contours
|
|
double | computePhysicalStrain (double xi) |
| compute the physical strain at the Eulerian coordinate xi
|
|
fmatvec::Vec | computeNeutralState (const fmatvec::Vec &q0) |
| compute the neutral state, i.e. h = 0
|
|
Public Member Functions inherited from MBSimFlexibleBody::FlexibleBodyContinuum< double > |
| FlexibleBodyContinuum (const std::string &name) |
| constructor More...
|
|
virtual std::string | getType () const |
|
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 | updatedhdz () |
|
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 | plot () |
|
virtual void | initializeUsingXML (xercesc::DOMElement *element) |
|
virtual void | init (InitStage stage) |
|
virtual double | computeKineticEnergy () |
|
virtual double | computePotentialEnergy () |
|
virtual void | setFrameOfReference (MBSim::Frame *frame) |
|
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) |
|
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 () |
|
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 | writez (H5::GroupBase *group) |
|
virtual void | readz0 (H5::GroupBase *group) |
|
virtual void | updateLLM () |
|
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) |
|
|
double | computeG () const |
| computes the shear modulus G
|
|
fmatvec::Vec3 | computer (double xi, int derXi=0, int derTheta=0) |
| compute the position and/or its derivative w.r.t. xi and/or theta
|
|
fmatvec::Vec3 | computedrdqk (double xi, int derXi, int qInd) |
| computes the derivative wrt the generalized positions
|
|
fmatvec::Vec3 | computev (double xi) |
| compute the velocity and/or its derivative w.r.t. xi and/or theta
|
|
fmatvec::Vec3 | computerRef (double xi, int derXi=0, int derTheta=0) |
| compute the position and its derivatives w.r.t. xi or theta at position xi and ratio Theta
|
|
fmatvec::SqrMat3 | computeARef (double xi, int derXi=0, int derTheta=0) |
| compute the local transformation Matrix A and its derivatives w.r.t. xi or theta at position xi and ratio Theta
|
|
fmatvec::Vec3 | computenRef (double xi, int derXi=0, int derTheta=0) |
| compute the normal vector at the given position
|
|
fmatvec::Vec3 | computeSElement (int globalDOF, double xi, int derXi) |
| compute the column of the elements S matrix
|
|
fmatvec::Vec3 | computeSqfElement (double xi, int derXi) |
| compute the deformation vector, i.e. S*qf, for the ring
|
|
fmatvec::Vec3 | computeSufElement (double xi, int derXi) |
| compute the deformation vector, i.e. S*uf, for the ring
|
|
fmatvec::Mat3xV | computeP (double xi, int derXi=0) |
| compute the P matrix
|
|
fmatvec::Mat3xV | computedPdqk (double xi, int qInd) |
| compute the P matrix derived wrt the generalized position
|
|
fmatvec::SymMatV | integratePTP () |
| computes the integral needed for the mass matrix ( P^T P)
|
|
fmatvec::SqrMatV | integratePTdPdxi () |
| computes the integral for the first part of the h vector coming from the kinetic energy ( P^T * P')
|
|
fmatvec::SqrMatV | integratePTdPdt () |
| computes the integral for the second part of the h vector coming from the kinetic energy ( P^T * dPdt)
|
|
fmatvec::SqrMatV | integratePTdPdqk (int qInd) |
| computes the integral for the third part of the h vector coming from the kinetic energy ( P^T * dPdqk)
|
|
fmatvec::Vec3 | integrateForWgammaWnWtau (int qInd) |
| computes the integral for the first part of the h vector coming from the potential energy (intForWgamma)
|
|
double | integrateForWb (int qInd) |
| computes the integral for the second part of the h vector coming from the potential energy (intForWgamma)
|
|
int | findElement (double &xi) |
| find the element number of the given global coordinate More...
|
|
std::vector< std::pair< int,
int > > | getElementAndLocalDoFNo (int globalColumn) |
| find the elemental DOF Number out of the global DOF Number More...
|
|
int | getEleDofs () const |
| get the number of DOFs for one element
|
|
|
ReferenceCurve * | refCurve |
| the reference curve
|
|
int | elements |
| number of elements used
|
|
int | nodeDoFs |
| DoFs per element.
|
|
int | elementOrder |
| DoFs per element.
|
|
bool | useSpatialReferenceKinematics |
| switch to only use kinematical reference deformation
|
|
double | length |
| length of ring
|
|
double | rho |
| density of the body
|
|
double | A |
| cross section Area of the body
|
|
double | E |
| Youngs modulus of the body.
|
|
double | nu |
| Poisson-ratio of the body.
|
|
double | In |
| area moment of inertia around normal axis
|
|
double | Ib |
| area moment of inertia around binormal axis
|
|
double | It |
| area moment of inertia around torsional axis
|
|
double | dPulley |
| distance between pulleys
|
|
fmatvec::Vec3 | b |
| Binormal of the curve.
|
|
double | dTheta |
| damping coefficient for theta
|
|
std::set< int > | lockedDofsFull |
| this vector saves the locked DOFs of the system
|
|
fmatvec::VecV | qF |
| vector for PT1 in positions
|
|
fmatvec::VecV | uF |
| vector for PT1 in velocities
|
|
fmatvec::VecV | lambdaqFSwitches |
| these are the switches to the the lambdaqSwitches The first entrie is always the entro for "s" the second one always for "theta". Then it depends on the element order but it actually follows just the global q-vector. Thus for elementOrder 3 and planar it is like this: lambdaqSwitches = [s, theta, qt, qn, qt', qn'] Thus for elementOrder 5 and spatial it is like this: lambdaqSwitches = [s, theta, qt, qn, qb, qt', qn', qb'', qt'', qn'', qb''] As here only the switches are set no one cars for the locked directions...
|
|
fmatvec::VecV | lambdauFSwitches |
| these are the switches to the the lambdauSwitches See the explanations for the qSwitches, however for the generalized velocities
|
|
fmatvec::VecV | lambdaqF |
| lambda factors for qFs
|
|
fmatvec::VecV | lambdauF |
| lambda factors for uFs
|
|
bool | usePT1 = false |
| switch to use either the lambda PT1 version or not
|
|
std::vector< fmatvec::Vec > | qElementAll |
| vector storing the values of the locked and not locked Dofs
|
|
std::vector< fmatvec::Vec > | uElementAll |
| vector storing the values of the locked and not locked Dofs generelaized velocities
|
|
int | updateReferenceEvery |
| number of how often the reference movement should be updated compared to the local movements
|
|
int | referenceNotUpdated |
| counter of how many updates have been done since the last time
|
|
double | tLastRefUpdate |
| marker since when the last update has been done on the reference
|
|
bool | elongationActive = true |
| switch to enable / disable the elongation energy in the h-vector
|
|
bool | normalBendingActive = true |
| switch to enable / disable the normal bending energy in the h-vector
|
|
class that implements an one dimensional nonlinear beam that uses a reference curve for the nonlinearity together with overlaid deformations. Also the Eulerian coordinates ("S" not "s") are used to project the movement of the nodes back to their original position...