OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
smom43.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!|| smom43 ../engine/source/elements/solid/sconnect/smom43.F
25!||--- called by ------------------------------------------------------
26!|| suser43 ../engine/source/elements/solid/sconnect/suser43.F
27!||====================================================================
28 SUBROUTINE smom43(NEL ,
29 . F1X ,F2X ,F3X ,F4X ,F5X ,F6X ,F7X ,F8X ,
30 . F1Y ,F2Y ,F3Y ,F4Y ,F5Y ,F6Y ,F7Y ,F8Y ,
31 . F1Z ,F2Z ,F3Z ,F4Z ,F5Z ,F6Z ,F7Z ,F8Z ,
32 . R1X ,R2X ,R3X ,R4X ,R5X ,R6X ,R7X ,R8X ,
33 . R1Y ,R2Y ,R3Y ,R4Y ,R5Y ,R6Y ,R7Y ,R8Y ,
34 . R1Z ,R2Z ,R3Z ,R4Z ,R5Z ,R6Z ,R7Z ,R8Z ,
35 . RXX ,RYY ,RZZ ,TTHICK)
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C D u m m y A r g u m e n t s
42C-----------------------------------------------
43 INTEGER NEL
44C REAL
45 my_real
46 . TTHICK
47 my_real
48 . F1X(*),F2X(*),F3X(*),F4X(*),F5X(*),F6X(*),F7X(*),F8X(*),
49 . F1Y(*),F2Y(*),F3Y(*),F4Y(*),F5Y(*),F6Y(*),F7Y(*),F8Y(*),
50 . f1z(*),f2z(*),f3z(*),f4z(*),f5z(*),f6z(*),f7z(*),f8z(*),
51 . r1x(nel),r2x(nel),r3x(nel),r4x(nel),
52 . r5x(nel),r6x(nel),r7x(nel),r8x(nel),
53 . r1y(nel),r2y(nel),r3y(nel),r4y(nel),
54 . r5y(nel),r6y(nel),r7y(nel),r8y(nel),
55 . r1z(nel),r2z(nel),r3z(nel),r4z(nel),
56 . r5z(nel),r6z(nel),r7z(nel),r8z(nel),rxx(nel),ryy(nel),rzz(nel)
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER I
61C REAL
62 my_real
63 . MXX(NEL),MYY(NEL),MZZ(NEL)
64 my_real
65 . MYZ,MZY,MZX,MXZ,MXY,MYX,FXX,FYY,FZZ,FA,FB,RAX,RBX,RAY,RBY,
66 . D1,D2,DD
67C=======================================================================
68 DO i=1,nel
69 mxy = r1x(i)*f1y(i)+r2x(i)*f2y(i)+r3x(i)*f3y(i)+r4x(i)*f4y(i)
70 . +r5x(i)*f5y(i)+r6x(i)*f6y(i)+r7x(i)*f7y(i)+r8x(i)*f8y(i)
71 myx = r1y(i)*f1x(i)+r2y(i)*f2x(i)+r3y(i)*f3x(i)+r4y(i)*f4x(i)
72 . +r5y(i)*f5x(i)+r6y(i)*f6x(i)+r7y(i)*f7x(i)+r8y(i)*f8x(i)
73 mzz(i) = mxy - myx
74c
75C--- Moment Z
76c
77 fyy = mxy/rxx(i)
78 fxx =-myx/ryy(i)
79c
80 f1x(i) = f1x(i) - fxx
81 f2x(i) = f2x(i) - fxx
82 f3x(i) = f3x(i) + fxx
83 f4x(i) = f4x(i) + fxx
84 f5x(i) = f5x(i) - fxx
85 f6x(i) = f6x(i) - fxx
86 f7x(i) = f7x(i) + fxx
87 f8x(i) = f8x(i) + fxx
88c
89 f1y(i) = f1y(i) + fyy
90 f2y(i) = f2y(i) - fyy
91 f3y(i) = f3y(i) - fyy
92 f4y(i) = f4y(i) + fyy
93 f5y(i) = f5y(i) + fyy
94 f6y(i) = f6y(i) - fyy
95 f7y(i) = f7y(i) - fyy
96 f8y(i) = f8y(i) + fyy
97c
98c--- Moments Mx, MY
99c
100
101 IF(tthick >zero)THEN
102 myz = r1y(i)*f1z(i)+r2y(i)*f2z(i)+r3y(i)*f3z(i)+r4y(i)*f4z(i)
103 . +r5y(i)*f5z(i)+r6y(i)*f6z(i)+r7y(i)*f7z(i)+r8y(i)*f8z(i)
104 mzy = tthick*half*(-f1y(i)-f2y(i)-f3y(i)-f4y(i) !car R1Z,R2Z,R3Z,R4Z <0
105 . +f5y(i)+f6y(i)+f7y(i)+f8y(i))
106 mxx(i) = myz - mzy
107
108 mzx = tthick*half*(-f1x(i)-f2x(i)-f3x(i)-f4x(i)!car R1Z,R2Z,R3Z,R4Z <0
109 . +f5x(i)+f6x(i)+f7x(i)+f8x(i))
110 mxz = r1x(i)*f1z(i)+r2x(i)*f2z(i)+r3x(i)*f3z(i)+r4x(i)*f4z(i)
111 . +r5x(i)*f5z(i)+r6x(i)*f6z(i)+r7x(i)*f7z(i)+r8x(i)*f8z(i)
112 myy(i) = mzx - mxz
113 ELSE
114 myz = r1y(i)*f1z(i)+r2y(i)*f2z(i)+r3y(i)*f3z(i)+r4y(i)*f4z(i)
115 . +r5y(i)*f5z(i)+r6y(i)*f6z(i)+r7y(i)*f7z(i)+r8y(i)*f8z(i)
116 mzy = r1z(i)*f1y(i)+r2z(i)*f2y(i)+r3z(i)*f3y(i)+r4z(i)*f4y(i)
117 . +r5z(i)*f5y(i)+r6z(i)*f6y(i)+r7z(i)*f7y(i)+r8z(i)*f8y(i)
118 mxx(i) = myz - mzy
119 mzx = r1z(i)*f1x(i)+r2z(i)*f2x(i)+r3z(i)*f3x(i)+r4z(i)*f4x(i)
120 . +r5z(i)*f5x(i)+r6z(i)*f6x(i)+r7z(i)*f7x(i)+r8z(i)*f8x(i)
121 mxz = r1x(i)*f1z(i)+r2x(i)*f2z(i)+r3x(i)*f3z(i)+r4x(i)*f4z(i)
122 . +r5x(i)*f5z(i)+r6x(i)*f6z(i)+r7x(i)*f7z(i)+r8x(i)*f8z(i)
123 myy(i) = mzx - mxz
124 ENDIF
125c
126 rax = r1x(i) + r5x(i) - r3x(i) - r7x(i)
127 rbx = r4x(i) + r8x(i) - r2x(i) - r6x(i)
128 ray = r1y(i) + r5y(i) - r3y(i) - r7y(i)
129 rby = r4y(i) + r8y(i) - r2y(i) - r6y(i)
130 d1 = -mxx(i)*rbx - myy(i)*rby
131 d2 = mxx(i)*rax + myy(i)*ray
132 dd = ray*rbx - rax*rby
133 fa = d1 / dd
134 fb = d2 / dd
135C
136 f1z(i) = f1z(i) + fa
137 f2z(i) = f2z(i) - fb
138 f3z(i) = f3z(i) - fa
139 f4z(i) = f4z(i) + fb
140 f5z(i) = f5z(i) + fa
141 f6z(i) = f6z(i) - fb
142 f7z(i) = f7z(i) - fa
143 f8z(i) = f8z(i) + fb
144C---
145 ENDDO
146C-----------
147 RETURN
148 END
149
subroutine smom43(nel, f1x, f2x, f3x, f4x, f5x, f6x, f7x, f8x, f1y, f2y, f3y, f4y, f5y, f6y, f7y, f8y, f1z, f2z, f3z, f4z, f5z, f6z, f7z, f8z, r1x, r2x, r3x, r4x, r5x, r6x, r7x, r8x, r1y, r2y, r3y, r4y, r5y, r6y, r7y, r8y, r1z, r2z, r3z, r4z, r5z, r6z, r7z, r8z, rxx, ryy, rzz, tthick)
Definition smom43.F:36