MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
joint_.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/struct/joint_.h,v 1.21 2017/01/12 14:46:43 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 /* vincoli, tipo: Elem::Type JOINT */
33 
34 #ifndef JOINT__H
35 #define JOINT__H
36 
37 #include <cfloat>
38 
39 #include <strnode.h>
40 #include <joint.h>
41 
42 
43 /* Classi di servizio per vincoli.
44  * Queste classi sono intese per svincolare l'implementatore
45  * dalla gestione degli indici dei nodi e dei dof interni.
46  */
47 
48 /* Joint_ - begin */
49 
50 class Joint_
51 : virtual public Elem, public Joint {
52  protected:
53 
54  public:
55  Joint_(unsigned int uL,
56  Joint::Type T,
57  const DofOwner* pD,
58  flag fOut);
59  virtual ~Joint_(void);
60 
61  virtual void AssRes_(SubVectorHandler& WorkVec,
62  doublereal dCoef,
63  const VectorHandler& XCurr,
64  const VectorHandler& XPrimeCurr) = 0;
65 
66  virtual void AssJac_(VariableSubMatrixHandler& WorkMat,
67  doublereal dCoef,
68  const VectorHandler& XCurr,
69  const VectorHandler& XPrimeCurr) = 0;
70 
71  virtual void InitialAssRes_(SubVectorHandler& WorkVec,
72  const VectorHandler& XCurr) = 0;
73 
74  virtual void InitialAssJac_(VariableSubMatrixHandler& WorkMat,
75  const VectorHandler& XCurr) = 0;
76 };
77 
78 /* Joint_ - end */
79 
80 
81 /* Joint_1Node - begin */
82 
84 : virtual public Elem, public Joint_ {
85  protected:
87 
88  public:
89  Joint_1Node(unsigned int uL,
90  Joint::Type T,
91  const DofOwner* pD,
92  flag fOut);
93  virtual ~Joint_1Node(void);
94 
95  virtual SubVectorHandler&
96  AssRes(SubVectorHandler& WorkVec,
97  doublereal dCoef,
98  const VectorHandler& XCurr,
99  const VectorHandler& XPrimeCurr);
100 
101  virtual VariableSubMatrixHandler&
103  doublereal dCoef,
104  const VectorHandler& XCurr,
105  const VectorHandler& XPrimeCurr);
106 
107  virtual SubVectorHandler&
109  const VectorHandler& XCurr);
110 
111  virtual VariableSubMatrixHandler&
113  const VectorHandler& XCurr);
114 };
115 
116 /* Joint_1Node - end */
117 
118 
119 /* Joint_2Nodes - begin */
120 
122 : virtual public Elem, public Joint_ {
123  protected:
126 
127  public:
128  Joint_2Nodes(unsigned int uL,
129  Joint::Type T,
130  const DofOwner* pD,
131  flag fOut);
132  virtual ~Joint_2Nodes(void);
133 
134  virtual SubVectorHandler&
135  AssRes(SubVectorHandler& WorkVec,
136  doublereal dCoef,
137  const VectorHandler& XCurr,
138  const VectorHandler& XPrimeCurr);
139 
140  virtual VariableSubMatrixHandler&
142  doublereal dCoef,
143  const VectorHandler& XCurr,
144  const VectorHandler& XPrimeCurr);
145 
146  virtual SubVectorHandler&
148  const VectorHandler& XCurr);
149 
150  virtual VariableSubMatrixHandler&
152  const VectorHandler& XCurr);
153 };
154 
155 /* Joint_2Nodes - end */
156 
157 
158 /* Joint_NNodes - begin */
159 
161 : virtual public Elem, public Joint {
162  protected:
164 
165  public:
166  Joint_NNodes(unsigned int uL,
167  Joint::Type T,
168  const DofOwner* pD,
169  flag fOut);
170  virtual ~Joint_NNodes(void);
171 
172  virtual int iGetNNodes(void) const = 0;
173 
174  virtual SubVectorHandler&
175  AssRes(SubVectorHandler& WorkVec,
176  doublereal dCoef,
177  const VectorHandler& XCurr,
178  const VectorHandler& XPrimeCurr);
179 
180  virtual VariableSubMatrixHandler&
182  doublereal dCoef,
183  const VectorHandler& XCurr,
184  const VectorHandler& XPrimeCurr);
185 
186  virtual SubVectorHandler&
188  const VectorHandler& XCurr);
189 
190  virtual VariableSubMatrixHandler&
192  const VectorHandler& XCurr);
193 };
194 
195 /* Joint_NNodes - end */
196 
197 #endif // JOINT__H
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Type
Definition: joint.h:66
long int flag
Definition: mbdyn.h:43
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
StructNode * pNode1
Definition: joint_.h:124
virtual void InitialAssRes_(SubVectorHandler &WorkVec, const VectorHandler &XCurr)=0
virtual void AssJac_(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)=0
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
virtual ~Joint_2Nodes(void)
Definition: joint_.h:50
virtual void InitialAssJac_(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)=0
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
virtual void AssRes_(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)=0
StructNode * pNode2
Definition: joint_.h:125
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual ~Joint_1Node(void)
Joint_2Nodes(unsigned int uL, Joint::Type T, const DofOwner *pD, flag fOut)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
StructNode * pNode
Definition: joint_.h:86
Joint_NNodes(unsigned int uL, Joint::Type T, const DofOwner *pD, flag fOut)
Definition: elem.h:75
Definition: joint.h:50
virtual ~Joint_NNodes(void)
StructNode ** pNodes
Definition: joint_.h:163
double doublereal
Definition: colamd.c:52
virtual int iGetNNodes(void) const =0
virtual ~Joint_(void)
Joint_(unsigned int uL, Joint::Type T, const DofOwner *pD, flag fOut)
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Joint_1Node(unsigned int uL, Joint::Type T, const DofOwner *pD, flag fOut)