MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
vehj2.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/struct/vehj2.h,v 1.48 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 VEHJ2_H
35 #define VEHJ2_H
36 
37 #include "joint.h"
38 #include "constltp.h"
39 
40 
41 /* DeformableDispJoint - begin */
42 
44 virtual public Elem, public Joint, public ConstitutiveLaw3DOwner {
45 protected:
48  mutable Vec3 tilde_f1;
49  mutable Vec3 tilde_f2;
50  mutable Mat3x3 tilde_R1h;
51  mutable Mat3x3 tilde_R2h;
53 
56 
57  bool bFirstRes;
58 
60 
63 
64 #ifdef USE_NETCDF
65  NcVar *Var_tilde_d;
66  NcVar *Var_tilde_dPrime;
67  NcVar *Var_d;
68  NcVar *Var_dPrime;
69 #endif // USE_NETCDF
70 
71  void
73  const Vec3& d1, const Vec3& d2, doublereal dCoef);
74  void
76  const Vec3& d1, const Vec3& d2, doublereal dCoef);
77  void
79  const Vec3& d1, const Vec3& d2, doublereal dCoef);
80 
81  virtual void
84  doublereal dCoef) = 0;
85 
86 public:
87  /* Costruttore non banale */
88  DeformableDispJoint(unsigned int uL,
89  const DofOwner* pDO,
90  const ConstitutiveLaw3D* pCL,
91  const StructNode* pN1,
92  const StructNode* pN2,
93  const Vec3& tilde_f1,
94  const Vec3& tilde_f2,
95  const Mat3x3& tilde_R1,
96  const Mat3x3& tilde_R2,
97  flag fOut);
98 
99  /* Distruttore */
100  virtual ~DeformableDispJoint(void);
101 
102  /* Tipo di Joint */
103  virtual Joint::Type GetJointType(void) const {
105  };
106 
107  /* Contributo al file di restart */
108  virtual std::ostream& Restart(std::ostream& out) const;
109 
110  void OutputPrepare(OutputHandler &OH);
111  virtual void Output(OutputHandler& OH) const;
112 
113  void SetValue(DataManager *pDM,
115  SimulationEntity::Hints *ph = 0);
116 
117  virtual Hint *
118  ParseHint(DataManager *pDM, const char *s) const;
119 
120  /* Tipo di DeformableDispHinge */
121  virtual ConstLawType::Type GetConstLawType(void) const = 0;
122 
123  virtual unsigned int iGetNumDof(void) const {
124  return 0;
125  };
126 
127  virtual DofOrder::Order GetDofType(unsigned int /* i */ ) const {
128  return DofOrder::UNKNOWN;
129  };
130 
131  virtual void
132  WorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
133  *piNumRows = 12;
134  *piNumCols = 12;
135  };
136 
137  /* inverse dynamics capable element */
138  virtual bool bInverseDynamics(void) const;
139 
140  /* funzioni usate nell'assemblaggio iniziale */
141  virtual unsigned int iGetInitialNumDof(void) const {
142  return 0;
143  };
144 
145  /* assemblaggio jacobiano */
146  virtual VariableSubMatrixHandler&
148  doublereal dCoef,
149  const VectorHandler& XCurr,
150  const VectorHandler& XPrimeCurr);
151 
152  /* assemblaggio jacobiano */
153  virtual void
155  VariableSubMatrixHandler& WorkMatB,
156  const VectorHandler& XCurr,
157  const VectorHandler& XPrimeCurr);
158 
159  virtual unsigned int iGetNumPrivData(void) const;
160  virtual unsigned int iGetPrivDataIdx(const char *s) const;
161  virtual doublereal dGetPrivData(unsigned int i) const;
162 
163  /* *******PER IL SOLUTORE PARALLELO******** */
164  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
165  * utile per l'assemblaggio della matrice di connessione fra i dofs */
166  virtual void
167  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const {
168  connectedNodes.resize(2);
169  connectedNodes[0] = pNode1;
170  connectedNodes[1] = pNode2;
171  };
172  /* ************************************************ */
173 };
174 
175 /* DeformableDispJoint - end */
176 
177 
178 /* ElasticDispJoint - begin */
179 
180 class ElasticDispJoint : virtual public Elem, public DeformableDispJoint {
181 protected:
182  void AssMats(FullSubMatrixHandler& WMA,
184  doublereal dCoef);
185  void AssVec(SubVectorHandler& WorkVec);
186 
187 public:
188  ElasticDispJoint(unsigned int uL,
189  const DofOwner* pDO,
190  const ConstitutiveLaw3D* pCL,
191  const StructNode* pN1,
192  const StructNode* pN2,
193  const Vec3& tilde_f1,
194  const Vec3& tilde_f2,
195  const Mat3x3& tilde_R1,
196  const Mat3x3& tilde_R2,
197  flag fOut);
198 
199  ~ElasticDispJoint(void);
200 
201  /* Tipo di DeformableDispHinge */
202  virtual ConstLawType::Type GetConstLawType(void) const {
203  return ConstLawType::ELASTIC;
204  };
205 
206  virtual void
207  AfterConvergence(const VectorHandler& X, const VectorHandler& XP);
208 
209  /* Aggiorna le deformazioni ecc. */
210  virtual void AfterPredict(VectorHandler& X, VectorHandler& XP);
211 
212  /* assemblaggio jacobiano */
213  virtual void
215  VariableSubMatrixHandler& WorkMatB,
216  const VectorHandler& XCurr,
217  const VectorHandler& XPrimeCurr);
218 
219  /* assemblaggio residuo */
220  virtual SubVectorHandler&
221  AssRes(SubVectorHandler& WorkVec,
222  doublereal dCoef,
223  const VectorHandler& XCurr,
224  const VectorHandler& XPrimeCurr);
225 
226  /* Inverse Dynamics Jacobian matrix assembly */
229  const VectorHandler& XCurr);
230 
231  /* Inverse Dynamics residual assembly */
233  AssRes(SubVectorHandler& WorkVec,
234  const VectorHandler& XCurr,
235  const VectorHandler& XPrimeCurr,
236  const VectorHandler& XPrimePrimeCurr,
238 
239  /* Inverse Dynamics update */
241 
242  /* Inverse Dynamics after convergence */
243  virtual void AfterConvergence(const VectorHandler& X,
244  const VectorHandler& XP,
245  const VectorHandler& XPP);
246 
247  virtual void
248  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
249  *piNumRows = 12;
250  *piNumCols = 12;
251  };
252 
253  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
254  virtual VariableSubMatrixHandler&
256  const VectorHandler& XCurr);
257 
258  /* Contributo al residuo durante l'assemblaggio iniziale */
259  virtual SubVectorHandler&
260  InitialAssRes(SubVectorHandler& WorkVec, const VectorHandler& XCurr);
261 
262 #ifdef MBDYN_X_WORKAROUND_GCC_3_2
263  virtual void SetValue(DataManager *pDM,
265  SimulationEntity::Hints *ph = 0)
266  {
267  DeformableDispJoint::SetValue(pDM, X, XP, ph);
268  };
269 
270  virtual Hint *
271  ParseHint(DataManager *pDM, const char *s) const
272  {
273  return DeformableDispJoint::ParseHint(pDM, s);
274  };
275  virtual unsigned int iGetNumPrivData(void) const {
277  };
278  virtual unsigned int iGetPrivDataIdx(const char *s) const {
280  };
281  virtual doublereal dGetPrivData(unsigned int i) const {
282  return dGetPrivData(i);
283  };
284 #endif /* MBDYN_X_WORKAROUND_GCC_3_2 */
285 
286 
287 };
288 
289 /* ElasticDispJoint - end */
290 
291 
292 /* ElasticDispJointInv - begin */
293 
294 class ElasticDispJointInv : virtual public Elem, public DeformableDispJoint {
295 protected:
296  void AssMats(FullSubMatrixHandler& WMA,
298  doublereal dCoef);
299  void AssVec(SubVectorHandler& WorkVec);
300 
301 public:
302  ElasticDispJointInv(unsigned int uL,
303  const DofOwner* pDO,
304  const ConstitutiveLaw3D* pCL,
305  const StructNode* pN1,
306  const StructNode* pN2,
307  const Vec3& tilde_f1,
308  const Vec3& tilde_f2,
309  const Mat3x3& tilde_R1,
310  const Mat3x3& tilde_R2,
311  flag fOut);
312 
313  ~ElasticDispJointInv(void);
314 
315  /* Tipo di DeformableDispHinge */
316  virtual ConstLawType::Type GetConstLawType(void) const {
317  return ConstLawType::ELASTIC;
318  };
319 
320  virtual void
321  AfterConvergence(const VectorHandler& X, const VectorHandler& XP);
322 
323  /* Aggiorna le deformazioni ecc. */
324  virtual void AfterPredict(VectorHandler& X, VectorHandler& XP);
325 
326  /* assemblaggio jacobiano */
327  virtual void
329  VariableSubMatrixHandler& WorkMatB,
330  const VectorHandler& XCurr,
331  const VectorHandler& XPrimeCurr);
332 
333  /* assemblaggio residuo */
334  virtual SubVectorHandler&
335  AssRes(SubVectorHandler& WorkVec,
336  doublereal dCoef,
337  const VectorHandler& XCurr,
338  const VectorHandler& XPrimeCurr);
339 
340  /* Inverse Dynamics residual assembly */
342  AssRes(SubVectorHandler& WorkVec,
343  const VectorHandler& XCurr,
344  const VectorHandler& XPrimeCurr,
345  const VectorHandler& XPrimePrimeCurr,
347 
348  virtual void
349  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
350  *piNumRows = 12;
351  *piNumCols = 12;
352  };
353 
354  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
355  virtual VariableSubMatrixHandler&
357  const VectorHandler& XCurr);
358 
359  /* Contributo al residuo durante l'assemblaggio iniziale */
360  virtual SubVectorHandler&
361  InitialAssRes(SubVectorHandler& WorkVec, const VectorHandler& XCurr);
362 
363 #ifdef MBDYN_X_WORKAROUND_GCC_3_2
364  virtual void SetValue(DataManager *pDM,
366  SimulationEntity::Hints *ph = 0)
367  {
368  DeformableDispJoint::SetValue(pDM, X, XP, ph);
369  };
370 
371  virtual Hint *
372  ParseHint(DataManager *pDM, const char *s) const
373  {
374  return DeformableDispJoint::ParseHint(pDM, s);
375  };
376  virtual unsigned int iGetNumPrivData(void) const {
378  };
379  virtual unsigned int iGetPrivDataIdx(const char *s) const {
381  };
382  virtual doublereal dGetPrivData(unsigned int i) const {
383  return dGetPrivData(i);
384  };
385 #endif /* MBDYN_X_WORKAROUND_GCC_3_2 */
386 
387 
388 };
389 
390 /* ElasticDispJointInv - end */
391 
392 
393 /* ViscousDispJoint - begin */
394 
395 class ViscousDispJoint : virtual public Elem, public DeformableDispJoint {
396 protected:
397  void AssMats(FullSubMatrixHandler& WMA,
399  doublereal dCoef);
400  void AssVec(SubVectorHandler& WorkVec);
401 
402 public:
403  ViscousDispJoint(unsigned int uL,
404  const DofOwner* pDO,
405  const ConstitutiveLaw3D* pCL,
406  const StructNode* pN1,
407  const StructNode* pN2,
408  const Vec3& tilde_f1,
409  const Vec3& tilde_f2,
410  const Mat3x3& tilde_R1,
411  const Mat3x3& tilde_R2,
412  flag fOut);
413 
414  ~ViscousDispJoint(void);
415 
416  /* Tipo di DeformableDispHinge */
417  virtual ConstLawType::Type GetConstLawType(void) const {
418  return ConstLawType::VISCOUS;
419  };
420 
421  virtual void
422  AfterConvergence(const VectorHandler& X, const VectorHandler& XP);
423 
424  /* Aggiorna le deformazioni ecc. */
425  virtual void AfterPredict(VectorHandler& X, VectorHandler& XP);
426 
427  /* assemblaggio residuo */
428  virtual SubVectorHandler&
429  AssRes(SubVectorHandler& WorkVec,
430  doublereal dCoef,
431  const VectorHandler& XCurr,
432  const VectorHandler& XPrimeCurr);
433 
434  /* Inverse Dynamics residual assembly */
436  AssRes(SubVectorHandler& WorkVec,
437  const VectorHandler& XCurr,
438  const VectorHandler& XPrimeCurr,
439  const VectorHandler& XPrimePrimeCurr,
441 
442  /* Inverse Dynamics update */
444 
445  /* Inverse Dynamics after convergence */
446  virtual void AfterConvergence(const VectorHandler& X,
447  const VectorHandler& XP,
448  const VectorHandler& XPP);
449 
450  virtual void
451  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
452  *piNumRows = 12;
453  *piNumCols = 12;
454  };
455 
456  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
457  virtual VariableSubMatrixHandler&
459  const VectorHandler& XCurr);
460 
461  /* Contributo al residuo durante l'assemblaggio iniziale */
462  virtual SubVectorHandler&
463  InitialAssRes(SubVectorHandler& WorkVec, const VectorHandler& XCurr);
464 
465 #ifdef MBDYN_X_WORKAROUND_GCC_3_2
466  virtual void SetValue(DataManager *pDM,
468  SimulationEntity::Hints *ph = 0)
469  {
470  DeformableDispJoint::SetValue(pDM, X, XP, ph);
471  };
472 
473  virtual Hint *
474  ParseHint(DataManager *pDM, const char *s) const
475  {
476  return DeformableDispJoint::ParseHint(pDM, s);
477  };
478  virtual unsigned int iGetNumPrivData(void) const {
480  };
481  virtual unsigned int iGetPrivDataIdx(const char *s) const {
483  };
484  virtual doublereal dGetPrivData(unsigned int i) const {
485  return dGetPrivData(i);
486  };
487 #endif /* MBDYN_X_WORKAROUND_GCC_3_2 */
488 
489 };
490 
491 /* ViscousDispJoint - end */
492 
493 
494 /* ViscoElasticDispJoint - begin */
495 
497 : virtual public Elem, public DeformableDispJoint {
498 protected:
499  void AssMats(FullSubMatrixHandler& WorkMatA,
500  FullSubMatrixHandler& WorkMatB,
501  doublereal dCoef);
502  void AssVec(SubVectorHandler& WorkVec);
503 
504 public:
505  ViscoElasticDispJoint(unsigned int uL,
506  const DofOwner* pDO,
507  const ConstitutiveLaw3D* pCL,
508  const StructNode* pN1,
509  const StructNode* pN2,
510  const Vec3& tilde_f1,
511  const Vec3& tilde_f2,
512  const Mat3x3& tilde_R1,
513  const Mat3x3& tilde_R2,
514  flag fOut);
515 
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  /* assemblaggio residuo */
530  virtual SubVectorHandler&
531  AssRes(SubVectorHandler& WorkVec,
532  doublereal dCoef,
533  const VectorHandler& XCurr,
534  const VectorHandler& XPrimeCurr);
535 
536  /* Inverse Dynamics residual assembly */
538  AssRes(SubVectorHandler& WorkVec,
539  const VectorHandler& XCurr,
540  const VectorHandler& XPrimeCurr,
541  const VectorHandler& XPrimePrimeCurr,
543 
544  /* Inverse Dynamics update */
546 
547  /* Inverse Dynamics after convergence */
548  virtual void AfterConvergence(const VectorHandler& X,
549  const VectorHandler& XP,
550  const VectorHandler& XPP);
551 
552  virtual void
553  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
554  *piNumRows = 12;
555  *piNumCols = 24;
556  };
557 
558  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
559  virtual VariableSubMatrixHandler&
561  const VectorHandler& XCurr);
562 
563  /* Contributo al residuo durante l'assemblaggio iniziale */
564  virtual SubVectorHandler&
565  InitialAssRes(SubVectorHandler& WorkVec, const VectorHandler& XCurr);
566 
567 #ifdef MBDYN_X_WORKAROUND_GCC_3_2
568  virtual void SetValue(DataManager *pDM,
570  SimulationEntity::Hints *ph = 0)
571  {
572  DeformableDispJoint::SetValue(pDM, X, XP, ph);
573  };
574 
575  virtual Hint *
576  ParseHint(DataManager *pDM, const char *s) const
577  {
578  return DeformableDispJoint::ParseHint(pDM, s);
579  };
580  virtual unsigned int iGetNumPrivData(void) const {
582  };
583  virtual unsigned int iGetPrivDataIdx(const char *s) const {
585  };
586  virtual doublereal dGetPrivData(unsigned int i) const {
587  return dGetPrivData(i);
588  };
589 #endif /* MBDYN_X_WORKAROUND_GCC_3_2 */
590 };
591 
592 /* ViscoElasticDispJoint - end */
593 
594 #endif /* VEHJ2_H */
595 
Definition: hint.h:38
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj2.h:132
Type
Definition: joint.h:66
Mat3x3 FDEPrime
Definition: vehj2.h:62
virtual Hint * ParseHint(DataManager *pDM, const char *s) const
Definition: vehj2.cc:439
Vec3 tilde_dPrime
Definition: vehj2.h:55
void AssMatFDEPrime(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, const Vec3 &d1, const Vec3 &d2, doublereal dCoef)
Definition: vehj2.cc:168
~ElasticDispJointInv(void)
Definition: vehj2.cc:884
long int flag
Definition: mbdyn.h:43
ElasticDispJoint(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw3D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1, const Mat3x3 &tilde_R2, flag fOut)
Definition: vehj2.cc:590
Definition: matvec3.h:98
virtual DofOrder::Order GetDofType(unsigned int) const
Definition: vehj2.h:127
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: vehj2.cc:1346
virtual void AfterPredict(VectorHandler &X, VectorHandler &XP)
Definition: vehj2.cc:785
void Update(const VectorHandler &XCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
Definition: vehj2.cc:1226
~ViscousDispJoint(void)
Definition: vehj2.cc:1139
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
Definition: vehj2.cc:1145
const StructNode * pNode1
Definition: vehj2.h:46
virtual Joint::Type GetJointType(void) const
Definition: vehj2.h:103
Mat3x3 tilde_R2h
Definition: vehj2.h:51
virtual unsigned int iGetPrivDataIdx(const char *s) const
Definition: vehj2.cc:490
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: vehj2.cc:1059
void Update(const VectorHandler &XCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
Definition: vehj2.cc:1503
std::vector< Hint * > Hints
Definition: simentity.h:89
void AssMatF(FullSubMatrixHandler &WMA, const Vec3 &d1, const Vec3 &d2, doublereal dCoef)
Definition: vehj2.cc:83
Vec3 tilde_R1hT_tilde_f1
Definition: vehj2.h:52
virtual void Output(OutputHandler &OH) const
Definition: vehj2.cc:359
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: vehj2.cc:804
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
Definition: vehj2.cc:890
void AssMats(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)
Definition: vehj2.cc:658
void OutputPrepare(OutputHandler &OH)
Definition: vehj2.cc:337
Mat3x3 tilde_R1h
Definition: vehj2.h:50
~ViscoElasticDispJoint(void)
Definition: vehj2.cc:1414
void Update(const VectorHandler &XCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
Definition: vehj2.cc:747
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
Definition: vehj2.cc:617
virtual ~DeformableDispJoint(void)
Definition: vehj2.cc:76
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: vehj2.cc:671
void AssMats(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)
Definition: vehj2.cc:1152
virtual ConstLawType::Type GetConstLawType(void) const
Definition: vehj2.h:316
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: vehj2.cc:1089
~ElasticDispJoint(void)
Definition: vehj2.cc:611
virtual ConstLawType::Type GetConstLawType(void) const
Definition: vehj2.h:417
DeformableDispJoint(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw3D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1, const Mat3x3 &tilde_R2, flag fOut)
Definition: vehj2.cc:43
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj2.h:553
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: vehj2.cc:248
virtual ConstLawType::Type GetConstLawType(void) const
Definition: vehj2.h:202
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
Definition: vehj2.cc:1420
virtual void AfterPredict(VectorHandler &X, VectorHandler &XP)
Definition: vehj2.cc:1037
ViscousDispJoint(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw3D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1, const Mat3x3 &tilde_R2, flag fOut)
Definition: vehj2.cc:1118
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: vehj2.cc:699
void AssVec(SubVectorHandler &WorkVec)
Definition: vehj2.cc:761
ElasticDispJointInv(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw3D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1, const Mat3x3 &tilde_R2, flag fOut)
Definition: vehj2.cc:863
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: vehj2.cc:834
virtual ConstLawType::Type GetConstLawType(void) const =0
void AssVec(SubVectorHandler &WorkVec)
Definition: vehj2.cc:1243
virtual unsigned int iGetNumDof(void) const
Definition: vehj2.h:123
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: vehj2.cc:1165
virtual unsigned int iGetInitialNumDof(void) const
Definition: vehj2.h:141
virtual void AssMats(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)=0
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj2.h:349
void AssMatFDE(FullSubMatrixHandler &WMA, const Vec3 &d1, const Vec3 &d2, doublereal dCoef)
Definition: vehj2.cc:108
void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
Definition: vehj2.cc:398
void AssVec(SubVectorHandler &WorkVec)
Definition: vehj2.cc:1004
virtual void AfterPredict(VectorHandler &X, VectorHandler &XP)
Definition: vehj2.cc:1550
virtual bool bInverseDynamics(void) const
Definition: vehj2.cc:478
virtual ConstLawType::Type GetConstLawType(void) const
Definition: vehj2.h:519
Definition: elem.h:75
virtual std::ostream & Restart(std::ostream &out) const
Definition: vehj2.cc:321
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: vehj2.cc:1296
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj2.h:248
const StructNode * pNode2
Definition: vehj2.h:47
void AssVec(SubVectorHandler &WorkVec)
Definition: vehj2.cc:1520
virtual doublereal dGetPrivData(unsigned int i) const
Definition: vehj2.cc:543
ViscoElasticDispJoint(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw3D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1, const Mat3x3 &tilde_R2, flag fOut)
Definition: vehj2.cc:1391
void AssMats(FullSubMatrixHandler &WorkMatA, FullSubMatrixHandler &WorkMatB, doublereal dCoef)
Definition: vehj2.cc:1428
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: vehj2.h:167
virtual void AfterPredict(VectorHandler &X, VectorHandler &XP)
Definition: vehj2.cc:1272
Definition: joint.h:50
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: vehj2.cc:1632
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: vehj2.cc:1442
virtual unsigned int iGetNumPrivData(void) const
Definition: vehj2.cc:484
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: vehj2.cc:944
void AssMats(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)
Definition: vehj2.cc:931
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj2.h:451
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: vehj2.cc:1575