MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
strforce_impl.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/struct/strforce_impl.h,v 1.13 2017/06/18 23:07:37 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 /* Forza */
33 
34 #ifndef STRFORCE_IMPL_H
35 #define STRFORCE_IMPL_H
36 
37 #include "force.h"
38 
39 /* Force - begin */
40 
41 /* AbsoluteDispForce - begin */
42 
43 class AbsoluteDispForce : virtual public Elem, public Force {
44 protected:
47 
48 #ifdef USE_NETCDF
49  NcVar *Var_F;
50 #endif // USE_NETCDF
51 
52 public:
53  /* Costruttore non banale */
54  AbsoluteDispForce(unsigned int uL, const StructDispNode* pN,
55  const TplDriveCaller<Vec3>* pDC, flag fOut);
56 
57  ~AbsoluteDispForce(void);
58 
59  /* Tipo di forza */
60  virtual Force::Type GetForceType(void) const {
62  };
63 
64  /* Contributo al file di restart */
65  virtual std::ostream& Restart(std::ostream& out) const;
66 
67  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
68 
69  virtual SubVectorHandler&
70  AssRes(SubVectorHandler& WorkVec,
71  doublereal dCoef,
72  const VectorHandler& XCurr,
73  const VectorHandler& XPrimeCurr);
74 
75  /* Inverse Dynamics*/
76  virtual SubVectorHandler&
77  AssRes(SubVectorHandler& WorkVec,
78  const VectorHandler& /* XCurr */ ,
79  const VectorHandler& /* XPrimeCurr */ ,
80  const VectorHandler& /* XPrimePrimeCurr */ ,
81  InverseDynamics::Order iOrder);
82 
83  virtual void OutputPrepare(OutputHandler &OH);
84  virtual void Output(OutputHandler& OH) const;
85 
86  virtual void
87  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
88 
89  /* Contributo al residuo durante l'assemblaggio iniziale */
90  virtual SubVectorHandler&
92  const VectorHandler& XCurr);
93 
94  /* *******PER IL SOLUTORE PARALLELO******** */
95  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
96  utile per l'assemblaggio della matrice di connessione fra i dofs */
97  virtual void
98  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const;
99  /* ************************************************ */
100 };
101 
102 /* AbsoluteDispForce - end */
103 
104 
105 /* AbsoluteInternalDispForce - begin */
106 
107 class AbsoluteInternalDispForce : virtual public Elem, public Force {
108 protected:
112 
113 #ifdef USE_NETCDF
114  NcVar *Var_F;
115 #endif // USE_NETCDF
116 
117 public:
118  /* Costruttore non banale */
119  AbsoluteInternalDispForce(unsigned int uL,
120  const StructDispNode* pN1, const StructDispNode* pN2,
121  const TplDriveCaller<Vec3>* pDC, flag fOut);
122 
124 
125  /* Tipo di forza */
126  virtual Force::Type GetForceType(void) const {
128  };
129 
130  /* Contributo al file di restart */
131  virtual std::ostream& Restart(std::ostream& out) const;
132 
133  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
134 
135  virtual SubVectorHandler&
136  AssRes(SubVectorHandler& WorkVec,
137  doublereal dCoef,
138  const VectorHandler& XCurr,
139  const VectorHandler& XPrimeCurr);
140 
141  /* Inverse Dynamics*/
142  virtual SubVectorHandler&
143  AssRes(SubVectorHandler& WorkVec,
144  const VectorHandler& /* XCurr */ ,
145  const VectorHandler& /* XPrimeCurr */ ,
146  const VectorHandler& /* XPrimePrimeCurr */ ,
147  InverseDynamics::Order iOrder);
148 
149  virtual void OutputPrepare(OutputHandler &OH);
150  virtual void Output(OutputHandler& OH) const;
151 
152  virtual void
153  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
154 
155  /* Contributo al residuo durante l'assemblaggio iniziale */
156  virtual SubVectorHandler&
158  const VectorHandler& XCurr);
159 
160  /* *******PER IL SOLUTORE PARALLELO******** */
161  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
162  utile per l'assemblaggio della matrice di connessione fra i dofs */
163  virtual void
164  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const;
165  /* ************************************************ */
166 };
167 
168 /* AbsoluteInternalDispForce - end */
169 
170 
171 /* StructuralForce - begin */
172 
173 class StructuralForce : virtual public Elem, public Force {
174 public:
175  enum {
177  };
178 
179 protected:
182 
183 #ifdef USE_NETCDF
184  NcVar *Var_F;
185 #endif // USE_NETCDF
186 
187 public:
188  /* Costruttore */
189  StructuralForce(unsigned int uL,
190  const StructNode* pN,
191  const TplDriveCaller<Vec3> *pDC,
192  flag fOut);
193 
194  virtual ~StructuralForce(void);
195 
196  /* *******PER IL SOLUTORE PARALLELO******** */
197  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
198  utile per l'assemblaggio della matrice di connessione fra i dofs */
199  virtual void
200  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const;
201  /* ************************************************ */
202 };
203 
204 /* StructuralForce - end */
205 
206 
207 /* AbsoluteForce - begin */
208 
209 class AbsoluteForce : virtual public Elem, public StructuralForce {
210 protected:
211  const Vec3 Arm;
212 
213 #ifdef USE_NETCDF
214  NcVar *Var_A;
215 #endif // USE_NETCDF
216 
217 public:
218  /* Costruttore non banale */
219  AbsoluteForce(unsigned int uL, const StructNode* pN,
220  const TplDriveCaller<Vec3>* pDC,
221  const Vec3& TmpArm,
222  flag fOut);
223 
224  ~AbsoluteForce(void);
225 
226  /* Tipo di forza */
227  virtual Force::Type GetForceType(void) const {
228  return Force::ABSOLUTEFORCE;
229  };
230 
231  /* Contributo al file di restart */
232  virtual std::ostream& Restart(std::ostream& out) const;
233 
234  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
235 
236  virtual VariableSubMatrixHandler&
238  doublereal dCoef,
239  const VectorHandler& XCurr,
240  const VectorHandler& XPrimeCurr);
241 
242  virtual SubVectorHandler&
243  AssRes(SubVectorHandler& WorkVec,
244  doublereal dCoef,
245  const VectorHandler& XCurr,
246  const VectorHandler& XPrimeCurr);
247 
248  /* Inverse Dynamics*/
249  virtual SubVectorHandler&
250  AssRes(SubVectorHandler& WorkVec,
251  const VectorHandler& /* XCurr */ ,
252  const VectorHandler& /* XPrimeCurr */ ,
253  const VectorHandler& /* XPrimePrimeCurr */ ,
254  InverseDynamics::Order iOrder);
255 
256  virtual void OutputPrepare(OutputHandler &OH);
257  virtual void Output(OutputHandler& OH) const;
258 
259  virtual void
260  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
261 
262  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
263  virtual VariableSubMatrixHandler&
265  const VectorHandler& XCurr);
266 
267  /* Contributo al residuo durante l'assemblaggio iniziale */
268  virtual SubVectorHandler&
270  const VectorHandler& XCurr);
271 };
272 
273 /* AbsoluteForce - end */
274 
275 
276 /* FollowerForce - begin */
277 
278 class FollowerForce : virtual public Elem, public StructuralForce {
279 protected:
280  const Vec3 Arm;
281 
282 #ifdef USE_NETCDF
283  NcVar *Var_A;
284 #endif // USE_NETCDF
285 
286 public:
287  /* Costruttore banale */
288  FollowerForce(unsigned int uL, const StructNode* pN,
289  const TplDriveCaller<Vec3>* pDC,
290  const Vec3& TmpArm,
291  flag fOut);
292 
293  ~FollowerForce(void);
294 
295  /* Tipo di forza */
296  virtual Force::Type GetForceType(void) const {
297  return Force::FOLLOWERFORCE;
298  };
299 
300  /* Contributo al file di restart */
301  virtual std::ostream& Restart(std::ostream& out) const;
302 
303  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
304 
305  virtual VariableSubMatrixHandler&
307  doublereal dCoef,
308  const VectorHandler& XCurr,
309  const VectorHandler& XPrimeCurr);
310 
311  virtual SubVectorHandler&
312  AssRes(SubVectorHandler& WorkVec,
313  doublereal dCoef,
314  const VectorHandler& XCurr,
315  const VectorHandler& XPrimeCurr);
316 
317  /* Inverse Dynamics*/
318  virtual SubVectorHandler&
319  AssRes(SubVectorHandler& WorkVec,
320  const VectorHandler& /* XCurr */ ,
321  const VectorHandler& /* XPrimeCurr */ ,
322  const VectorHandler& /* XPrimePrimeCurr */ ,
323  InverseDynamics::Order iOrder);
324 
325  virtual void OutputPrepare(OutputHandler &OH);
326  virtual void Output(OutputHandler& OH) const;
327 
328  virtual void
329  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
330 
331  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
332  virtual VariableSubMatrixHandler&
334  const VectorHandler& XCurr);
335 
336  /* Contributo al residuo durante l'assemblaggio iniziale */
337  virtual SubVectorHandler&
339  const VectorHandler& XCurr);
340 };
341 
342 /* FollowerForce - end */
343 
344 
345 /* AbsoluteCouple - begin */
346 
347 class AbsoluteCouple : virtual public Elem, public StructuralForce {
348 public:
349  /* Costruttore banale */
350  AbsoluteCouple(unsigned int uL, const StructNode* pN,
351  const TplDriveCaller<Vec3>* pDC,
352  flag fOut);
353 
354  ~AbsoluteCouple(void);
355 
356  /* Tipo di forza */
357  virtual Force::Type GetForceType(void) const {
358  return Force::ABSOLUTECOUPLE;
359  };
360 
361  /* Contributo al file di restart */
362  virtual std::ostream& Restart(std::ostream& out) const;
363 
364  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
365 
366  virtual SubVectorHandler&
367  AssRes(SubVectorHandler& WorkVec,
368  doublereal dCoef,
369  const VectorHandler& XCurr,
370  const VectorHandler& XPrimeCurr);
371 
372  /* Inverse Dynamics*/
373  virtual SubVectorHandler&
374  AssRes(SubVectorHandler& WorkVec,
375  const VectorHandler& /* XCurr */ ,
376  const VectorHandler& /* XPrimeCurr */ ,
377  const VectorHandler& /* XPrimePrimeCurr */ ,
378  InverseDynamics::Order iOrder);
379 
380  virtual void OutputPrepare(OutputHandler &OH);
381  virtual void Output(OutputHandler& OH) const;
382 
383  virtual void
384  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
385 
386  /* Contributo al residuo durante l'assemblaggio iniziale */
387  virtual SubVectorHandler&
389  const VectorHandler& XCurr);
390 };
391 
392 /* AbsoluteCouple - end */
393 
394 
395 /* FollowerCouple - begin */
396 
397 class FollowerCouple : virtual public Elem, public StructuralForce {
398 public:
399  /* Costruttore banale */
400  FollowerCouple(unsigned int uL, const StructNode* pN,
401  const TplDriveCaller<Vec3>* pDC,
402  flag fOut);
403 
404  ~FollowerCouple(void);
405 
406  /* Tipo di forza */
407  virtual Force::Type GetForceType(void) const {
408  return Force::FOLLOWERCOUPLE;
409  };
410 
411  /* Contributo al file di restart */
412  virtual std::ostream& Restart(std::ostream& out) const;
413 
414  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
415 
416  virtual VariableSubMatrixHandler&
418  doublereal dCoef,
419  const VectorHandler& XCurr,
420  const VectorHandler& XPrimeCurr);
421 
422  virtual SubVectorHandler&
423  AssRes(SubVectorHandler& WorkVec,
424  doublereal dCoef,
425  const VectorHandler& XCurr,
426  const VectorHandler& XPrimeCurr);
427 
428  /* Inverse Dynamics*/
429  virtual SubVectorHandler&
430  AssRes(SubVectorHandler& WorkVec,
431  const VectorHandler& /* XCurr */ ,
432  const VectorHandler& /* XPrimeCurr */ ,
433  const VectorHandler& /* XPrimePrimeCurr */ ,
434  InverseDynamics::Order iOrder);
435 
436  virtual void OutputPrepare(OutputHandler &OH);
437  virtual void Output(OutputHandler& OH) const;
438 
439  virtual void
440  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
441 
442  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
443  virtual VariableSubMatrixHandler&
445  const VectorHandler& XCurr);
446 
447  /* Contributo al residuo durante l'assemblaggio iniziale */
448  virtual SubVectorHandler&
450  const VectorHandler& XCurr);
451 };
452 
453 /* FollowerCouple - end */
454 
455 
456 /* StructuralInternalForce - begin */
457 
459 : virtual public Elem, public Force {
460 protected:
464 
465 #ifdef USE_NETCDF
466  NcVar *Var_F;
467 #endif // USE_NETCDF
468 
469 public:
470  /* Costruttore */
471  StructuralInternalForce(unsigned int uL,
472  const StructNode* pN1, const StructNode* pN2,
473  const TplDriveCaller<Vec3>* pDC,
474  flag fOut);
475 
476  virtual ~StructuralInternalForce(void);
477 
478  /* *******PER IL SOLUTORE PARALLELO******** */
479  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
480  utile per l'assemblaggio della matrice di connessione fra i dofs */
481  virtual void
482  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const;
483  /* ************************************************ */
484 };
485 
486 /* StructuralInternalForce - end */
487 
488 
489 /* AbsoluteInternalForce - begin */
490 
492 : virtual public Elem, public StructuralInternalForce {
493 protected:
494  const Vec3 Arm1;
495  const Vec3 Arm2;
496 
497 #ifdef USE_NETCDF
498  NcVar *Var_A1;
499  NcVar *Var_A2;
500 #endif // USE_NETCDF
501 
502 public:
503  /* Costruttore non banale */
504  AbsoluteInternalForce(unsigned int uL,
505  const StructNode* pN1, const StructNode* pN2,
506  const TplDriveCaller<Vec3>* pDC,
507  const Vec3& TmpArm1, const Vec3& TmpArm2,
508  flag fOut);
509 
511 
512  /* Tipo di forza */
513  virtual Force::Type GetForceType(void) const {
515  };
516 
517  /* Contributo al file di restart */
518  virtual std::ostream& Restart(std::ostream& out) const;
519 
520  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
521 
522  virtual VariableSubMatrixHandler&
524  doublereal dCoef,
525  const VectorHandler& XCurr,
526  const VectorHandler& XPrimeCurr);
527 
528  virtual SubVectorHandler&
529  AssRes(SubVectorHandler& WorkVec,
530  doublereal dCoef,
531  const VectorHandler& XCurr,
532  const VectorHandler& XPrimeCurr);
533 
534  /* Inverse Dynamics*/
535  virtual SubVectorHandler&
536  AssRes(SubVectorHandler& WorkVec,
537  const VectorHandler& /* XCurr */ ,
538  const VectorHandler& /* XPrimeCurr */ ,
539  const VectorHandler& /* XPrimePrimeCurr */ ,
540  InverseDynamics::Order iOrder);
541 
542  virtual void OutputPrepare(OutputHandler &OH);
543  virtual void Output(OutputHandler& OH) const;
544 
545  virtual void
546  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
547 
548  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
549  virtual VariableSubMatrixHandler&
551  const VectorHandler& XCurr);
552 
553  /* Contributo al residuo durante l'assemblaggio iniziale */
554  virtual SubVectorHandler&
556  const VectorHandler& XCurr);
557 };
558 
559 /* AbsoluteInternalForce - end */
560 
561 
562 /* FollowerInternalForce - begin */
563 
565 : virtual public Elem, public StructuralInternalForce {
566 protected:
567  const Vec3 Arm1;
568  const Vec3 Arm2;
569 
570 #ifdef USE_NETCDF
571  NcVar *Var_A1;
572  NcVar *Var_A2;
573 #endif // USE_NETCDF
574 
575 public:
576  /* Costruttore banale */
577  FollowerInternalForce(unsigned int uL,
578  const StructNode* pN1, const StructNode* pN2,
579  const TplDriveCaller<Vec3>* pDC,
580  const Vec3& TmpArm1, const Vec3& TmpArm2,
581  flag fOut);
582 
584 
585  /* Tipo di forza */
586  virtual Force::Type GetForceType(void) const {
588  };
589 
590  /* Contributo al file di restart */
591  virtual std::ostream& Restart(std::ostream& out) const;
592 
593  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
594 
595  virtual VariableSubMatrixHandler&
597  doublereal dCoef,
598  const VectorHandler& XCurr,
599  const VectorHandler& XPrimeCurr);
600 
601  virtual SubVectorHandler&
602  AssRes(SubVectorHandler& WorkVec,
603  doublereal dCoef,
604  const VectorHandler& XCurr,
605  const VectorHandler& XPrimeCurr);
606 
607  /* Inverse Dynamics*/
608  virtual SubVectorHandler&
609  AssRes(SubVectorHandler& WorkVec,
610  const VectorHandler& /* XCurr */ ,
611  const VectorHandler& /* XPrimeCurr */ ,
612  const VectorHandler& /* XPrimePrimeCurr */ ,
613  InverseDynamics::Order iOrder);
614 
615  virtual void OutputPrepare(OutputHandler &OH);
616  virtual void Output(OutputHandler& OH) const;
617 
618  virtual void
619  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
620 
621  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
622  virtual VariableSubMatrixHandler&
624  const VectorHandler& XCurr);
625 
626  /* Contributo al residuo durante l'assemblaggio iniziale */
627  virtual SubVectorHandler&
629  const VectorHandler& XCurr);
630 };
631 
632 /* FollowerInternalForce - end */
633 
634 
635 /* AbsoluteInternalCouple - begin */
636 
638 : virtual public Elem, public StructuralInternalForce {
639 public:
640  /* Costruttore banale */
641  AbsoluteInternalCouple(unsigned int uL,
642  const StructNode* pN1, const StructNode* pN2,
643  const TplDriveCaller<Vec3>* pDC,
644  flag fOut);
645 
647 
648  /* Tipo di forza */
649  virtual Force::Type GetForceType(void) const {
651  };
652 
653  /* Contributo al file di restart */
654  virtual std::ostream& Restart(std::ostream& out) const;
655 
656  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
657 
658  virtual SubVectorHandler&
659  AssRes(SubVectorHandler& WorkVec,
660  doublereal dCoef,
661  const VectorHandler& XCurr,
662  const VectorHandler& XPrimeCurr);
663 
664  /* Inverse Dynamics*/
665  virtual SubVectorHandler&
666  AssRes(SubVectorHandler& WorkVec,
667  const VectorHandler& /* XCurr */ ,
668  const VectorHandler& /* XPrimeCurr */ ,
669  const VectorHandler& /* XPrimePrimeCurr */ ,
670  InverseDynamics::Order iOrder);
671 
672  virtual void OutputPrepare(OutputHandler &OH);
673  virtual void Output(OutputHandler& OH) const;
674 
675  virtual void
676  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
677 
678  /* Contributo al residuo durante l'assemblaggio iniziale */
679  virtual SubVectorHandler&
681  const VectorHandler& XCurr);
682 };
683 
684 /* AbsoluteInternalCouple - end */
685 
686 
687 /* FollowerInternalCouple - begin */
688 
690 : virtual public Elem, public StructuralInternalForce {
691 public:
692  /* Costruttore banale */
693  FollowerInternalCouple(unsigned int uL,
694  const StructNode* pN1, const StructNode* pN2,
695  const TplDriveCaller<Vec3>* pDC,
696  flag fOut);
697 
699 
700  /* Tipo di forza */
701  virtual Force::Type GetForceType(void) const {
703  };
704 
705  /* Contributo al file di restart */
706  virtual std::ostream& Restart(std::ostream& out) const;
707 
708  void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
709 
710  virtual VariableSubMatrixHandler&
712  doublereal dCoef,
713  const VectorHandler& XCurr,
714  const VectorHandler& XPrimeCurr);
715 
716  virtual SubVectorHandler&
717  AssRes(SubVectorHandler& WorkVec,
718  doublereal dCoef,
719  const VectorHandler& XCurr,
720  const VectorHandler& XPrimeCurr);
721 
722  /* Inverse Dynamics*/
723  virtual SubVectorHandler&
724  AssRes(SubVectorHandler& WorkVec,
725  const VectorHandler& /* XCurr */ ,
726  const VectorHandler& /* XPrimeCurr */ ,
727  const VectorHandler& /* XPrimePrimeCurr */ ,
728  InverseDynamics::Order iOrder);
729 
730  virtual void OutputPrepare(OutputHandler &OH);
731  virtual void Output(OutputHandler& OH) const;
732 
733  virtual void
734  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
735 
736  /* Contributo allo jacobiano durante l'assemblaggio iniziale */
737  virtual VariableSubMatrixHandler&
739  const VectorHandler& XCurr);
740 
741  /* Contributo al residuo durante l'assemblaggio iniziale */
742  virtual SubVectorHandler&
744  const VectorHandler& XCurr);
745 };
746 
747 /* FollowerInternalCouple - end */
748 
749 #endif // STRFORCE_H_IMPL
750 
virtual std::ostream & Restart(std::ostream &out) const
Definition: strforce.cc:257
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:762
virtual void OutputPrepare(OutputHandler &OH)
Definition: strforce.cc:2563
virtual void OutputPrepare(OutputHandler &OH)
Definition: strforce.cc:1119
TplDriveOwner< Vec3 > f
virtual void OutputPrepare(OutputHandler &OH)
Definition: strforce.cc:869
virtual void Output(OutputHandler &OH) const
Definition: strforce.cc:900
FollowerCouple(unsigned int uL, const StructNode *pN, const TplDriveCaller< Vec3 > *pDC, flag fOut)
Definition: strforce.cc:1188
virtual void OutputPrepare(OutputHandler &OH)
Definition: strforce.cc:1324
virtual std::ostream & Restart(std::ostream &out) const
Definition: strforce.cc:1544
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: strforce.cc:2627
virtual Force::Type GetForceType(void) const
long int flag
Definition: mbdyn.h:43
AbsoluteInternalDispForce(unsigned int uL, const StructDispNode *pN1, const StructDispNode *pN2, const TplDriveCaller< Vec3 > *pDC, flag fOut)
Definition: strforce.cc:214
Definition: matvec3.h:98
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:1048
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:2431
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:1269
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: strforce.cc:2172
Type
Definition: force.h:50
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:732
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:240
const StructNode * pNode1
virtual Force::Type GetForceType(void) const
virtual void Output(OutputHandler &OH) const
Definition: strforce.cc:330
virtual void OutputPrepare(OutputHandler &OH)
Definition: strforce.cc:579
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:519
virtual Force::Type GetForceType(void) const
virtual Force::Type GetForceType(void) const
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:1233
virtual ~StructuralInternalForce(void)
Definition: strforce.cc:1478
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:97
FollowerForce(unsigned int uL, const StructNode *pN, const TplDriveCaller< Vec3 > *pDC, const Vec3 &TmpArm, flag fOut)
Definition: strforce.cc:709
Definition: force.h:46
virtual void OutputPrepare(OutputHandler &OH)
Definition: strforce.cc:2026
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: strforce.cc:423
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:268
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:1205
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:1903
virtual Force::Type GetForceType(void) const
const StructDispNode * pNode
Definition: strforce_impl.h:46
virtual void Output(OutputHandler &OH) const
Definition: strforce.cc:2058
FollowerInternalCouple(unsigned int uL, const StructNode *pN1, const StructNode *pN2, const TplDriveCaller< Vec3 > *pDC, flag fOut)
Definition: strforce.cc:2414
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: strforce.cc:1425
virtual void OutputPrepare(OutputHandler &OH)
Definition: strforce.cc:1671
FollowerInternalForce(unsigned int uL, const StructNode *pN1, const StructNode *pN2, const TplDriveCaller< Vec3 > *pDC, const Vec3 &TmpArm1, const Vec3 &TmpArm2, flag fOut)
Definition: strforce.cc:1843
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:2441
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:804
virtual void Output(OutputHandler &OH) const
Definition: strforce.cc:603
virtual std::ostream & Restart(std::ostream &out) const
Definition: strforce.cc:2452
const StructDispNode * pNode2
StructuralInternalForce(unsigned int uL, const StructNode *pN1, const StructNode *pN2, const TplDriveCaller< Vec3 > *pDC, flag fOut)
Definition: strforce.cc:1457
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:740
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:2275
virtual std::ostream & Restart(std::ostream &out) const
Definition: strforce.cc:87
TplDriveOwner< Vec3 > f
Definition: strforce_impl.h:45
const Vec3 Arm
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:1069
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:484
~AbsoluteCouple(void)
Definition: strforce.cc:1033
~FollowerCouple(void)
Definition: strforce.cc:1198
virtual ~StructuralForce(void)
Definition: strforce.cc:417
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:1878
StructuralForce(unsigned int uL, const StructNode *pN, const TplDriveCaller< Vec3 > *pDC, flag fOut)
Definition: strforce.cc:398
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: strforce.cc:983
virtual std::ostream & Restart(std::ostream &out) const
Definition: strforce.cc:475
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:70
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: strforce.cc:385
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:1523
virtual std::ostream & Restart(std::ostream &out) const
Definition: strforce.cc:751
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:77
~FollowerForce(void)
Definition: strforce.cc:725
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:465
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:1601
virtual Force::Type GetForceType(void) const
TplDriveOwner< Vec3 > f
virtual Force::Type GetForceType(void) const
Definition: strforce_impl.h:60
virtual void Output(OutputHandler &OH) const
Definition: strforce.cc:156
const StructNode * pNode
const Vec3 Arm
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: strforce.cc:201
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:1040
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:2501
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:1533
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: strforce.cc:629
AbsoluteCouple(unsigned int uL, const StructNode *pN, const TplDriveCaller< Vec3 > *pDC, flag fOut)
Definition: strforce.cc:1023
virtual void Output(OutputHandler &OH) const
Definition: strforce.cc:2358
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:1556
virtual std::ostream & Restart(std::ostream &out) const
Definition: strforce.cc:1889
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: strforce.cc:1387
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: strforce.cc:670
virtual Force::Type GetForceType(void) const
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:2462
virtual std::ostream & Restart(std::ostream &out) const
Definition: strforce.cc:1224
virtual Force::Type GetForceType(void) const
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: strforce.cc:179
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:2243
AbsoluteInternalForce(unsigned int uL, const StructNode *pN1, const StructNode *pN2, const TplDriveCaller< Vec3 > *pDC, const Vec3 &TmpArm1, const Vec3 &TmpArm2, flag fOut)
Definition: strforce.cc:1498
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: strforce.cc:1729
virtual Force::Type GetForceType(void) const
AbsoluteInternalCouple(unsigned int uL, const StructNode *pN1, const StructNode *pN2, const TplDriveCaller< Vec3 > *pDC, flag fOut)
Definition: strforce.cc:2226
virtual void OutputPrepare(OutputHandler &OH)
Definition: strforce.cc:2337
Definition: elem.h:75
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:2253
~AbsoluteDispForce(void)
Definition: strforce.cc:64
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: strforce.cc:1954
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: strforce.cc:2099
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: strforce.cc:1788
~AbsoluteForce(void)
Definition: strforce.cc:452
virtual void OutputPrepare(OutputHandler &OH)
Definition: strforce.cc:309
const StructNode * pNode2
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:247
TplDriveOwner< Vec3 > f
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: strforce.cc:1165
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:1868
virtual std::ostream & Restart(std::ostream &out) const
Definition: strforce.cc:2264
AbsoluteDispForce(unsigned int uL, const StructDispNode *pN, const TplDriveCaller< Vec3 > *pDC, flag fOut)
Definition: strforce.cc:47
virtual void Output(OutputHandler &OH) const
Definition: strforce.cc:1141
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: strforce.cc:359
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: strforce.cc:2675
virtual void OutputPrepare(OutputHandler &OH)
Definition: strforce.cc:135
virtual std::ostream & Restart(std::ostream &out) const
Definition: strforce.cc:1059
virtual void Output(OutputHandler &OH) const
Definition: strforce.cc:1698
double doublereal
Definition: colamd.c:52
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:1213
AbsoluteForce(unsigned int uL, const StructNode *pN, const TplDriveCaller< Vec3 > *pDC, const Vec3 &TmpArm, flag fOut)
Definition: strforce.cc:435
long int integer
Definition: colamd.c:51
const StructDispNode * pNode1
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: strforce.cc:2385
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: strforce.cc:1484
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: strforce.cc:458
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: strforce.cc:938
virtual void Output(OutputHandler &OH) const
Definition: strforce.cc:2590
virtual void Output(OutputHandler &OH) const
Definition: strforce.cc:1353