MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
totalj.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/struct/totalj.h,v 1.41 2017/01/12 14:46:44 masarati Exp $ */
2 /*
3  * MBDyn (C) is a multibody analysis code.
4  * http://www.mbdyn.org
5  *
6  * Copyright (C) 1996-2017
7  *
8  * Pierangelo Masarati <masarati@aero.polimi.it>
9  * Paolo Mantegazza <mantegazza@aero.polimi.it>
10  *
11  * Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano
12  * via La Masa, 34 - 20156 Milano, Italy
13  * http://www.aero.polimi.it
14  *
15  * Changing this copyright notice is forbidden.
16  *
17  * This program is free software; you can redistribute it and/or modify
18  * it under the terms of the GNU General Public License as published by
19  * the Free Software Foundation (version 2 of the License).
20  *
21  *
22  * This program is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25  * GNU General Public License for more details.
26  *
27  * You should have received a copy of the GNU General Public License
28  * along with this program; if not, write to the Free Software
29  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30  */
31 
32 #ifndef TOTALJ_H
33 #define TOTALJ_H
34 
35 #include "joint.h"
36 #include "constltp.h"
37 
38 #if 0
39 // friction will be dealt with later
40 #include "friction.h"
41 #endif
42 
43 /* TotalJoint - begin */
44 
45 class TotalJoint :
46 virtual public Elem, public Joint {
47 private:
56  bool bPosActive[3];
57  bool bRotActive[3];
58 
59  bool bVelActive[3];
60  bool bAgvActive[3]; /* Agv stands for AnGular Velocity */
61 
65 
69 
70  unsigned int nConstraints;
71  unsigned int nPosConstraints;
72  unsigned int nRotConstraints;
73  unsigned int nVelConstraints;
74  unsigned int nAgvConstraints;
75 
76  unsigned int iPosIncid[3];
77  unsigned int iRotIncid[3];
78  unsigned int iVelIncid[3];
79  unsigned int iAgvIncid[3];
80 
81  unsigned int iPosEqIndex[3];
82  unsigned int iRotEqIndex[3];
83  unsigned int iVelEqIndex[3];
84  unsigned int iAgvEqIndex[3];
85 
87 
88 #ifdef USE_NETCDF
89  NcVar *Var_X;
90  NcVar *Var_Phi;
91  NcVar *Var_V;
92  NcVar *Var_Omega;
93 #endif // USE_NETCDF
94 
95  mutable Vec3 M;
96  mutable Vec3 F;
97  mutable Vec3 ThetaDelta;
99 
102 
103 public:
104  /* Constructor */
105  TotalJoint(unsigned int uL, const DofOwner *pDO,
106  bool bPos[3], bool bVel[3],
107  TplDriveCaller<Vec3> *const pDCPos[3],
108  bool bRot[3], bool bAgv[3],
109  TplDriveCaller<Vec3> *const pDCRot[3],
110  const StructNode* pN1,
111  const Vec3& f1Tmp, const Mat3x3& R1hTmp, const Mat3x3& R1hrTmp,
112  const StructNode* pN2,
113  const Vec3& f2Tmp, const Mat3x3& R2hTmp, const Mat3x3& R2hrTmp,
114  flag fOut);
115 
116  /* Destructor */
117  ~TotalJoint(void);
118 
119  /* Contributo al file di restart */
120  virtual std::ostream& Restart(std::ostream& out) const;
121 
122  /* Tipo di Joint */
123  virtual Joint::Type
124  GetJointType(void) const {
125  return Joint::TOTALJOINT;
126  };
127 
128  virtual unsigned int
129  iGetNumDof(void) const {
130  return nConstraints;
131  };
132 
133  virtual std::ostream&
134  DescribeDof(std::ostream& out,
135  const char *prefix = "",
136  bool bInitial = false) const;
137 
138  virtual void
139  DescribeDof(std::vector<std::string>& desc,
140  bool bInitial = false,
141  int i = -1) const;
142 
143  virtual std::ostream&
144  DescribeEq(std::ostream& out,
145  const char *prefix = "",
146  bool bInitial = false) const;
147 
148  virtual void
149  DescribeEq(std::vector<std::string>& desc,
150  bool bInitial = false,
151  int i = -1) const;
152 
154  GetDofType(unsigned int i) const {
155  ASSERT(i >= 0 && i < nConstraints);
156  return DofOrder::ALGEBRAIC;
157  };
158 
159  virtual void
160  SetValue(DataManager *pDM,
162  SimulationEntity::Hints *ph = 0);
163 
164  virtual Hint *
165  ParseHint(DataManager *pDM, const char *s) const;
166 
167  virtual void
169  const VectorHandler& XP);
170 
171  /* Inverse Dynamics: */
172  virtual void
174  const VectorHandler& XP, const VectorHandler& XPP);
175 
176  void
177  WorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
178  *piNumCols = *piNumRows = 12 + nConstraints ;
179  };
180 
183  doublereal dCoef,
184  const VectorHandler& XCurr,
185  const VectorHandler& XPrimeCurr);
186 
188  AssRes(SubVectorHandler& WorkVec,
189  doublereal dCoef,
190  const VectorHandler& XCurr,
191  const VectorHandler& XPrimeCurr);
192 
193  /* inverse dynamics capable element */
194  virtual bool bInverseDynamics(void) const;
195 
196  /* Inverse Dynamics Jacobian matrix assembly */
199  const VectorHandler& XCurr);
200 
201  /* Inverse Dynamics residual assembly */
203  AssRes(SubVectorHandler& WorkVec,
204  const VectorHandler& XCurr,
205  const VectorHandler& XPrimeCurr,
206  const VectorHandler& XPrimePrimeCurr,
208 
209  /* Inverse Dynamics update */
211 
212  DofOrder::Order GetEqType(unsigned int i) const;
213 
214  void OutputPrepare(OutputHandler &OH);
215  void Output(OutputHandler& OH) const;
216 
217  /* funzioni usate nell'assemblaggio iniziale */
218 
219  virtual unsigned int
220  iGetInitialNumDof(void) const {
221  return 2*nConstraints;
222  };
223  virtual void
224  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
225  *piNumCols = *piNumRows = 24 + 2*nConstraints;
226  };
227 
228  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
231  const VectorHandler& XCurr);
232 
233  /* Contributo al residuo durante l'assemblaggio iniziale */
236  const VectorHandler& XCurr);
237 
238  /* Dati privati */
239  virtual unsigned int iGetNumPrivData(void) const;
240  virtual unsigned int iGetPrivDataIdx(const char *s) const;
241  virtual doublereal dGetPrivData(unsigned int i) const;
242 
243  /* *******PER IL SOLUTORE PARALLELO******** */
244  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
245  * utile per l'assemblaggio della matrice di connessione fra i dofs */
246  virtual void
247  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const {
248  connectedNodes.resize(2);
249  connectedNodes[0] = pNode1;
250  connectedNodes[1] = pNode2;
251  };
252  /* ************************************************ */
253 };
254 
255 /* TotalJoint - end */
256 
257 /* TotalPinJoint - begin */
258 
260 virtual public Elem, public Joint {
261 private:
269  bool bPosActive[3];
270  bool bRotActive[3];
271  bool bVelActive[3];
272  bool bAgvActive[3]; /* Agv stands for AnGular Velocity */
273 
277 
281 
285 
286  unsigned int nConstraints;
287  unsigned int nPosConstraints;
288  unsigned int nRotConstraints;
289  unsigned int nVelConstraints;
290  unsigned int nAgvConstraints;
291 
292  unsigned int iPosIncid[3];
293  unsigned int iRotIncid[3];
294  unsigned int iVelIncid[3];
295  unsigned int iAgvIncid[3];
296 
297  unsigned int iPosEqIndex[3];
298  unsigned int iRotEqIndex[3];
299  unsigned int iVelEqIndex[3];
300  unsigned int iAgvEqIndex[3];
301 
302 #ifdef USE_NETCDF
303  NcVar *Var_X;
304  NcVar *Var_Phi;
305  NcVar *Var_V;
306  NcVar *Var_Omega;
307 #endif // USE_NETCDF
308 
309  mutable Vec3 M;
310  mutable Vec3 F;
311  mutable Vec3 ThetaDelta;
313 
316 
317 public:
318  /* Constructor */
319  TotalPinJoint(unsigned int uL, const DofOwner *pDO,
320  bool bPos[3], bool bVel[3],
321  TplDriveCaller<Vec3> *const pDCPos[3],
322  bool bRot[3], bool bAgv[3],
323  TplDriveCaller<Vec3> *const pDCRot[3],
324  const Vec3& XcTmp, const Mat3x3& RchTmp, const Mat3x3& RchrTmp,
325  const StructNode* pN,
326  const Vec3& fnTmp, const Mat3x3& RnhTmp, const Mat3x3& RnhrTmp,
327  flag fOut);
328 
329  /* Destructor */
330  ~TotalPinJoint(void);
331 
332  /* Contributo al file di restart */
333  virtual std::ostream& Restart(std::ostream& out) const;
334 
335  /* Tipo di Joint */
336  virtual Joint::Type
337  GetJointType(void) const {
338  return Joint::TOTALPINJOINT;
339  };
340 
341  virtual unsigned int
342  iGetNumDof(void) const {
343  return nConstraints;
344  };
345 
346  virtual std::ostream&
347  DescribeDof(std::ostream& out,
348  const char *prefix = "",
349  bool bInitial = false) const;
350 
351  virtual void
352  DescribeDof(std::vector<std::string>& desc,
353  bool bInitial = false,
354  int i = -1) const;
355 
356  virtual std::ostream&
357  DescribeEq(std::ostream& out,
358  const char *prefix = "",
359  bool bInitial = false) const;
360 
361  virtual void
362  DescribeEq(std::vector<std::string>& desc,
363  bool bInitial = false,
364  int i = -1) const;
365 
367  GetDofType(unsigned int i) const {
368  ASSERT(i >= 0 && i < nConstraints);
369  return DofOrder::ALGEBRAIC;
370  };
371 
372  virtual void
373  SetValue(DataManager *pDM,
375  SimulationEntity::Hints *ph = 0);
376 
377  virtual Hint *
378  ParseHint(DataManager *pDM, const char *s) const;
379 
380  virtual void
382  const VectorHandler& XP);
383 
384  virtual void
386  const VectorHandler& XP, const VectorHandler& XPP);
387 
388  void
389  WorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
390  *piNumCols = *piNumRows = 6 + nConstraints ;
391  };
392 
395  doublereal dCoef,
396  const VectorHandler& XCurr,
397  const VectorHandler& XPrimeCurr);
398 
400  AssRes(SubVectorHandler& WorkVec,
401  doublereal dCoef,
402  const VectorHandler& XCurr,
403  const VectorHandler& XPrimeCurr);
404 
405  /* inverse dynamics capable element */
406  virtual bool bInverseDynamics(void) const;
407 
408  /* inverse dynamics Jacobian matrix assembly */
411  const VectorHandler& XCurr);
412 
413  /* inverse dynamics residual assembly */
415  AssRes(SubVectorHandler& WorkVec,
416  const VectorHandler& XCurr,
417  const VectorHandler& XPrimeCurr,
418  const VectorHandler& XPrimePrimeCurr,
420 
421  /* Inverse Dynamics update */
422  virtual void Update(const VectorHandler& XCurr,
424 
425 
426  DofOrder::Order GetEqType(unsigned int i) const;
427 
428  void OutputPrepare(OutputHandler &OH);
429  void Output(OutputHandler& OH) const;
430 
431  /* funzioni usate nell'assemblaggio iniziale */
432 
433  virtual unsigned int
434  iGetInitialNumDof(void) const {
435  return 2*nConstraints;
436  };
437  virtual void
438  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
439  *piNumCols = *piNumRows = 12 + 2*nConstraints;
440  };
441 
442  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
445  const VectorHandler& XCurr);
446 
447  /* Contributo al residuo durante l'assemblaggio iniziale */
450  const VectorHandler& XCurr);
451 
452  /* Dati privati */
453  virtual unsigned int iGetNumPrivData(void) const;
454  virtual unsigned int iGetPrivDataIdx(const char *s) const;
455  virtual doublereal dGetPrivData(unsigned int i) const;
456 
457  /* *******PER IL SOLUTORE PARALLELO******** */
458  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
459  * utile per l'assemblaggio della matrice di connessione fra i dofs */
460  virtual void
461  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const {
462  connectedNodes.resize(1);
463  connectedNodes[0] = pNode;
464  };
465  /* ************************************************ */
466 };
467 
468 /* TotalPinJoint - end */
469 
470 
471 
472 
473 /****************************************/
474 /****************************************/
475 /* TOTAL FORCE */
476 /****************************************/
477 /****************************************/
478 
479 #include "force.h"
480 
481 /* Total Force: begin */
482 class TotalForce : virtual public Elem, public Force {
483 private:
492 
494 
496 
497  mutable Vec3 M;
498  mutable Vec3 F;
499 
500 public:
501  TotalForce(unsigned int uL,
502  TplDriveCaller<Vec3> *const pDCForce,
503  TplDriveCaller<Vec3> *const pDCCouple,
504  const StructNode* pN1,
505  const Vec3& f1Tmp, const Mat3x3& R1hTmp, const Mat3x3& R1hrTmp,
506  const StructNode* pN2,
507  const Vec3& f2Tmp, const Mat3x3& R2hTmp, const Mat3x3& R2hrTmp,
508  flag fOut);
509 
510  ~TotalForce(void) {
511  NO_OP;
512  };
513 
514  /* Force Type */
515  virtual Force::Type GetForceType(void) const {
517  };
518 
519  virtual std::ostream& Restart(std::ostream& out) const;
520 
521  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
522  *piNumRows = 12;
523  *piNumCols = 6;
524  };
525 
527  doublereal dCoef,
528  const VectorHandler& XCurr,
529  const VectorHandler& XPrimeCurr);
530 
532  doublereal dCoef,
533  const VectorHandler& XCurr,
534  const VectorHandler& XPrimeCurr);
535 
536  /* inverse dynamics capable element */
537  virtual bool bInverseDynamics(void) const;
538 
539  /* Inverse Dynamics*/
541  const VectorHandler& /* XCurr */ ,
542  const VectorHandler& /* XPrimeCurr */ ,
543  const VectorHandler& /* XPrimePrimeCurr */ ,
545 
546  virtual void Output(OutputHandler& OH) const;
547 
548  virtual void InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
549  *piNumRows = 24;
550  *piNumCols = 12;
551  };
552  virtual VariableSubMatrixHandler&
554  const VectorHandler& XCurr);
555 
556  virtual SubVectorHandler&
558  const VectorHandler& XCurr);
559 };
560 
561 /* Total Force: end */
562 
563 #endif // TOTALJ_H
Mat3x3 R2h
Definition: totalj.h:54
Definition: hint.h:38
Mat3x3 R1hr
Definition: totalj.h:52
unsigned int iVelEqIndex[3]
Definition: totalj.h:299
unsigned int iVelEqIndex[3]
Definition: totalj.h:83
DofOrder::Order GetEqType(unsigned int i) const
Definition: totalj.cc:1469
Mat3x3 Rchr
Definition: totalj.h:265
Mat3x3 R2hr
Definition: totalj.h:491
virtual std::ostream & Restart(std::ostream &out) const
Definition: totalj.cc:753
virtual unsigned int iGetInitialNumDof(void) const
Definition: totalj.h:220
Mat3x3 R1h
Definition: totalj.h:51
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: totalj.h:247
~TotalPinJoint(void)
Definition: totalj.cc:2202
bool bVelActive[3]
Definition: totalj.h:59
Type
Definition: joint.h:66
Mat3x3 R1hr
Definition: totalj.h:488
~TotalForce(void)
Definition: totalj.h:510
virtual std::ostream & Restart(std::ostream &out) const
Definition: totalj.cc:2774
unsigned int iAgvIncid[3]
Definition: totalj.h:295
virtual void Output(OutputHandler &OH) const
Definition: totalj.cc:3767
virtual unsigned int iGetNumDof(void) const
Definition: totalj.h:129
long int flag
Definition: mbdyn.h:43
bool bPosActive[3]
Definition: totalj.h:269
Mat3x3 Rch
Definition: totalj.h:264
TplDriveOwner< Vec3 > XPDrv
Definition: totalj.h:279
Definition: matvec3.h:98
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: totalj.h:438
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: totalj.cc:834
virtual std::ostream & DescribeDof(std::ostream &out, const char *prefix="", bool bInitial=false) const
Definition: totalj.cc:188
Type
Definition: force.h:50
bool bRotActive[3]
Definition: totalj.h:270
Vec3 f1
Definition: totalj.h:50
SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: totalj.cc:1060
virtual doublereal dGetPrivData(unsigned int i) const
Definition: totalj.cc:3675
unsigned int nRotConstraints
Definition: totalj.h:288
unsigned int nAgvConstraints
Definition: totalj.h:290
virtual Hint * ParseHint(DataManager *pDM, const char *s) const
Definition: totalj.cc:649
TplDriveOwner< Vec3 > OmegaPDrv
Definition: totalj.h:68
unsigned int nPosConstraints
Definition: totalj.h:71
virtual bool bInverseDynamics(void) const
Definition: totalj.cc:1200
unsigned int nVelConstraints
Definition: totalj.h:73
TplDriveOwner< Vec3 > ThetaDrv
Definition: totalj.h:66
Mat3x3 tilde_Rnh
Definition: totalj.h:267
TotalForce(unsigned int uL, TplDriveCaller< Vec3 > *const pDCForce, TplDriveCaller< Vec3 > *const pDCCouple, const StructNode *pN1, const Vec3 &f1Tmp, const Mat3x3 &R1hTmp, const Mat3x3 &R1hrTmp, const StructNode *pN2, const Vec3 &f2Tmp, const Mat3x3 &R2hTmp, const Mat3x3 &R2hrTmp, flag fOut)
Definition: totalj.cc:3746
unsigned int iPosIncid[3]
Definition: totalj.h:76
unsigned int nVelConstraints
Definition: totalj.h:289
virtual Joint::Type GetJointType(void) const
Definition: totalj.h:337
virtual std::ostream & DescribeDof(std::ostream &out, const char *prefix="", bool bInitial=false) const
Definition: totalj.cc:2208
Definition: force.h:46
const StructNode * pNode2
Definition: totalj.h:49
bool bVelActive[3]
Definition: totalj.h:271
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: totalj.h:548
#define NO_OP
Definition: myassert.h:74
Vec3 tilde_fn
Definition: totalj.h:266
std::vector< Hint * > Hints
Definition: simentity.h:89
void OutputPrepare(OutputHandler &OH)
Definition: totalj.cc:3293
Vec3 tilde_f1
Definition: totalj.h:86
SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: totalj.cc:3877
TplDriveOwner< Vec3 > XPPDrv
Definition: totalj.h:64
unsigned int iRotEqIndex[3]
Definition: totalj.h:82
TplDriveOwner< Vec3 > MDrv
Definition: totalj.h:495
unsigned int iPosIncid[3]
Definition: totalj.h:292
Vec3 ThetaDeltaRemnant
Definition: totalj.h:314
virtual std::ostream & Restart(std::ostream &out) const
Definition: totalj.cc:3776
unsigned int iVelIncid[3]
Definition: totalj.h:294
Vec3 ThetaDelta
Definition: totalj.h:97
unsigned int iAgvIncid[3]
Definition: totalj.h:79
void OutputPrepare(OutputHandler &OH)
Definition: totalj.cc:1478
void Update(const VectorHandler &XCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
Definition: totalj.cc:1455
unsigned int iPosEqIndex[3]
Definition: totalj.h:297
TplDriveOwner< Vec3 > OmegaPDrv
Definition: totalj.h:284
Mat3x3 tilde_Rnhr
Definition: totalj.h:268
virtual Hint * ParseHint(DataManager *pDM, const char *s) const
Definition: totalj.cc:2667
TplDriveOwner< Vec3 > OmegaDrv
Definition: totalj.h:283
Vec3 ThetaDeltaPrev
Definition: totalj.h:312
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: totalj.cc:2850
SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: totalj.cc:2936
const StructNode * pNode
Definition: totalj.h:262
bool bRotActive[3]
Definition: totalj.h:57
TotalPinJoint(unsigned int uL, const DofOwner *pDO, bool bPos[3], bool bVel[3], TplDriveCaller< Vec3 > *const pDCPos[3], bool bRot[3], bool bAgv[3], TplDriveCaller< Vec3 > *const pDCRot[3], const Vec3 &XcTmp, const Mat3x3 &RchTmp, const Mat3x3 &RchrTmp, const StructNode *pN, const Vec3 &fnTmp, const Mat3x3 &RnhTmp, const Mat3x3 &RnhrTmp, flag fOut)
Definition: totalj.cc:2075
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: totalj.h:521
unsigned int iAgvEqIndex[3]
Definition: totalj.h:300
unsigned int nAgvConstraints
Definition: totalj.h:74
const StructNode * pNode2
Definition: totalj.h:485
Vec3 ThetaDeltaRemnant
Definition: totalj.h:100
virtual void Update(const VectorHandler &XCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
Definition: totalj.cc:3267
Mat3x3 R2hr
Definition: totalj.h:55
VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: totalj.cc:3367
TplDriveOwner< Vec3 > XPDrv
Definition: totalj.h:63
virtual Force::Type GetForceType(void) const
Definition: totalj.h:515
TplDriveOwner< Vec3 > XPPDrv
Definition: totalj.h:280
unsigned int iAgvEqIndex[3]
Definition: totalj.h:84
DofOrder::Order GetEqType(unsigned int i) const
Definition: totalj.cc:3284
bool bAgvActive[3]
Definition: totalj.h:60
const StructNode * pNode1
Definition: totalj.h:48
void Output(OutputHandler &OH) const
Definition: totalj.cc:1504
virtual bool bInverseDynamics(void) const
Definition: totalj.cc:3060
unsigned int iRotEqIndex[3]
Definition: totalj.h:298
Vec3 f2
Definition: totalj.h:489
virtual Joint::Type GetJointType(void) const
Definition: totalj.h:124
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
Definition: totalj.cc:2744
Vec3 ThetaDeltaTrue
Definition: totalj.h:101
#define ASSERT(expression)
Definition: colamd.c:977
virtual unsigned int iGetInitialNumDof(void) const
Definition: totalj.h:434
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: totalj.cc:3795
TplDriveOwner< Vec3 > OmegaDrv
Definition: totalj.h:67
virtual bool bInverseDynamics(void) const
Definition: totalj.cc:3928
Vec3 F
Definition: totalj.h:498
~TotalJoint(void)
Definition: totalj.cc:182
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: totalj.h:461
Vec3 tilde_Xc
Definition: totalj.h:275
Vec3 M
Definition: totalj.h:95
unsigned int nRotConstraints
Definition: totalj.h:72
Vec3 ThetaDelta
Definition: totalj.h:311
virtual unsigned int iGetNumDof(void) const
Definition: totalj.h:342
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: totalj.h:177
TplDriveOwner< Vec3 > XDrv
Definition: totalj.h:62
virtual std::ostream & DescribeEq(std::ostream &out, const char *prefix="", bool bInitial=false) const
Definition: totalj.cc:2382
virtual unsigned int iGetPrivDataIdx(const char *s) const
Definition: totalj.cc:1924
unsigned int nPosConstraints
Definition: totalj.h:287
virtual void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
Definition: totalj.cc:563
Definition: elem.h:75
virtual unsigned int iGetNumPrivData(void) const
Definition: totalj.cc:3600
TotalJoint(unsigned int uL, const DofOwner *pDO, bool bPos[3], bool bVel[3], TplDriveCaller< Vec3 > *const pDCPos[3], bool bRot[3], bool bAgv[3], TplDriveCaller< Vec3 > *const pDCRot[3], const StructNode *pN1, const Vec3 &f1Tmp, const Mat3x3 &R1hTmp, const Mat3x3 &R1hrTmp, const StructNode *pN2, const Vec3 &f2Tmp, const Mat3x3 &R2hTmp, const Mat3x3 &R2hrTmp, flag fOut)
Definition: totalj.cc:51
VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: totalj.cc:1559
virtual doublereal dGetPrivData(unsigned int i) const
Definition: totalj.cc:1993
Mat3x3 R2h
Definition: totalj.h:490
Mat3x3 RchT
Definition: totalj.h:274
Vec3 ThetaDeltaPrev
Definition: totalj.h:98
void Output(OutputHandler &OH) const
Definition: totalj.cc:3319
unsigned int iVelIncid[3]
Definition: totalj.h:78
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: totalj.cc:4081
bool bAgvActive[3]
Definition: totalj.h:272
Definition: joint.h:50
unsigned int iRotIncid[3]
Definition: totalj.h:293
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: totalj.h:389
unsigned int nConstraints
Definition: totalj.h:70
virtual unsigned int iGetPrivDataIdx(const char *s) const
Definition: totalj.cc:3606
Vec3 ThetaDeltaTrue
Definition: totalj.h:315
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: totalj.h:224
Vec3 F
Definition: totalj.h:96
unsigned int nConstraints
Definition: totalj.h:286
TplDriveOwner< Vec3 > ThetaDrv
Definition: totalj.h:282
double doublereal
Definition: colamd.c:52
unsigned int iRotIncid[3]
Definition: totalj.h:77
long int integer
Definition: colamd.c:51
SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: totalj.cc:3501
TplDriveOwner< Vec3 > XDrv
Definition: totalj.h:278
Vec3 M
Definition: totalj.h:497
virtual void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
Definition: totalj.cc:2581
Vec3 f2
Definition: totalj.h:53
const StructNode * pNode1
Definition: totalj.h:484
TplDriveOwner< Vec3 > FDrv
Definition: totalj.h:493
Mat3x3 R1h
Definition: totalj.h:487
unsigned int iPosEqIndex[3]
Definition: totalj.h:81
DofOrder::Order GetDofType(unsigned int i) const
Definition: totalj.h:367
SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: totalj.cc:1796
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
Definition: totalj.cc:726
bool bPosActive[3]
Definition: totalj.h:56
virtual unsigned int iGetNumPrivData(void) const
Definition: totalj.cc:1918
DofOrder::Order GetDofType(unsigned int i) const
Definition: totalj.h:154
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: totalj.cc:3989
Mat3x3 RchrT
Definition: totalj.h:276
Vec3 f1
Definition: totalj.h:486
virtual std::ostream & DescribeEq(std::ostream &out, const char *prefix="", bool bInitial=false) const
Definition: totalj.cc:362