23#include "mbsim/links/mechanical_link.h"
39 void init(
InitStage stage,
const InitConfigSet &config)
override;
40 void initializeUsingXML(xercesc::DOMElement *element)
override;
46 void resetUpToDate()
override;
48 const fmatvec::Mat3xV& evalGlobalForceDirection() {
if(updDF) updateForceDirections();
return DF; }
49 const fmatvec::Mat3xV& evalGlobalMomentDirection() {
if(updDF) updateForceDirections();
return DM; }
51 fmatvec::Mat3xV& getGlobalForceDirection(
bool check=
true) { assert((not check) or (not updDF));
return DF; }
52 fmatvec::Mat3xV& getGlobalMomentDirection(
bool check=
true) { assert((not check) or (not updDF));
return DM; }
54 void updatePositions()
override;
55 void updateForce()
override;
56 void updateMoment()
override;
57 void updateR()
override;
59 const fmatvec::Vec3& evalGlobalRelativePosition() {
if(updPos) updatePositions();
return WrP0P1; }
60 const fmatvec::SqrMat3& evalGlobalRelativeOrientation() {
if(updPos) updatePositions();
return AK0K1; }
61 const fmatvec::Vec3& evalGlobalRelativeVelocity() {
if(updVel) updateVelocities();
return WvP0P1; }
62 const fmatvec::Vec3& evalGlobalRelativeAngularVelocity() {
if(updVel) updateVelocities();
return WomK0K1; }
64 fmatvec::Vec3& getGlobalRelativePosition(
bool check=
true) { assert((not check) or (not updPos));
return WrP0P1; }
65 fmatvec::SqrMat3& getGlobalRelativeOrientation(
bool check=
true) { assert((not check) or (not updPos));
return AK0K1; }
66 fmatvec::Vec3& getGlobalRelativeVelocity(
bool check=
true) { assert((not check) or (not updVel));
return WvP0P1; }
67 fmatvec::Vec3& getGlobalRelativeAngularVelocity(
bool check=
true) { assert((not check) or (not updVel));
return WomK0K1; }
70 void updateWRef(fmatvec::Mat& ref,
int i=0)
override;
71 void updateVRef(fmatvec::Mat& ref,
int i=0)
override;
72 void updatehRef(fmatvec::Vec &hRef,
int i=0)
override;
73 virtual void updatedhdqRef(fmatvec::Mat& ref,
int i=0);
74 virtual void updatedhduRef(fmatvec::SqrMat& ref,
int i=0);
75 virtual void updatedhdtRef(fmatvec::Vec& ref,
int i=0);
76 void updaterRef(fmatvec::Vec &ref,
int i=0)
override;
88 fmatvec::Vec3
WrP0P1, WvP0P1, WomK0K1;
90 fmatvec::SqrMat3 AK0K1;
94 fmatvec::Mat3xV DF, DM;
96 bool updPos, updVel, updDF;
99 std::string saved_ref1, saved_ref2;
InitStage
The stages of the initialization.
Definition: element.h:62
std::string name
name of element
Definition: element.h:260
frame link
Definition: frame_link.h:31
void updateWRef(fmatvec::Mat &ref, int i=0) override
references to contact force direction matrix of dynamic system parent
Definition: frame_link.cc:78
void updaterRef(fmatvec::Vec &ref, int i=0) override
references to nonsmooth force vector of dynamic system parent
Definition: frame_link.cc:116
std::vector< Frame * > frame
array in which all frames are listed, connecting bodies via a link
Definition: frame_link.h:83
void updateVRef(fmatvec::Mat &ref, int i=0) override
references to condensed contact force direction matrix of dynamic system parent
Definition: frame_link.cc:86
FrameLink(const std::string &name)
constructor
Definition: frame_link.cc:32
fmatvec::Vec3 WrP0P1
difference vector of position, velocity and angular velocity
Definition: frame_link.h:88
void updatehRef(fmatvec::Vec &hRef, int i=0) override
references to complete and link smooth force vector of dynamic system parent
Definition: frame_link.cc:94
void init(InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: frame_link.cc:53
cartesian frame on bodies used for application of e.g. links and loads
Definition: frame.h:39
mechanical link
Definition: mechanical_link.h:33
namespace MBSim
Definition: bilateral_constraint.cc:30