20 #ifndef WEIGHT33RCM_H_
21 #define WEIGHT33RCM_H_
23 #include "fmatvec/fmatvec.h"
24 #include "mbsimFlexibleBody/pointer.h"
26 namespace MBSimFlexibleBody {
38 Weight33RCM(
double l0_,
double l0h2_,
double l0h3_,Trafo33RCMPtr tf_);
66 const double& getIwh1()
const;
67 const double& getIwh2()
const;
68 const double& getIwh1t()
const;
69 const double& getIwh2t()
const;
70 const double& getIxwh1()
const;
71 const double& getIxwh2()
const;
72 const double& getIxwh1t()
const;
73 const double& getIxwh2t()
const;
74 const double& getIwh1twh1()
const;
75 const double& getIwh1twh2()
const;
76 const double& getIwh1twh1t()
const;
77 const double& getIwh1wh1()
const;
78 const double& getIwh1wh2t()
const;
79 const double& getIwh1wh2()
const;
80 const double& getIwh2twh2t()
const;
81 const double& getIwh2twh2()
const;
82 const double& getIwh2wh2()
const;
83 const double& getIwh1twh2t()
const;
84 const double& getIwh1xwh1x()
const;
85 const double& getIwh2xwh2x()
const;
86 const double& getIwh1xxwh1xx()
const;
87 const double& getIwh2xxwh2xx()
const;
129 const double& getTtil()
const;
145 double intvxxvxx(
const fmatvec::Vec& vt,
double C)
const;
236 double l0, l0h2, l0h3, l0h4, l0h5, l0h7, l0h9, l0h11;
253 double Iwh1, Iwh2, Iwh1t, Iwh2t, Ixwh1, Ixwh2, Ixwh1t, Ixwh2t;
254 double Iwh1twh1, Iwh1twh2, Iwh1twh1t, Iwh1wh1, Iwh1wh2t, Iwh1wh2, Iwh2twh2t;
255 double Iwh2twh2, Iwh2wh2, Iwh1twh2t;
259 double Iwh1xwh1x, Iwh2xwh2x, Iwh1xxwh1xx, Iwh2xxwh2xx;
269 fmatvec::Mat wh1coefqI, wh2coefqI, wh1tcoefqI, wh2tcoefqI;
358 inline void Weight33RCM::intvvtH() { IvvtH =
Ivvt.T(); }
359 inline void Weight33RCM::intvxvtH() { IvxvtH = Ivxvt.T(); }
360 inline void Weight33RCM::intxvvtH() { IxvvtH = Ixvvt.T(); }
361 inline void Weight33RCM::intxvxvtH() { IxvxvtH = Ixvxvt.T(); }
363 inline const fmatvec::RowVec& Weight33RCM::getvxvt()
const {
return Ivxvt; }
364 inline const fmatvec::Vec& Weight33RCM::getvxvtH()
const {
return IvxvtH; }
365 inline const fmatvec::RowVec& Weight33RCM::getxvxvt()
const {
return Ixvxvt; }
366 inline const fmatvec::Vec& Weight33RCM::getxvxvtH()
const {
return IxvxvtH; }
367 inline const fmatvec::SymMat& Weight33RCM::getvxvtwxwt()
const {
return Ivxvtwxwt; }
369 inline const fmatvec::Vec& Weight33RCM::getvvtH()
const {
return IvvtH; }
370 inline const fmatvec::RowVec& Weight33RCM::getxvvt()
const {
return Ixvvt; }
371 inline const fmatvec::Vec& Weight33RCM::getxvvtH()
const {
return IxvvtH; }
372 inline const fmatvec::SymMat& Weight33RCM::getvvtwwt()
const {
return Ivvtwwt; }
374 inline const double& Weight33RCM::getIwh1()
const {
return Iwh1; }
375 inline const double& Weight33RCM::getIwh2()
const {
return Iwh2; }
376 inline const double& Weight33RCM::getIwh1t()
const {
return Iwh1t; }
377 inline const double& Weight33RCM::getIwh2t()
const {
return Iwh2t; }
378 inline const double& Weight33RCM::getIxwh1()
const {
return Ixwh1; }
379 inline const double& Weight33RCM::getIxwh2()
const {
return Ixwh2; }
380 inline const double& Weight33RCM::getIxwh1t()
const {
return Ixwh1t; }
381 inline const double& Weight33RCM::getIxwh2t()
const {
return Ixwh2t; }
382 inline const double& Weight33RCM::getIwh1twh1()
const {
return Iwh1twh1; }
383 inline const double& Weight33RCM::getIwh1twh2()
const {
return Iwh1twh2; }
384 inline const double& Weight33RCM::getIwh1twh1t()
const {
return Iwh1twh1t; }
385 inline const double& Weight33RCM::getIwh1wh1()
const {
return Iwh1wh1; }
386 inline const double& Weight33RCM::getIwh1wh2t()
const {
return Iwh1wh2t; }
387 inline const double& Weight33RCM::getIwh1wh2()
const {
return Iwh1wh2; }
388 inline const double& Weight33RCM::getIwh2twh2t()
const {
return Iwh2twh2t; }
389 inline const double& Weight33RCM::getIwh2twh2()
const {
return Iwh2twh2; }
390 inline const double& Weight33RCM::getIwh2wh2()
const {
return Iwh2wh2; }
391 inline const double& Weight33RCM::getIwh1twh2t()
const {
return Iwh1twh2t; }
392 inline const double& Weight33RCM::getIwh1xwh1x()
const {
return Iwh1xwh1x; }
393 inline const double& Weight33RCM::getIwh2xwh2x()
const {
return Iwh2xwh2x; }
394 inline const double& Weight33RCM::getIwh1xxwh1xx()
const {
return Iwh1xxwh1xx; }
395 inline const double& Weight33RCM::getIwh2xxwh2xx()
const {
return Iwh2xxwh2xx; }
396 inline const fmatvec::RowVec& Weight33RCM::getIwh1xxwxxwt()
const {
return Iwh1xxwxxwt; }
397 inline const fmatvec::RowVec& Weight33RCM::getIwh2xxwxxwt()
const {
return Iwh2xxwxxwt; }
398 inline const fmatvec::RowVec& Weight33RCM::getIwh1wwt()
const {
return Iwh1wwt; }
399 inline const fmatvec::RowVec& Weight33RCM::getIwh2wwt()
const {
return Iwh2wwt; }
400 inline const fmatvec::Vec& Weight33RCM::getIwh1wwtH()
const {
return Iwh1wwtH; }
401 inline const fmatvec::Vec& Weight33RCM::getIwh2wwtH()
const {
return Iwh2wwtH; }
402 inline const fmatvec::RowVec& Weight33RCM::getIwh1twwt()
const {
return Iwh1twwt; }
403 inline const fmatvec::RowVec& Weight33RCM::getIwh2twwt()
const {
return Iwh2twwt; }
404 inline const fmatvec::Vec& Weight33RCM::getIwh1twwtH()
const {
return Iwh1twwtH; }
405 inline const fmatvec::Vec& Weight33RCM::getIwh2twwtH()
const {
return Iwh2twwtH; }
406 inline const fmatvec::RowVec& Weight33RCM::getIwh1xwxwt()
const {
return Iwh1xwxwt; }
407 inline const fmatvec::RowVec& Weight33RCM::getIwh2xwxwt()
const {
return Iwh2xwxwt; }
410 inline const fmatvec::Vec& Weight33RCM::getw2coef()
const {
return w2coef; }
411 inline const fmatvec::Vec& Weight33RCM::getw1tcoef()
const {
return w1tcoef; }
412 inline const fmatvec::Vec& Weight33RCM::getw2tcoef()
const {
return w2tcoef; }
413 inline const fmatvec::Mat& Weight33RCM::getw1coefqI()
const {
return w1coefqI; }
414 inline const fmatvec::Mat& Weight33RCM::getw2coefqI()
const {
return w2coefqI; }
415 inline const fmatvec::Vec& Weight33RCM::getwh1coef()
const {
return wh1coef; }
416 inline const fmatvec::Vec& Weight33RCM::getwh2coef()
const {
return wh2coef; }
417 inline const fmatvec::Vec& Weight33RCM::getwh1tcoef()
const {
return wh1tcoef; }
418 inline const fmatvec::Vec& Weight33RCM::getwh2tcoef()
const {
return wh2tcoef; }
419 inline const fmatvec::Mat& Weight33RCM::getwh1coefqI()
const {
return wh1coefqI; }
420 inline const fmatvec::Mat& Weight33RCM::getwh2coefqI()
const {
return wh2coefqI; }
421 inline fmatvec::Mat Weight33RCM::getwh1coefqIH()
const {
return wh1coefqI.T(); }
422 inline fmatvec::Mat Weight33RCM::getwh2coefqIH()
const {
return wh2coefqI.T(); }
423 inline const fmatvec::Mat& Weight33RCM::getwh1tcoefqI()
const {
return wh1tcoefqI; }
424 inline const fmatvec::Mat& Weight33RCM::getwh2tcoefqI()
const {
return wh2tcoefqI; }
425 inline const fmatvec::Mat& Weight33RCM::getwh1coefqInunutH()
const {
return wh1coefqInunutH; }
426 inline const fmatvec::Mat& Weight33RCM::getwh2coefqInunutH()
const {
return wh2coefqInunutH; }
429 inline const fmatvec::Mat& Weight33RCM::getnSqI()
const {
return nSqI; }
430 inline const fmatvec::Mat& Weight33RCM::getbSqI()
const {
return bSqI; }
431 inline const fmatvec::Mat& Weight33RCM::getnSqIH()
const {
return nSqIH; }
432 inline const fmatvec::Mat& Weight33RCM::getbSqIH()
const {
return bSqIH; }
433 inline const fmatvec::Mat& Weight33RCM::gettStqI()
const {
return tStqI; }
434 inline const fmatvec::Mat& Weight33RCM::getnStqI()
const {
return nStqI; }
435 inline const fmatvec::Mat& Weight33RCM::getbStqI()
const {
return bStqI; }
437 inline const double& Weight33RCM::getTtil()
const {
return Ttil; }
438 inline const fmatvec::RowVec& Weight33RCM::getTtilqI()
const {
return TtilqI; }
439 inline const fmatvec::SymMat& Weight33RCM::getTtilqItqIt()
const {
return TtilqItqIt; }
440 inline const fmatvec::Vec& Weight33RCM::getTtilqItqIqIt()
const {
return TtilqItqIqIt; }
443 inline const fmatvec::Mat& Weight33RCM::getdpSH()
const {
return dpSH; }
void computewcoefVel()
computes the time differentiated coefficients of bending polynomials w
Definition: weight33RCM.cc:209
fmatvec::Vec computew(const fmatvec::Vec &wt, double x) const
evaluates the bending polynomial and its x-derivative
Definition: weight33RCM.cc:183
fmatvec::Vec w1coef
bending coefficients
Definition: weight33RCM.h:266
Weight33RCM(double l0_, double l0h2_, double l0h3_, Trafo33RCMPtr tf_)
constructor
Definition: weight33RCM.cc:31
void computedpS()
compute delta matrix for CP with respect to rotation
Definition: weight33RCM.cc:401
double l0
length of FEM1s33RCM
Definition: weight33RCM.h:236
fmatvec::Mat dpS
delta matrix for pS
Definition: weight33RCM.h:305
virtual ~Weight33RCM()
Destructor.
Definition: weight33RCM.cc:72
void computewcoefPosD()
computes the derivative of w-coefficients with respect to bending coordinates
Definition: weight33RCM.cc:246
void computewhcoefVelD()
computes bending polynomial values on velocity level
Definition: weight33RCM.cc:276
void computeint()
computes the integrals of bending polynomials
Definition: weight33RCM.cc:134
double omgt
omgtS
Definition: weight33RCM.h:284
integrals of bending parametrisation for FiniteElement1s33RCM
Definition: weight33RCM.h:33
void computeomgt(double x)
compute angular velocity around tangent
Definition: weight33RCM.cc:335
void computewhcoefPosD()
computes bending polynomial values on position level
Definition: weight33RCM.cc:256
fmatvec::Vec computewcoef(double dL, double dR, double bL, double bR) const
computes the coefficients of w and wt
Definition: weight33RCM.cc:320
fmatvec::Mat tSqI
COSY.
Definition: weight33RCM.h:275
void setCurvature(double k10_, double k20_)
Definition: weight33RCM.h:357
double Iwh1
special integrals
Definition: weight33RCM.h:253
fmatvec::Vec gp
Gauss integration.
Definition: weight33RCM.h:299
void computewcoefPos()
computes the coefficients of bending polynomials w
Definition: weight33RCM.cc:196
Trafo33RCMPtr tf
Trafo-Object.
Definition: weight33RCM.h:231
double k10
predefined bendings
Definition: weight33RCM.h:241
double Ttil
rotational kinetic energy
Definition: weight33RCM.h:291
void computeT()
compute rotational kinetic energy
Definition: weight33RCM.cc:382
void computeintD(const fmatvec::Vec &qG, const fmatvec::Vec &qGt)
computes the vector integrals of bending polynomials
Definition: weight33RCM.cc:163
void computewhcoefVel()
computes the coefficients of bending polynomials w and wh and their time derivatives ...
Definition: weight33RCM.cc:237
void computewhcoefPos()
computes the coefficients of bending polynomials w and wh
Definition: weight33RCM.cc:222
void setGauss(int nGauss)
Definition: weight33RCM.cc:74
fmatvec::RowVec Ivvt
general integrals
Definition: weight33RCM.h:246