MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
vehj3.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/struct/vehj3.h,v 1.34 2017/07/23 15:09:35 zanoni 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 /* Deformable hinges */
33 
34 #ifndef VEHJ3_H
35 #define VEHJ3_H
36 
37 #include "joint.h"
38 #include "constltp.h"
39 
40 
41 /* DeformableJoint - begin */
42 
44 virtual public Elem, public Joint, public ConstitutiveLaw6DOwner {
45 protected:
48  mutable Vec3 tilde_f1;
49  mutable Vec3 tilde_f2;
50  mutable Mat3x3 tilde_R1h;
51  mutable Mat3x3 tilde_R2h;
52 
54 
55  // tilde_d, tilde_ThetaCurr
57 
58  // tilde_dPrime, tilde_Omega
60 
61 #ifdef USE_NETCDF
62  NcVar *Var_tilde_d;
63  NcVar *Var_tilde_dPrime;
64  NcVar *Var_d;
65  NcVar *Var_dPrime;
66  NcVar *Var_Phi;
67  NcVar *Var_Omega;
68 #endif // USE_NETCDF
69 
70  bool bFirstRes;
71 
75 
77 
78  // uses F, d1, d2
79  void
81  doublereal dCoef);
82 
83  // uses d1, d2
84  void
86  doublereal dCoef, const Mat6x6& FDE);
87 
88  // uses d1, d2, d1Prime, d2Prime
89  void
92  doublereal dCoef, const Mat6x6& FDEPrime);
93 
94  virtual void
97  doublereal dCoef) = 0;
98 
99  virtual void
100  AssVec(SubVectorHandler& WorkVec) = 0;
101 
102 public:
103  /* Costruttore non banale */
104  DeformableJoint(unsigned int uL,
105  const DofOwner* pDO,
106  const ConstitutiveLaw6D* pCL,
107  const StructNode* pN1,
108  const StructNode* pN2,
109  const Vec3& tilde_f1,
110  const Vec3& tilde_f2,
111  const Mat3x3& tilde_R1h,
112  const Mat3x3& tilde_R2h,
113  const OrientationDescription& od,
114  flag fOut);
115 
116  /* Distruttore */
117  virtual ~DeformableJoint(void);
118 
119  /* Tipo di Joint */
120  virtual Joint::Type GetJointType(void) const {
121  return Joint::DEFORMABLEJOINT;
122  };
123 
124  /* Contributo al file di restart */
125  virtual std::ostream& Restart(std::ostream& out) const;
126 
127  void OutputPrepare(OutputHandler& OH);
128  virtual void Output(OutputHandler& OH) const;
129 
130  void SetValue(DataManager *pDM,
132  SimulationEntity::Hints *ph = 0);
133 
134  virtual Hint *
135  ParseHint(DataManager *pDM, const char *s) const;
136 
137  /* inverse dynamics capable element */
138  virtual bool bInverseDynamics(void) const;
139 
140  /* Tipo di DeformableJoint */
141  virtual ConstLawType::Type GetConstLawType(void) const = 0;
142 
143  virtual unsigned int iGetNumDof(void) const {
144  return 0;
145  };
146 
147  virtual DofOrder::Order GetDofType(unsigned int /* i */ ) const {
148  return DofOrder::UNKNOWN;
149  };
150 
151  virtual void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
152  *piNumRows = 12;
153  *piNumCols = 12;
154  };
155 
156  /* funzioni usate nell'assemblaggio iniziale */
157 
158  virtual unsigned int iGetInitialNumDof(void) const {
159  return 0;
160  };
161 
162  virtual unsigned int iGetNumPrivData(void) const;
163  virtual unsigned int iGetPrivDataIdx(const char *s) const;
164  virtual doublereal dGetPrivData(unsigned int i) const;
165 
166  /* *******PER IL SOLUTORE PARALLELO******** */
167  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
168  utile per l'assemblaggio della matrice di connessione fra i dofs */
169  virtual void GetConnectedNodes(std::vector<const Node *>& connectedNodes) const {
170  connectedNodes.resize(2);
171  connectedNodes[0] = pNode1;
172  connectedNodes[1] = pNode2;
173  };
174  /* ************************************************ */
175 
176  /* assemblaggio jacobiano */
177  virtual VariableSubMatrixHandler&
179  doublereal dCoef,
180  const VectorHandler& XCurr,
181  const VectorHandler& XPrimeCurr);
182 
183  /* assemblaggio jacobiano */
184  virtual void
186  VariableSubMatrixHandler& WorkMatB,
187  const VectorHandler& XCurr,
188  const VectorHandler& XPrimeCurr);
189 
190  /* assemblaggio residuo */
191  virtual SubVectorHandler&
192  AssRes(SubVectorHandler& WorkVec,
193  doublereal dCoef,
194  const VectorHandler& XCurr,
195  const VectorHandler& XPrimeCurr);
196 
197  /* Inverse Dynamics residual assembly */
199  AssRes(SubVectorHandler& WorkVec,
200  const VectorHandler& XCurr,
201  const VectorHandler& XPrimeCurr,
202  const VectorHandler& XPrimePrimeCurr,
204 
205  /* Contributo al residuo durante l'assemblaggio iniziale */
206  virtual SubVectorHandler&
207  InitialAssRes(SubVectorHandler& WorkVec, const VectorHandler& XCurr);
208 };
209 
210 /* DeformableJoint - end */
211 
212 
213 /* ElasticJoint - begin */
214 
215 class ElasticJoint : virtual public Elem, public DeformableJoint {
216 protected:
218 
220 
221  void AssMats(FullSubMatrixHandler& WMA,
223  doublereal dCoef);
224  void AssVec(SubVectorHandler& WorkVec);
225 
226 public:
227  ElasticJoint(unsigned int uL,
228  const DofOwner* pDO,
229  const ConstitutiveLaw6D* pCL,
230  const StructNode* pN1,
231  const StructNode* pN2,
232  const Vec3& tilde_f1,
233  const Vec3& tilde_f2,
234  const Mat3x3& tilde_R1h,
235  const Mat3x3& tilde_R2h,
236  const OrientationDescription& od,
237  flag fOut);
238 
239  ~ElasticJoint(void);
240 
241  /* Tipo di DeformableDispHinge */
242  virtual ConstLawType::Type GetConstLawType(void) const {
243  return ConstLawType::ELASTIC;
244  };
245 
246  virtual void
247  AfterConvergence(const VectorHandler& X, const VectorHandler& XP);
248 
249  /* assemblaggio jacobiano */
250  virtual void
252  VariableSubMatrixHandler& WorkMatB,
253  const VectorHandler& XCurr,
254  const VectorHandler& XPrimeCurr);
255 
256  /* Inverse Dynamics Jacobian matrix assembly */
259  const VectorHandler& XCurr);
260 
261  /* Aggiorna le deformazioni ecc. */
262  virtual void AfterPredict(VectorHandler& X, VectorHandler& XP);
263 
264  /* Inverse Dynamics update */
266 
267  virtual void AfterConvergence(const VectorHandler& X,
268  const VectorHandler& XP,
269  const VectorHandler& XPP);
270 
271  virtual void
272  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
273  *piNumRows = 12;
274  *piNumCols = 12;
275  };
276 
277  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
278  virtual VariableSubMatrixHandler&
280  const VectorHandler& XCurr);
281 
282 #ifdef MBDYN_X_WORKAROUND_GCC_3_2
283  virtual void SetValue(DataManager *pDM,
285  SimulationEntity::Hints *ph = 0)
286  {
287  DeformableJoint::SetValue(pDM, X, XP, ph);
288  };
289 
290  virtual Hint *
291  ParseHint(DataManager *pDM, const char *s) const
292  {
293  return DeformableJoint::ParseHint(pDM, s);
294  };
295 
296  virtual unsigned int
297  iGetNumPrivData(void) const {
299  };
300 
301  virtual unsigned int
302  iGetPrivDataIdx(const char *s) const {
304  };
305 
306  virtual doublereal
307  dGetPrivData(unsigned int i) const {
308  return dGetPrivData(i);
309  };
310 #endif /* MBDYN_X_WORKAROUND_GCC_3_2 */
311 };
312 
313 /* ElasticJoint - end */
314 
315 /* ElasticJointInv - begin */
316 
317 class ElasticJointInv : virtual public Elem, public DeformableJoint {
318 protected:
320 
322 
323  void AssMats(FullSubMatrixHandler& WMA,
325  doublereal dCoef);
326  void AssVec(SubVectorHandler& WorkVec);
327 
328 public:
329  ElasticJointInv(unsigned int uL,
330  const DofOwner* pDO,
331  const ConstitutiveLaw6D* pCL,
332  const StructNode* pN1,
333  const StructNode* pN2,
334  const Vec3& tilde_f1,
335  const Vec3& tilde_f2,
336  const Mat3x3& tilde_R1h,
337  const Mat3x3& tilde_R2h,
338  const OrientationDescription& od,
339  flag fOut);
340 
341  ~ElasticJointInv(void);
342 
343  /* Tipo di DeformableDispHinge */
344  virtual ConstLawType::Type GetConstLawType(void) const {
345  return ConstLawType::ELASTIC;
346  };
347 
348  virtual void
349  AfterConvergence(const VectorHandler& X, const VectorHandler& XP);
350 
351  /* assemblaggio jacobiano */
352  virtual void
354  VariableSubMatrixHandler& WorkMatB,
355  const VectorHandler& XCurr,
356  const VectorHandler& XPrimeCurr);
357 
358  /* Aggiorna le deformazioni ecc. */
359  virtual void AfterPredict(VectorHandler& X, VectorHandler& XP);
360 
361  virtual void
362  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
363  *piNumRows = 12;
364  *piNumCols = 12;
365  };
366 
367  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
368  virtual VariableSubMatrixHandler&
370  const VectorHandler& XCurr);
371 
372 #ifdef MBDYN_X_WORKAROUND_GCC_3_2
373  virtual void SetValue(DataManager *pDM,
375  SimulationEntity::Hints *ph = 0)
376  {
377  DeformableJoint::SetValue(pDM, X, XP, ph);
378  };
379 
380  virtual Hint *
381  ParseHint(DataManager *pDM, const char *s) const
382  {
383  return DeformableJoint::ParseHint(pDM, s);
384  };
385 
386  virtual unsigned int
387  iGetNumPrivData(void) const {
389  };
390 
391  virtual unsigned int
392  iGetPrivDataIdx(const char *s) const {
394  };
395 
396  virtual doublereal
397  dGetPrivData(unsigned int i) const {
398  return dGetPrivData(i);
399  };
400 #endif /* MBDYN_X_WORKAROUND_GCC_3_2 */
401 };
402 
403 /* ElasticJoint - end */
404 
405 /* ViscousJoint - begin */
406 
407 class ViscousJoint : virtual public Elem, public DeformableJoint {
408 protected:
410 
411  void AssMats(FullSubMatrixHandler& WMA,
413  doublereal dCoef);
414  void AssVec(SubVectorHandler& WorkVec);
415 
416 public:
417  ViscousJoint(unsigned int uL,
418  const DofOwner* pDO,
419  const ConstitutiveLaw6D* pCL,
420  const StructNode* pN1,
421  const StructNode* pN2,
422  const Vec3& tilde_f1,
423  const Vec3& tilde_f2,
424  const Mat3x3& tilde_R1,
425  const Mat3x3& tilde_R2,
426  const OrientationDescription& od,
427  flag fOut);
428 
429  ~ViscousJoint(void);
430 
431  /* Tipo di DeformableDispHinge */
432  virtual ConstLawType::Type GetConstLawType(void) const {
433  return ConstLawType::VISCOUS;
434  };
435 
436  virtual void
437  AfterConvergence(const VectorHandler& X, const VectorHandler& XP);
438 
439  /* Aggiorna le deformazioni ecc. */
440  virtual void AfterPredict(VectorHandler& X, VectorHandler& XP);
441 
442  /* Aggiorna le deformazioni ecc. */
443  virtual void
444  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
445  *piNumRows = 12;
446  *piNumCols = 12;
447  };
448 
449  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
450  virtual VariableSubMatrixHandler&
452  const VectorHandler& XCurr);
453 
454 #ifdef MBDYN_X_WORKAROUND_GCC_3_2
455  virtual void SetValue(DataManager *pDM,
457  SimulationEntity::Hints *ph = 0)
458  {
459  DeformableJoint::SetValue(pDM, X, XP, ph);
460  };
461 
462  virtual Hint *
463  ParseHint(DataManager *pDM, const char *s) const
464  {
465  return DeformableJoint::ParseHint(pDM, s);
466  };
467 
468  virtual unsigned int
469  iGetNumPrivData(void) const {
471  };
472 
473  virtual unsigned int
474  iGetPrivDataIdx(const char *s) const {
476  };
477 
478  virtual doublereal
479  dGetPrivData(unsigned int i) const {
480  return dGetPrivData(i);
481  };
482 #endif /* MBDYN_X_WORKAROUND_GCC_3_2 */
483 };
484 
485 /* ViscousJoint - end */
486 
487 
488 /* ViscoElasticJoint - begin */
489 
491 : virtual public Elem, public DeformableJoint {
492 protected:
494 
497 
498  void AssMats(FullSubMatrixHandler& WorkMatA,
499  FullSubMatrixHandler& WorkMatB,
500  doublereal dCoef);
501  void AssVec(SubVectorHandler& WorkVec);
502 
503 public:
504  ViscoElasticJoint(unsigned int uL,
505  const DofOwner* pDO,
506  const ConstitutiveLaw6D* pCL,
507  const StructNode* pN1,
508  const StructNode* pN2,
509  const Vec3& tilde_f1,
510  const Vec3& tilde_f2,
511  const Mat3x3& tilde_R1,
512  const Mat3x3& tilde_R2,
513  const OrientationDescription& od,
514  flag fOut);
515 
516  ~ViscoElasticJoint(void);
517 
518  /* Tipo di DeformableDispHinge */
519  virtual ConstLawType::Type GetConstLawType(void) const {
521  };
522 
523  virtual void
524  AfterConvergence(const VectorHandler& X, const VectorHandler& XP);
525 
526  /* Aggiorna le deformazioni ecc. */
527  virtual void AfterPredict(VectorHandler& X, VectorHandler& XP);
528 
529  /* Aggiorna le deformazioni ecc. */
530  virtual void
531  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
532  *piNumRows = 12;
533  *piNumCols = 12;
534  };
535 
536  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
537  virtual VariableSubMatrixHandler&
539  const VectorHandler& XCurr);
540 
541 #ifdef MBDYN_X_WORKAROUND_GCC_3_2
542  virtual void SetValue(DataManager *pDM,
544  SimulationEntity::Hints *ph = 0)
545  {
546  DeformableJoint::SetValue(pDM, X, XP, ph);
547  };
548 
549  virtual Hint *
550  ParseHint(DataManager *pDM, const char *s) const
551  {
552  return DeformableJoint::ParseHint(pDM, s);
553  };
554 
555  virtual unsigned int
556  iGetNumPrivData(void) const {
558  };
559 
560  virtual unsigned int
561  iGetPrivDataIdx(const char *s) const {
563  };
564 
565  virtual doublereal
566  dGetPrivData(unsigned int i) const {
567  return dGetPrivData(i);
568  };
569 #endif /* MBDYN_X_WORKAROUND_GCC_3_2 */
570 };
571 
572 /* ViscoElasticJoint - end */
573 
574 
575 #endif /* VEHJ3_H */
576 
Definition: hint.h:38
void OutputPrepare(OutputHandler &OH)
Definition: vehj3.cc:119
void AssMatElastic(FullSubMatrixHandler &WM, doublereal dCoef, const Mat6x6 &FDE)
Definition: vehj3.cc:490
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: vehj3.cc:890
virtual ConstLawType::Type GetConstLawType(void) const
Definition: vehj3.h:432
virtual bool bInverseDynamics(void) const
Definition: vehj3.cc:278
Type
Definition: joint.h:66
Vec3 d2Prime
Definition: vehj3.h:73
virtual Joint::Type GetJointType(void) const
Definition: vehj3.h:120
virtual std::ostream & Restart(std::ostream &out) const
Definition: vehj3.cc:104
virtual void AssVec(SubVectorHandler &WorkVec)=0
long int flag
Definition: mbdyn.h:43
void AssMatViscous(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef, const Mat6x6 &FDEPrime)
Definition: vehj3.cc:543
Definition: matvec3.h:98
OrientationDescription od
Definition: vehj3.h:53
Vec6 tilde_k
Definition: vehj3.h:56
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: vehj3.cc:783
void AssMats(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)
Definition: vehj3.cc:1230
Mat3x3 tilde_R2h
Definition: vehj3.h:51
virtual unsigned int iGetNumDof(void) const
Definition: vehj3.h:143
void AssVec(SubVectorHandler &WorkVec)
Definition: vehj3.cc:1091
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj3.h:444
Mat6x6 FDE
Definition: vehj3.h:321
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
Definition: vehj3.cc:840
~ViscoElasticJoint(void)
Definition: vehj3.cc:1354
OrientationDescription
Definition: matvec3.h:1597
virtual ConstLawType::Type GetConstLawType(void) const
Definition: vehj3.h:519
Vec3 tilde_f2
Definition: vehj3.h:49
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj3.h:151
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: vehj3.cc:721
std::vector< Hint * > Hints
Definition: simentity.h:89
ElasticJointInv(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw6D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1h, const Mat3x3 &tilde_R2h, const OrientationDescription &od, flag fOut)
Definition: vehj3.cc:1014
Mat6x6 FDE
Definition: vehj3.h:219
Mat3x3 R1h
Definition: vehj3.h:74
virtual ConstLawType::Type GetConstLawType(void) const
Definition: vehj3.h:242
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: vehj3.cc:1163
virtual void AfterPredict(VectorHandler &X, VectorHandler &XP)
Definition: vehj3.cc:946
~ElasticJointInv(void)
Definition: vehj3.cc:1036
Mat3x3 tilde_R1h
Definition: vehj3.h:50
Vec3 d1Prime
Definition: vehj3.h:73
virtual doublereal dGetPrivData(unsigned int i) const
Definition: vehj3.cc:393
Definition: matvec6.h:37
void AssVec(SubVectorHandler &WorkVec)
Definition: vehj3.cc:918
virtual unsigned int iGetNumPrivData(void) const
Definition: vehj3.cc:322
void AssMats(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)
Definition: vehj3.cc:1082
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
Definition: vehj3.cc:1042
ViscoElasticJoint(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw6D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1, const Mat3x3 &tilde_R2, const OrientationDescription &od, flag fOut)
Definition: vehj3.cc:1331
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: vehj3.cc:1297
void Update(const VectorHandler &XCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
Definition: vehj3.cc:904
ViscousJoint(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw6D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1, const Mat3x3 &tilde_R2, const OrientationDescription &od, flag fOut)
Definition: vehj3.cc:1196
~ViscousJoint(void)
Definition: vehj3.cc:1217
virtual ConstLawType::Type GetConstLawType(void) const =0
void AssVec(SubVectorHandler &WorkVec)
Definition: vehj3.cc:1376
virtual void AfterPredict(VectorHandler &X, VectorHandler &XP)
Definition: vehj3.cc:1126
Vec3 ThetaRef
Definition: vehj3.h:217
Vec3 tilde_f1
Definition: vehj3.h:48
virtual ConstLawType::Type GetConstLawType(void) const
Definition: vehj3.h:344
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: vehj3.cc:648
virtual Hint * ParseHint(DataManager *pDM, const char *s) const
Definition: vehj3.cc:284
Vec3 ThetaRef
Definition: vehj3.h:319
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj3.h:272
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj3.h:362
void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
Definition: vehj3.cc:236
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: vehj3.cc:981
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: vehj3.h:169
Definition: elem.h:75
virtual ~DeformableJoint(void)
Definition: vehj3.cc:96
virtual unsigned int iGetPrivDataIdx(const char *s) const
Definition: vehj3.cc:328
virtual DofOrder::Order GetDofType(unsigned int) const
Definition: vehj3.h:147
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
Definition: vehj3.cc:1223
void AssMats(FullSubMatrixHandler &WorkMatA, FullSubMatrixHandler &WorkMatB, doublereal dCoef)
Definition: vehj3.cc:1367
Mat6x6 FDEPrime
Definition: vehj3.h:409
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
Definition: vehj3.cc:1360
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj3.h:531
Definition: joint.h:50
virtual void Output(OutputHandler &OH) const
Definition: vehj3.cc:143
Mat6x6 FDEPrime
Definition: vehj3.h:496
double doublereal
Definition: colamd.c:52
Mat6x6 FDE
Definition: vehj3.h:495
const StructNode * pNode2
Definition: vehj3.h:47
long int integer
Definition: colamd.c:51
void AssMatCommon(FullSubMatrixHandler &WM, doublereal dCoef)
Definition: vehj3.cc:461
virtual void AfterPredict(VectorHandler &X, VectorHandler &XP)
Definition: vehj3.cc:1267
void AssVec(SubVectorHandler &WorkVec)
Definition: vehj3.cc:1238
const StructNode * pNode1
Definition: vehj3.h:46
void AssMats(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)
Definition: vehj3.cc:880
DeformableJoint(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw6D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1h, const Mat3x3 &tilde_R2h, const OrientationDescription &od, flag fOut)
Definition: vehj3.cc:57
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: vehj3.cc:1455
~ElasticJoint(void)
Definition: vehj3.cc:834
ElasticJoint(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw6D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1h, const Mat3x3 &tilde_R2h, const OrientationDescription &od, flag fOut)
Definition: vehj3.cc:812
bool bFirstRes
Definition: vehj3.h:70
virtual void AfterPredict(VectorHandler &X, VectorHandler &XP)
Definition: vehj3.cc:1410
virtual void AssMats(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)=0
virtual unsigned int iGetInitialNumDof(void) const
Definition: vehj3.h:158
Vec6 tilde_kPrime
Definition: vehj3.h:59