23 #include "mbsim/element.h"
55 virtual void updateT(
double t) {};
56 virtual void updateh(
double t,
int j=0) {};
57 virtual void updateM(
double t,
int i=0) {};
58 virtual void updatedhdz(
double t);
59 virtual void updatedq(
double t,
double dt) {
qd =
T * u * dt; }
60 virtual void updatedu(
double t,
double dt) { ud[0] = slvLLFac(
LLM[0],
h[0] * dt + r[0]); }
61 virtual void updateud(
double t,
int i=0) { ud[i] = slvLLFac(
LLM[i],
h[i] + r[i]); }
62 virtual void updateqd(
double t) {
qd =
T * u; }
63 virtual void updatezd(
double t) { updateqd(t); updateud(t); updatexd(t); }
64 virtual void sethSize(
int hSize_,
int i=0);
65 virtual int gethSize(
int i=0)
const {
return hSize[i]; }
66 virtual int getqSize()
const {
return qSize; }
67 virtual int getuSize(
int i=0)
const {
return uSize[i]; }
68 virtual void calcqSize() {};
69 virtual void calcuSize(
int j) {};
71 virtual int getuInd(
int i=0) {
return uInd[i]; }
73 virtual void setqInd(
int qInd_) {
qInd = qInd_; }
74 virtual void setuInd(
int uInd_,
int i=0) { uInd[i] = uInd_; }
81 virtual void updateStateDependentVariables(
double t) = 0;
82 virtual void updateStateDerivativeDependentVariables(
double t) {};
83 virtual void updateJacobians(
double t,
int j=0) = 0;
84 virtual void updatehInverseKinetics(
double t,
int i=0) {};
88 virtual void plot(
double t,
double dt = 1);
90 virtual std::string
getType()
const {
return "Object"; }
94 virtual void updatedx(
double t,
double dt) {}
95 virtual void updatexd(
double t) {}
96 virtual void calcxSize() {
xSize = 0; }
99 virtual void setxInd(
int xInd_) { xInd = xInd_; };
100 virtual int getxSize()
const {
return xSize; }
202 virtual void initz();
242 void setqSize(
int qSize_) {
qSize = qSize_; }
243 void setuSize(
int uSize_,
int i=0) {
uSize[i] = uSize_; }
244 int getzSize()
const {
return qSize +
uSize[0]; }
246 virtual void sethInd(
int hInd_,
int i=0);
247 int gethInd(
int i=0) {
return hInd[i]; }
251 const fmatvec::Vec& getr(
int i=0)
const {
return r[i]; };
269 const fmatvec::Vec& getud(
int i=0)
const {
return ud[i]; };
278 virtual void initializeUsingXML(xercesc::DOMElement *element);
279 virtual xercesc::DOMElement* writeXMLFile(xercesc::DOMNode *element);
int qInd
indices of positions, velocities, right hand side
Definition: object.h:300
Object(const std::string &name)
constructor
Definition: object.cc:35
int xSize
size and local index of order one parameters
Definition: object.h:305
virtual void updateTRef(const fmatvec::Mat &ref)
references to linear transformation matrix between differentiated positions and velocities of dynamic...
Definition: object.cc:216
virtual double computeKineticEnergy()
Definition: object.h:228
virtual void updatedhdqRef(const fmatvec::Mat &dhdqRef, int i=0)
references to object Jacobian for implicit integration of dynamic system parent regarding positions ...
Definition: object.cc:200
fmatvec::Mat T
linear relation matrix of differentiated position and velocity parameters
Definition: object.h:339
int qSize
size of object positions
Definition: object.h:285
virtual void initz()
Definition: object.cc:266
fmatvec::Vec q
positions, velocities
Definition: object.h:310
basic class of MBSim mainly for plotting
Definition: element.h:58
virtual void updateudRef(const fmatvec::Vec &udRef, int i=0)
references to differentiated velocities of dynamic system parent
Definition: object.cc:180
virtual void writez(H5::GroupBase *group)
writes its z-Vector to a subgroup of the given group
Definition: object.cc:287
fmatvec::SymMat M[2]
mass matrix
Definition: object.h:344
int hSize[2]
size of object h-vector (columns of J)
Definition: object.h:295
virtual void updateLLMRef(const fmatvec::SymMat &ref, int i=0)
references to Cholesky decomposition of dynamic system parent
Definition: object.cc:224
virtual void updatedhduRef(const fmatvec::SqrMat &dhduRef, int i=0)
references to object Jacobian for implicit integration of dynamic system parent regarding velocities ...
Definition: object.cc:204
InitStage
The stages of the initialization.
Definition: element.h:97
virtual void updatedhdtRef(const fmatvec::Vec &dhdtRef, int i=0)
references to object Jacobian for implicit integration of dynamic system parent regarding time ...
Definition: object.cc:208
PlotFeatureStatus getPlotFeature(PlotFeature pf)
Definition: element.h:217
fmatvec::SymMat LLM[2]
LU-decomposition of mass matrix.
Definition: object.h:349
std::string name
name of element
Definition: element.h:290
virtual void updateuRef(const fmatvec::Vec &uRef)
references to velocities of dynamic system parent
Definition: object.cc:172
fmatvec::Mat dhdq
Jacobians of h.
Definition: object.h:332
virtual void init(InitStage stage)
initialize object at start of simulation with respect to contours and frames
Definition: object.cc:228
virtual void updateqRef(const fmatvec::Vec &qRef)
references to positions of dynamic system parent
Definition: object.cc:164
virtual void closePlot()
closes plot file
Definition: object.cc:154
int uSize[2]
size of object velocities
Definition: object.h:290
virtual void updatehRef(const fmatvec::Vec &hRef, int i=0)
references to smooth force vector of dynamic system parent
Definition: object.cc:196
virtual void readz0(H5::GroupBase *group)
reads the z-Vector of a subgroup of the given group
Definition: object.cc:293
fmatvec::Vec h[2]
complete and object smooth and nonsmooth right hand side
Definition: object.h:325
H5::GroupBase * plotGroup
associated plot group
Definition: element.h:324
virtual ~Object()
destructor
Definition: object.cc:49
virtual void calcSize(int j)
calculates size of right hand side
Definition: object.h:223
virtual double computePotentialEnergy()
Definition: object.h:233
virtual void plot(double t, double dt=1)
plots time dependent data
Definition: object.cc:122
PlotFeatureStatus
Plot feature status.
Definition: element.h:61
virtual std::string getType() const
Definition: object.h:90
virtual void updateuallRef(const fmatvec::Vec &uallRef)
references to velocities of dynamic system parent
Definition: object.cc:176
PlotFeature
Plot Features.
Definition: element.h:74
virtual void updaterRef(const fmatvec::Vec &ref, int i=0)
references to nonsmooth force vector of dynamic system parent
Definition: object.cc:212
virtual void updateudallRef(const fmatvec::Vec &udallRef, int i=0)
references to differentiated velocities of dynamic system parent
Definition: object.cc:184
virtual void updateMRef(const fmatvec::SymMat &ref, int i=0)
references to mass matrix of dynamic system parent
Definition: object.cc:220
virtual void updateqdRef(const fmatvec::Vec &qdRef)
references to differentiated positions of dynamic system parent
Definition: object.cc:168
fmatvec::Vec qd
differentiated positions, velocities
Definition: object.h:320
PlotFeatureStatus getPlotFeatureForChildren(PlotFeature pf)
Definition: element.h:222
virtual void facLLM(int i=0)
perform Cholesky decomposition of mass martix
Definition: object.h:217
class for all objects having own dynamics and mass
Definition: object.h:42
fmatvec::Vec q0
initial position, velocity
Definition: object.h:315
virtual void setUpInverseKinetics()
TODO.
Definition: object.h:238