23#include <mbsim/objects/object.h>
62 void setGeneralizedInitialPosition(
const fmatvec::Vec &q0_) {
q0 <<= q0_; }
63 void setGeneralizedInitialVelocity(
const fmatvec::Vec &u0_) { u0 <<= u0_; }
64 void setGeneralizedInitialPosition(
double q0_) {
q0.resize(1,fmatvec::INIT,q0_); }
65 void setGeneralizedInitialVelocity(
double u0_) { u0.resize(1,fmatvec::INIT,u0_); }
68 void sethSize(
int hSize_,
int i=0)
override;
69 void sethInd(
int hInd_,
int i=0)
override;
78 void init(
InitStage stage,
const InitConfigSet &config)
override;
116 const std::vector<Frame*>& getFrames()
const {
return frame; }
117 const std::vector<Contour*>& getContours()
const {
return contour; }
118 std::shared_ptr<OpenMBV::Group> getOpenMBVGrp()
override {
return openMBVGrp; }
119 std::shared_ptr<OpenMBV::Body>& getOpenMBVBody() {
return openMBVBody; }
120 std::shared_ptr<OpenMBV::Group> getFramesOpenMBVGrp()
override {
return framesOpenMBVGrp; }
121 std::shared_ptr<OpenMBV::Group> getContoursOpenMBVGrp()
override {
return contoursOpenMBVGrp; }
122 H5::GroupBase *getFramesPlotGroup()
override {
return framesPlotGroup; }
123 H5::GroupBase *getContoursPlotGroup()
override {
return contoursPlotGroup; }
138 void initializeUsingXML(xercesc::DOMElement *element)
override;
142 fmatvec::Mat3xV& getPJT(
int i=0,
bool check=
true) { assert((not check) or (not updPJ));
return PJT[i]; }
143 fmatvec::Mat3xV& getPJR(
int i=0,
bool check=
true) { assert((not check) or (not updPJ));
return PJR[i]; }
145 const fmatvec::Mat3xV& evalPJT() {
if(updPJ) updateJacobians();
return PJT[0]; }
146 const fmatvec::Mat3xV& evalPJR() {
if(updPJ) updateJacobians();
return PJR[0]; }
148 void resetUpToDate()
override;
149 virtual void resetPositionsUpToDate();
150 virtual void resetVelocitiesUpToDate();
151 virtual void resetJacobiansUpToDate();
152 virtual void resetGyroscopicAccelerationsUpToDate();
153 virtual void updateJacobians() { }
170 std::vector<Contour*> contour;
180 fmatvec::Mat3xV
PJT[2], PJR[2];
182 bool updPos, updVel, updPJ;
184 std::shared_ptr<OpenMBV::Body> openMBVBody;
185 std::shared_ptr<OpenMBV::Group> openMBVGrp;
186 std::shared_ptr<OpenMBV::Group> framesOpenMBVGrp;
187 std::shared_ptr<OpenMBV::Group> contoursOpenMBVGrp;
192 std::string saved_frameOfReference;
base class for all mechanical bodies with mass and generalised coordinates
Definition: body.h:49
virtual Contour * getContour(const std::string &name, bool check=true) const
Definition: body.cc:144
void setDynamicSystemSolver(DynamicSystemSolver *sys) override
sets the used dynamics system solver to the element
Definition: body.cc:71
virtual Frame * getFrame(const std::string &name, bool check=true) const
Definition: body.cc:158
virtual const Frame * getFrameOfReference() const
Definition: body.h:107
Body(const std::string &name)
constructor
Definition: body.cc:35
virtual void addFrame(Frame *frame)
Definition: body.cc:133
void init(InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: body.cc:80
fmatvec::Mat3xV PJT[2]
Definition: body.h:180
virtual void setFrameOfReference(Frame *frame)
Definition: body.h:112
virtual Frame * getFrameOfReference()
Definition: body.h:102
std::vector< Frame * > frame
vector of frames and contours
Definition: body.h:169
virtual void addContour(Contour *contour)
Definition: body.cc:122
int contourIndex(const Contour *contour_) const
Definition: body.cc:180
~Body() override
destructor
Definition: body.cc:37
int frameIndex(const Frame *frame_) const
Definition: body.cc:172
void createPlotGroup() override
creates the plotGroup for H5-output
Definition: body.cc:116
void plot() override
plots time dependent data
Definition: body.cc:62
Element * getChildByContainerAndName(const std::string &container, const std::string &name) const override
Get the Element named name in the container named container.
Definition: body.cc:200
Frame * R
frame of reference of the object
Definition: body.h:175
basic class for contour definition for rigid (which do not know about their shape) and flexible (they...
Definition: contour.h:40
solver interface for modelling and simulation of dynamic systems
Definition: dynamic_system_solver.h:61
Element(const std::string &name)
constructor
Definition: element.cc:63
InitStage
The stages of the initialization.
Definition: element.h:62
std::string name
name of element
Definition: element.h:260
cartesian frame on bodies used for application of e.g. links and loads
Definition: frame.h:39
class for all objects having own dynamics and mass
Definition: object.h:42
fmatvec::Vec q0
initial position, velocity
Definition: object.h:309
namespace MBSim
Definition: bilateral_constraint.cc:30