OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i2pen_rot.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| i2pen_rot ../common_source/interf/i2pen_rot.F
25!||--- called by ------------------------------------------------------
26!|| i2_dtn_25 ../starter/source/interfaces/inter3d1/i2_dtn.F
27!|| i2for25 ../engine/source/interfaces/interf/i2for25.F
28!|| i2for25p ../engine/source/interfaces/interf/i2for25p.F
29!||====================================================================
30 SUBROUTINE i2pen_rot(SKEW ,TT ,DT1 ,STIF ,
31 . RS ,RM ,V1 ,V2 ,V3 ,
32 . RX ,RY ,RZ ,VA ,VB ,
33 . VC ,VD )
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C C o m m o n B l o c k s
40C-----------------------------------------------
41#include "param_c.inc"
42C-----------------------------------------------
43C D u m m y A r g u m e n t s
44C-----------------------------------------------
45C REAL
47 . tt,stif,v1,v2,v3,dt1
49 . skew(9),rs(3),rm(3),rx(4),ry(4),rz(4),
50 . va(3), vb(3), vc(3), vd(3)
51C-----------------------------------------------
52C L o c a l V a r i a b l e s
53C-----------------------------------------------
54C REAL
56 . r(3),dwdu,
57 . x12,x22,x32,x42,y12,y22,y32,y42,z12,z22,z32,z42,
58 . xx,yy,zz,xxx,yyy,zzz,xy,yz,zx,xy2,yz2,zx2,
59 . b1,b2,b3,c1,c2,c3,det,
60 . bb1,bb2,bb3,cc1,cc2,cc3,
61 . vrx,vry,vrz,mgx,mgy,mgz
62C=======================================================================
63C
64 IF (tt == zero) THEN
65C rayon vecteur HS a TT=0, en coord locales
66 skew(1) = rs(1)-rm(1)
67 skew(2) = rs(2)-rm(2)
68 skew(3) = rs(3)-rm(3)
69 ENDIF
70C--------------------
71C
72 x12=rx(1)*rx(1)
73 x22=rx(2)*rx(2)
74 x32=rx(3)*rx(3)
75 x42=rx(4)*rx(4)
76 y12=ry(1)*ry(1)
77 y22=ry(2)*ry(2)
78 y32=ry(3)*ry(3)
79 y42=ry(4)*ry(4)
80 z12=rz(1)*rz(1)
81 z22=rz(2)*rz(2)
82 z32=rz(3)*rz(3)
83 z42=rz(4)*rz(4)
84 xx=x12 + x22 + x32 + x42
85 yy=y12 + y22 + y32 + y42
86 zz=z12 + z22 + z32 + z42
87 xy=rx(1)*ry(1) + rx(2)*ry(2) + rx(3)*ry(3) + rx(4)*ry(4)
88 yz=ry(1)*rz(1) + ry(2)*rz(2) + ry(3)*rz(3) + ry(4)*rz(4)
89 zx=rz(1)*rx(1) + rz(2)*rx(2) + rz(3)*rx(3) + rz(4)*rx(4)
90 zzz=xx+yy
91 xxx=yy+zz
92 yyy=zz+xx
93 xy2=xy*xy
94 yz2=yz*yz
95 zx2=zx*zx
96 det= xxx*yyy*zzz - xxx*yz2 - yyy*zx2 - zzz*xy2
97 . - two*xy*yz*zx
98 det=one/det
99 b1=zzz*yyy-yz2
100 b2=xxx*zzz-zx2
101 b3=yyy*xxx-xy2
102 c3=zzz*xy+yz*zx
103 c1=xxx*yz+zx*xy
104 c2=yyy*zx+xy*yz
105C--------------------
106 mgx = ry(1)*va(3) + ry(2)*vb(3) + ry(3)*vc(3) + ry(4)*vd(3)
107 . - rz(1)*va(2) - rz(2)*vb(2) - rz(3)*vc(2) - rz(4)*vd(2)
108 mgy = rz(1)*va(1) + rz(2)*vb(1) + rz(3)*vc(1) + rz(4)*vd(1)
109 . - rx(1)*va(3) - rx(2)*vb(3) - rx(3)*vc(3) - rx(4)*vd(3)
110 mgz = rx(1)*va(2) + rx(2)*vb(2) + rx(3)*vc(2) + rx(4)*vd(2)
111 . - ry(1)*va(1) - ry(2)*vb(1) - ry(3)*vc(1) - ry(4)*vd(1)
112 vrx=det*(mgx*b1+mgy*c3+mgz*c2)
113 vry=det*(mgy*b2+mgz*c1+mgx*c3)
114 vrz=det*(mgz*b3+mgx*c2+mgy*c1)
115C
116C rayon vecteur a TT=0
117 r(1)=skew(1)
118 r(2)=skew(2)
119 r(3)=skew(3)
120C
121 v1 = v1 - (vry*r(3)-vrz*r(2))
122 v2 = v2 - (vrz*r(1)-vrx*r(3))
123 v3 = v3 - (vrx*r(2)-vry*r(1))
124C
125 bb1=b1*b1
126 bb2=b2*b2
127 bb3=b3*b3
128 cc1=c1*c1
129 cc2=c2*c2
130 cc3=c3*c3
131 dwdu=det*sqrt(max(bb1*(yy+zz)+cc3*(zz+xx)+cc2*(xx+yy),
132 . bb2*(zz+xx)+cc1*(xx+yy)+cc3*(yy+zz),
133 . bb3*(xx+yy)+cc2*(yy+zz)+cc1*(zz+xx)))
134C
135 stif=sqrt((r(1)*r(1)+r(2)*r(2)+r(3)*r(3)))*dwdu
136C-----------
137 RETURN
138 END
139
140!||====================================================================
141!|| i2pen_rot26 ../common_source/interf/i2pen_rot.F
142!||--- called by ------------------------------------------------------
143!|| i2for26 ../engine/source/interfaces/interf/i2for26.f
144!|| i2for26p ../engine/source/interfaces/interf/i2for26p.F
145!||====================================================================
146 SUBROUTINE i2pen_rot26(TT ,DT1 ,DWDU ,WLX ,WLY ,
147 . WLZ ,RX ,RY ,RZ ,VA ,
148 . VB ,VC ,VD )
149C-----------------------------------------------
150C I m p l i c i t T y p e s
151C-----------------------------------------------
152#include "implicit_f.inc"
153C-----------------------------------------------
154C C o m m o n B l o c k s
155C-----------------------------------------------
156#include "param_c.inc"
157C-----------------------------------------------
158C D u m m y A r g u m e n t s
159C-----------------------------------------------
160C REAL
161 my_real
162 . tt,dt1,stif,wlx,wly,wlz
163 my_real
164 . rx(4),ry(4),rz(4),
165 . va(3), vb(3), vc(3), vd(3)
166C-----------------------------------------------
167C L o c a l V a r i a b l e s
168C-----------------------------------------------
169C REAL
170 my_real
171 . dwdu,
172 . x12,x22,x32,x42,y12,y22,y32,y42,z12,z22,z32,z42,
173 . xx,yy,zz,xxx,yyy,zzz,xy,yz,zx,xy2,yz2,zx2,
174 . b1,b2,b3,c1,c2,c3,det,
175 . bb1,bb2,bb3,cc1,cc2,cc3,
176 . mgx,mgy,mgz
177C=======================================================================
178C
179C Calcul vitesse rotation facette WX,WY,WZ dans repère local
180C
181 x12=rx(1)*rx(1)
182 x22=rx(2)*rx(2)
183 x32=rx(3)*rx(3)
184 x42=rx(4)*rx(4)
185 y12=ry(1)*ry(1)
186 y22=ry(2)*ry(2)
187 y32=ry(3)*ry(3)
188 y42=ry(4)*ry(4)
189 z12=rz(1)*rz(1)
190 z22=rz(2)*rz(2)
191 z32=rz(3)*rz(3)
192 z42=rz(4)*rz(4)
193 xx=x12 + x22 + x32 + x42
194 yy=y12 + y22 + y32 + y42
195 zz=z12 + z22 + z32 + z42
196 xy=rx(1)*ry(1) + rx(2)*ry(2) + rx(3)*ry(3) + rx(4)*ry(4)
197 yz=ry(1)*rz(1) + ry(2)*rz(2) + ry(3)*rz(3) + ry(4)*rz(4)
198 zx=rz(1)*rx(1) + rz(2)*rx(2) + rz(3)*rx(3) + rz(4)*rx(4)
199 zzz=xx+yy
200 xxx=yy+zz
201 yyy=zz+xx
202 xy2=xy*xy
203 yz2=yz*yz
204 zx2=zx*zx
205 det= xxx*yyy*zzz - xxx*yz2 - yyy*zx2 - zzz*xy2
206 . - two*xy*yz*zx
207 det=one/det
208 b1=zzz*yyy-yz2
209 b2=xxx*zzz-zx2
210 b3=yyy*xxx-xy2
211 c3=zzz*xy+yz*zx
212 c1=xxx*yz+zx*xy
213 c2=yyy*zx+xy*yz
214C--------------------
215C
216C rappel : rotation vector expressed wrt du = v*dt
217C MGX = Y1*V(3,J1) + Y2*V(3,J2) + Y3*V(3,J3) + Y4*V(3,J4)
218C . - Z1*V(2,J1) - Z2*V(2,J2) - Z3*V(2,J3) - Z4*V(2,J4)
219C MGY = Z1*V(1,J1) + Z2*V(1,J2) + Z3*V(1,J3) + Z4*V(1,J4)
220C . - X1*V(3,J1) - X2*V(3,J2) - X3*V(3,J3) - X4*V(3,J4)
221C MGZ = X1*V(2,J1) + X2*V(2,J2) + X3*V(2,J3) + X4*V(2,J4)
222C . - Y1*V(1,J1) - Y2*V(1,J2) - Y3*V(1,J3) - Y4*V(1,J4)
223C VRX=DET*(MGX*B1+MGY*C3+MGZ*C2)
224C VRY=DET*(MGY*B2+MGZ*C1+MGX*C3)
225C VRZ=DET*(MGZ*B3+MGX*C2+MGY*C1)
226C
227c MRX = (ABS(B1)+ABS(C3)+ABS(C2))
228c MRY = (ABS(B2)+ABS(C1)+ABS(C3))
229c MRZ = (ABS(B3)+ABS(C2)+ABS(C1))
230C
231C--------------------
232 mgx = ry(1)*va(3) + ry(2)*vb(3) + ry(3)*vc(3) + ry(4)*vd(3)
233 . - rz(1)*va(2) - rz(2)*vb(2) - rz(3)*vc(2) - rz(4)*vd(2)
234 mgy = rz(1)*va(1) + rz(2)*vb(1) + rz(3)*vc(1) + rz(4)*vd(1)
235 . - rx(1)*va(3) - rx(2)*vb(3) - rx(3)*vc(3) - rx(4)*vd(3)
236 mgz = rx(1)*va(2) + rx(2)*vb(2) + rx(3)*vc(2) + rx(4)*vd(2)
237 . - ry(1)*va(1) - ry(2)*vb(1) - ry(3)*vc(1) - ry(4)*vd(1)
238C
239 wlx=det*(mgx*b1+mgy*c3+mgz*c2)
240 wly=det*(mgy*b2+mgz*c1+mgx*c3)
241 wlz=det*(mgz*b3+mgx*c2+mgy*c1)
242C
243 bb1=b1*b1
244 bb2=b2*b2
245 bb3=b3*b3
246 cc1=c1*c1
247 cc2=c2*c2
248 cc3=c3*c3
249 dwdu=det*sqrt(max(bb1*(yy+zz)+cc3*(zz+xx)+cc2*(xx+yy),
250 . bb2*(zz+xx)+cc1*(xx+yy)+cc3*(yy+zz),
251 . bb3*(xx+yy)+cc2*(yy+zz)+cc1*(zz+xx)))
252C
253C STIF=SQRT((R(1)*R(1)+R(2)*R(2)+R(3)*R(3)))*DWDU
254C-----------
255 RETURN
256 END
257!||====================================================================
258!|| i2pen_rot27 ../common_source/interf/i2pen_rot.F
259!||--- called by ------------------------------------------------------
260!|| i2_dtn_27_pen ../starter/source/interfaces/inter3d1/i2_dtn_27.F
261!|| i2for27_pen ../engine/source/interfaces/interf/i2for27_pen.F
262!|| i2for27p_pen ../engine/source/interfaces/interf/i2for27p_pen.F
263!||====================================================================
264 SUBROUTINE i2pen_rot27(SKEW ,TT ,DT1 ,STIF ,
265 . RS ,RM ,VX ,VY ,VZ ,
266 . RX ,RY ,RZ ,VA ,VB ,
267 . VC ,VD ,VRM ,VRS ,DET ,
268 . B1 ,B2 ,B3 ,C1 ,C2 ,
269 . C3 ,IN_SECND)
270C-----------------------------------------------
271C I m p l i c i t T y p e s
272C-----------------------------------------------
273#include "implicit_f.inc"
274C-----------------------------------------------
275C C o m m o n B l o c k s
276C-----------------------------------------------
277#include "param_c.inc"
278#include "com01_c.inc"
279C-----------------------------------------------
280C D u m m y A r g u m e n t s
281C-----------------------------------------------
282C REAL
283 my_real
284 . tt,dt1,stif,vx,vy,vz,b1,b2,b3,c1,c2,c3,det
285 my_real
286 . skew(9),rs(3),rm(3),rx(4),ry(4),rz(4),
287 . va(3), vb(3), vc(3), vd(3),vrs(3),vrm(3)
288C-----------------------------------------------
289C L o c a l V a r i a b l e s
290C-----------------------------------------------
291C REAL
292 my_real
293 . r(3),dwdu,
294 . x12,x22,x32,x42,y12,y22,y32,y42,z12,z22,z32,z42,
295 . xx,yy,zz,xxx,yyy,zzz,xy,yz,zx,xy2,yz2,zx2,
296 . bb1,bb2,bb3,cc1,cc2,cc3,
297 . mgx,mgy,mgz,wx,wy,wz,in_secnd
298C=======================================================================
299C
300 IF (tt == zero) THEN
301C rayon vecteur HS a TT=0, en coord locales
302 skew(1) = rs(1)-rm(1)
303 skew(2) = rs(2)-rm(2)
304 skew(3) = rs(3)-rm(3)
305 ENDIF
306C--------------------
307C
308 x12=rx(1)*rx(1)
309 x22=rx(2)*rx(2)
310 x32=rx(3)*rx(3)
311 x42=rx(4)*rx(4)
312 y12=ry(1)*ry(1)
313 y22=ry(2)*ry(2)
314 y32=ry(3)*ry(3)
315 y42=ry(4)*ry(4)
316 z12=rz(1)*rz(1)
317 z22=rz(2)*rz(2)
318 z32=rz(3)*rz(3)
319 z42=rz(4)*rz(4)
320 xx=x12 + x22 + x32 + x42
321 yy=y12 + y22 + y32 + y42
322 zz=z12 + z22 + z32 + z42
323 xy=rx(1)*ry(1) + rx(2)*ry(2) + rx(3)*ry(3) + rx(4)*ry(4)
324 yz=ry(1)*rz(1) + ry(2)*rz(2) + ry(3)*rz(3) + ry(4)*rz(4)
325 zx=rz(1)*rx(1) + rz(2)*rx(2) + rz(3)*rx(3) + rz(4)*rx(4)
326 zzz=xx+yy
327 xxx=yy+zz
328 yyy=zz+xx
329 xy2=xy*xy
330 yz2=yz*yz
331 zx2=zx*zx
332 det= xxx*yyy*zzz - xxx*yz2 - yyy*zx2 - zzz*xy2
333 . - two*xy*yz*zx
334 det=one/det
335 b1=zzz*yyy-yz2
336 b2=xxx*zzz-zx2
337 b3=yyy*xxx-xy2
338 c3=zzz*xy+yz*zx
339 c1=xxx*yz+zx*xy
340 c2=yyy*zx+xy*yz
341C
342 IF (iroddl == 0 .OR. in_secnd == zero) THEN
343C-- For solid secnd node VRM=VRS=Velocity rotation main segment
344 mgx = ry(1)*va(3) + ry(2)*vb(3) + ry(3)*vc(3) + ry(4)*vd(3)
345 . - rz(1)*va(2) - rz(2)*vb(2) - rz(3)*vc(2) - rz(4)*vd(2)
346 mgy = rz(1)*va(1) + rz(2)*vb(1) + rz(3)*vc(1) + rz(4)*vd(1)
347 . - rx(1)*va(3) - rx(2)*vb(3) - rx(3)*vc(3) - rx(4)*vd(3)
348 mgz = rx(1)*va(2) + rx(2)*vb(2) + rx(3)*vc(2) + rx(4)*vd(2)
349 . - ry(1)*va(1) - ry(2)*vb(1) - ry(3)*vc(1) - ry(4)*vd(1)
350C
351 vrm(1)=det*(mgx*b1+mgy*c3+mgz*c2)
352 vrm(2)=det*(mgy*b2+mgz*c1+mgx*c3)
353 vrm(3)=det*(mgz*b3+mgx*c2+mgy*c1)
354C
355 wx = vrm(1)
356 wy = vrm(2)
357 wz = vrm(3)
358 ELSE
359 wx = (vrm(1)+vrs(1))*half
360 wy = (vrm(2)+vrs(2))*half
361 wz = (vrm(3)+vrs(3))*half
362 ENDIF
363C
364C rayon vecteur a TT=0
365 r(1)=skew(1)
366 r(2)=skew(2)
367 r(3)=skew(3)
368
369C Vitesse entrainemnet
370 vx = vx - (wy*r(3)-wz*r(2))
371 vy = vy - (wz*r(1)-wx*r(3))
372 vz = vz - (wx*r(2)-wy*r(1))
373C
374 bb1=b1*b1
375 bb2=b2*b2
376 bb3=b3*b3
377 cc1=c1*c1
378 cc2=c2*c2
379 cc3=c3*c3
380 dwdu=det*sqrt(max(bb1*(yy+zz)+cc3*(zz+xx)+cc2*(xx+yy),
381 . bb2*(zz+xx)+cc1*(xx+yy)+cc3*(yy+zz),
382 . bb3*(xx+yy)+cc2*(yy+zz)+cc1*(zz+xx)))
383C
384 stif=sqrt((r(1)*r(1)+r(2)*r(2)+r(3)*r(3)))*dwdu
385C
386C-----------
387 RETURN
388 END
389
390!||====================================================================
391!|| i2pen_rot28 ../common_source/interf/i2pen_rot.F
392!||--- called by ------------------------------------------------------
393!|| i2_dtn_28_pen ../starter/source/interfaces/inter3d1/i2_dtn_28.F
394!|| i2for28_pen ../engine/source/interfaces/interf/i2for28_pen.F
395!|| i2for28p_pen ../engine/source/interfaces/interf/i2for28p_pen.F
396!||====================================================================
397 SUBROUTINE i2pen_rot28(SKEW ,TT ,DT1 ,STIF ,
398 . RS ,RM ,VX ,VY ,VZ ,
399 . RX ,RY ,RZ ,VA ,VB ,
400 . VC ,VD ,VRM ,VRS ,DET ,
401 . B1 ,B2 ,B3 ,C1 ,C2 ,
402 . C3 ,IN_SECND)
403C-----------------------------------------------
404C I m p l i c i t T y p e s
405C-----------------------------------------------
406#include "implicit_f.inc"
407C-----------------------------------------------
408C C o m m o n B l o c k s
409C-----------------------------------------------
410#include "param_c.inc"
411#include "com01_c.inc"
412C-----------------------------------------------
413C D u m m y A r g u m e n t s
414C-----------------------------------------------
415C REAL
416 my_real
417 . tt,dt1,stif,vx,vy,vz,b1,b2,b3,c1,c2,c3,det
418 my_real
419 . skew(9),rs(3),rm(3),rx(4),ry(4),rz(4),
420 . va(3), vb(3), vc(3), vd(3),vrs(3),vrm(3)
421C-----------------------------------------------
422C L o c a l V a r i a b l e s
423C-----------------------------------------------
424C REAL
425 my_real
426 . r(3),dwdu,
427 . x12,x22,x32,x42,y12,y22,y32,y42,z12,z22,z32,z42,
428 . xx,yy,zz,xxx,yyy,zzz,xy,yz,zx,xy2,yz2,zx2,
429 . bb1,bb2,bb3,cc1,cc2,cc3,
430 . mgx,mgy,mgz,wx,wy,wz,in_secnd
431C=======================================================================
432C
433 IF (tt == zero) THEN
434C rayon vecteur HS a TT=0, en coord locales
435 skew(1) = rs(1)-rm(1)
436 skew(2) = rs(2)-rm(2)
437 skew(3) = rs(3)-rm(3)
438 ENDIF
439C--------------------
440C
441 x12=rx(1)*rx(1)
442 x22=rx(2)*rx(2)
443 x32=rx(3)*rx(3)
444 x42=rx(4)*rx(4)
445 y12=ry(1)*ry(1)
446 y22=ry(2)*ry(2)
447 y32=ry(3)*ry(3)
448 y42=ry(4)*ry(4)
449 z12=rz(1)*rz(1)
450 z22=rz(2)*rz(2)
451 z32=rz(3)*rz(3)
452 z42=rz(4)*rz(4)
453 xx=x12 + x22 + x32 + x42
454 yy=y12 + y22 + y32 + y42
455 zz=z12 + z22 + z32 + z42
456 xy=rx(1)*ry(1) + rx(2)*ry(2) + rx(3)*ry(3) + rx(4)*ry(4)
457 yz=ry(1)*rz(1) + ry(2)*rz(2) + ry(3)*rz(3) + ry(4)*rz(4)
458 zx=rz(1)*rx(1) + rz(2)*rx(2) + rz(3)*rx(3) + rz(4)*rx(4)
459 zzz=xx+yy
460 xxx=yy+zz
461 yyy=zz+xx
462 xy2=xy*xy
463 yz2=yz*yz
464 zx2=zx*zx
465 det= xxx*yyy*zzz - xxx*yz2 - yyy*zx2 - zzz*xy2
466 . - two*xy*yz*zx
467 det=one/det
468 b1=zzz*yyy-yz2
469 b2=xxx*zzz-zx2
470 b3=yyy*xxx-xy2
471 c3=zzz*xy+yz*zx
472 c1=xxx*yz+zx*xy
473 c2=yyy*zx+xy*yz
474C
475 mgx = ry(1)*va(3) + ry(2)*vb(3) + ry(3)*vc(3) + ry(4)*vd(3)
476 . - rz(1)*va(2) - rz(2)*vb(2) - rz(3)*vc(2) - rz(4)*vd(2)
477 mgy = rz(1)*va(1) + rz(2)*vb(1) + rz(3)*vc(1) + rz(4)*vd(1)
478 . - rx(1)*va(3) - rx(2)*vb(3) - rx(3)*vc(3) - rx(4)*vd(3)
479 mgz = rx(1)*va(2) + rx(2)*vb(2) + rx(3)*vc(2) + rx(4)*vd(2)
480 . - ry(1)*va(1) - ry(2)*vb(1) - ry(3)*vc(1) - ry(4)*vd(1)
481C
482 vrm(1)=det*(mgx*b1+mgy*c3+mgz*c2)
483 vrm(2)=det*(mgy*b2+mgz*c1+mgx*c3)
484 vrm(3)=det*(mgz*b3+mgx*c2+mgy*c1)
485C
486 IF (iroddl == 0 .OR. in_secnd == zero) THEN
487C-- For solid secnd node VRM=VRS=velocity main segment
488 wx = vrm(1)
489 wy = vrm(2)
490 wz = vrm(3)
491 ELSE
492 wx = (vrm(1)+vrs(1))*half
493 wy = (vrm(2)+vrs(2))*half
494 wz = (vrm(3)+vrs(3))*half
495 ENDIF
496C
497C rayon vecteur a TT=0
498 r(1)=skew(1)
499 r(2)=skew(2)
500 r(3)=skew(3)
501
502C Vitesse entrainemnet
503 vx = vx - (wy*r(3)-wz*r(2)) -(vrm(2)*rm(3)-vrm(3)*rm(2))
504 vy = vy - (wz*r(1)-wx*r(3)) -(vrm(3)*rm(1)-vrm(1)*rm(3))
505 vz = vz - (wx*r(2)-wy*r(1)) -(vrm(1)*rm(2)-vrm(2)*rm(1))
506C
507 bb1=b1*b1
508 bb2=b2*b2
509 bb3=b3*b3
510 cc1=c1*c1
511 cc2=c2*c2
512 cc3=c3*c3
513 dwdu=det*sqrt(max(bb1*(yy+zz)+cc3*(zz+xx)+cc2*(xx+yy),
514 . bb2*(zz+xx)+cc1*(xx+yy)+cc3*(yy+zz),
515 . bb3*(xx+yy)+cc2*(yy+zz)+cc1*(zz+xx)))
516C
517 stif=sqrt((r(1)*r(1)+r(2)*r(2)+r(3)*r(3)))*dwdu
518C STIF=ZERO
519C-----------
520 RETURN
521 END
#define my_real
Definition cppsort.cpp:32
subroutine i2for26(x, v, vr, a, ar, ms, stifn, stifr, weight, irect, nsv, irtl, dr, dl, fini, fsav, fncont, nsn, stfn, stfr, visc, noint, nodnx_sms, dmint2, sav_for_pena, ms_pena, in, dt2t, neltst, ityptst, miner, h3d_data, fncontp, ftcontp)
Definition i2for26.F:43
subroutine i2pen_rot26(tt, dt1, dwdu, wlx, wly, wlz, rx, ry, rz, va, vb, vc, vd)
Definition i2pen_rot.F:149
subroutine i2pen_rot28(skew, tt, dt1, stif, rs, rm, vx, vy, vz, rx, ry, rz, va, vb, vc, vd, vrm, vrs, det, b1, b2, b3, c1, c2, c3, in_secnd)
Definition i2pen_rot.F:403
subroutine i2pen_rot27(skew, tt, dt1, stif, rs, rm, vx, vy, vz, rx, ry, rz, va, vb, vc, vd, vrm, vrs, det, b1, b2, b3, c1, c2, c3, in_secnd)
Definition i2pen_rot.F:270
subroutine i2pen_rot(skew, tt, dt1, stif, rs, rm, v1, v2, v3, rx, ry, rz, va, vb, vc, vd)
Definition i2pen_rot.F:34
#define max(a, b)
Definition macros.h:21