OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
srep2glo.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!|| srep2glo ../engine/source/elements/sph/srep2glo.F
25!||--- called by ------------------------------------------------------
26!|| soltosphp ../engine/source/elements/sph/soltosph.F
27!||--- calls -----------------------------------------------------
28!|| scortho3 ../engine/source/elements/thickshell/solidec/scortho3.F
29!|| sortho3 ../engine/source/elements/solid/solide/sortho3.F
30!|| srepisot3 ../engine/source/elements/solid/solide/srepisot3.F
31!||====================================================================
32 SUBROUTINE srep2glo(
33 1 X, IXS, GAMA, RX,
34 2 RY, RZ, SX, SY,
35 3 SZ, TX, TY, TZ,
36 4 R11, R12, R13, R21,
37 5 R22, R23, R31, R32,
38 6 R33, T11, T12, T13,
39 7 T21, T22, T23, T31,
40 8 T32, T33, JR0, JS0,
41 9 JT0, NEL, LFT, LLT,
42 A JHBE, JCVT, ISORTH)
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47C-----------------------------------------------
48C G l o b a l P a r a m e t e r s
49C-----------------------------------------------
50#include "mvsiz_p.inc"
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER, INTENT(INOUT) :: LFT
58 INTEGER, INTENT(INOUT) :: LLT
59 INTEGER, INTENT(INOUT) :: JHBE
60 INTEGER, INTENT(INOUT) :: JCVT
61 INTEGER, INTENT(INOUT) :: ISORTH
62 INTEGER NEL
63C REAL
64 my_real
65 . X(3,*), GAMA(NEL,6),
66 . R11(MVSIZ),R12(MVSIZ),R13(MVSIZ),
67 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
68 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
69 . t11(mvsiz),t12(mvsiz),t13(mvsiz),
70 . t21(mvsiz),t22(mvsiz),t23(mvsiz),
71 . t31(mvsiz),t32(mvsiz),t33(mvsiz),
72 . rx(mvsiz),sx(mvsiz),tx(mvsiz),
73 . ry(mvsiz),sy(mvsiz),ty(mvsiz),
74 . rz(mvsiz),sz(mvsiz),tz(mvsiz),
75 . jr0(mvsiz),js0(mvsiz),jt0(mvsiz)
76 INTEGER IXS(NIXS,*)
77C-----------------------------------------------
78C L o c a l V a r i a b l e s
79C-----------------------------------------------
80C REAL
81 my_real
82 . X1(MVSIZ), X2(MVSIZ), X3(MVSIZ), X4(MVSIZ),
83 . X5(MVSIZ), X6(MVSIZ), X7(MVSIZ), X8(MVSIZ),
84 . Y1(MVSIZ), Y2(MVSIZ), Y3(MVSIZ), Y4(MVSIZ),
85 . Y5(MVSIZ), Y6(MVSIZ), Y7(MVSIZ), Y8(MVSIZ),
86 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
87 . z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz),
88 . g11,g22,g33,g12,g21,g23,g32,g13,g31,
89 . s11,s22,s33,s12,s21,s23,s32,s13,s31,rr,xl,yl,zl
90 INTEGER NC1, NC2, NC3, NC4,
91 . nc5, nc6, nc7, nc8, i
92C-----------------------------------------------
93 DO i=lft,llt
94 nc1=ixs(2,i)
95 nc2=ixs(3,i)
96 nc3=ixs(4,i)
97 nc4=ixs(5,i)
98 nc5=ixs(6,i)
99 nc6=ixs(7,i)
100 nc7=ixs(8,i)
101 nc8=ixs(9,i)
102C----------------------------
103C NODAL COORDINATES |
104C----------------------------
105 x1(i)=x(1,nc1)
106 y1(i)=x(2,nc1)
107 z1(i)=x(3,nc1)
108 x2(i)=x(1,nc2)
109 y2(i)=x(2,nc2)
110 z2(i)=x(3,nc2)
111 x3(i)=x(1,nc3)
112 y3(i)=x(2,nc3)
113 z3(i)=x(3,nc3)
114 x4(i)=x(1,nc4)
115 y4(i)=x(2,nc4)
116 z4(i)=x(3,nc4)
117 x5(i)=x(1,nc5)
118 y5(i)=x(2,nc5)
119 z5(i)=x(3,nc5)
120 x6(i)=x(1,nc6)
121 y6(i)=x(2,nc6)
122 z6(i)=x(3,nc6)
123 x7(i)=x(1,nc7)
124 y7(i)=x(2,nc7)
125 z7(i)=x(3,nc7)
126 x8(i)=x(1,nc8)
127 y8(i)=x(2,nc8)
128 z8(i)=x(3,nc8)
129 END DO
130C-----------
131C isoparametric system (non orthomalized)
132 CALL srepisot3(
133 1 x1, x2, x3, x4,
134 2 x5, x6, x7, x8,
135 3 y1, y2, y3, y4,
136 4 y5, y6, y7, y8,
137 5 z1, z2, z3, z4,
138 6 z5, z6, z7, z8,
139 7 rx, ry, rz, sx,
140 8 sy, sz, tx, ty,
141 9 tz, nel)
142
143C-----------
144C GLOBAL => Corotational
145 IF (jhbe == 14 .OR. jhbe == 24) THEN
146 CALL sortho3(
147 1 rx, ry, rz, sx,
148 2 sy, sz, tx, ty,
149 3 tz, r12, r13, r11,
150 4 r22, r23, r21, r32,
151 5 r33, r31, nel)
152 ELSEIF (jhbe == 15 ) THEN
153 CALL scortho3(
154 1 rx, ry, rz, sx,
155 2 sy, sz, tx, ty,
156 3 tz, r11, r12, r13,
157 4 r21, r22, r23, r31,
158 5 r32, r33, nel)
159 ELSEIF(jcvt /= 0)THEN
160 CALL sortho3(
161 1 rx, ry, rz, sx,
162 2 sy, sz, tx, ty,
163 3 tz, r11, r12, r13,
164 4 r21, r22, r23, r31,
165 5 r32, r33, nel)
166 ENDIF
167C-----------
168C orthomalized isoparametric system
169 DO i=lft,llt
170 rr =sqrt(rx(i)**2+ry(i)**2+rz(i)**2)
171 rx(i)=rx(i)/max(em30,rr)
172 ry(i)=ry(i)/max(em30,rr)
173 rz(i)=rz(i)/max(em30,rr)
174 END DO
175 DO i=lft,llt
176 tx(i)=ry(i)*sz(i)-rz(i)*sy(i)
177 ty(i)=rz(i)*sx(i)-rx(i)*sz(i)
178 tz(i)=rx(i)*sy(i)-ry(i)*sx(i)
179 rr =sqrt(tx(i)**2+ty(i)**2+tz(i)**2)
180 tx(i)=tx(i)/max(em30,rr)
181 ty(i)=ty(i)/max(em30,rr)
182 tz(i)=tz(i)/max(em30,rr)
183 END DO
184 DO i=lft,llt
185 sx(i)=ty(i)*rz(i)-tz(i)*ry(i)
186 sy(i)=tz(i)*rx(i)-tx(i)*rz(i)
187 sz(i)=tx(i)*ry(i)-ty(i)*rx(i)
188 rr =sqrt(sx(i)**2+sy(i)**2+sz(i)**2)
189 sx(i)=sx(i)/max(em30,rr)
190 sy(i)=sy(i)/max(em30,rr)
191 sz(i)=sz(i)/max(em30,rr)
192 END DO
193C-----------
194C REPERE ORTHOTROPE.
195C-----------
196 IF (isorth /= 0) THEN
197 IF (jcvt == 0) THEN
198 DO i=lft,llt
199 g11=gama(i,1)
200 g21=gama(i,2)
201 g31=gama(i,3)
202 g12=gama(i,4)
203 g22=gama(i,5)
204 g32=gama(i,6)
205 g13=g21*g32-g31*g22
206 g23=g31*g12-g11*g32
207 g33=g11*g22-g21*g12
208C MATRICE DE PASSAGE GLOBAL -> ORTHOTROPE.
209 t11(i)=rx(i)*g11+sx(i)*g21+tx(i)*g31
210 t12(i)=rx(i)*g12+sx(i)*g22+tx(i)*g32
211 t13(i)=rx(i)*g13+sx(i)*g23+tx(i)*g33
212 t21(i)=ry(i)*g11+sy(i)*g21+ty(i)*g31
213 t22(i)=ry(i)*g12+sy(i)*g22+ty(i)*g32
214 t23(i)=ry(i)*g13+sy(i)*g23+ty(i)*g33
215 t31(i)=rz(i)*g11+sz(i)*g21+tz(i)*g31
216 t32(i)=rz(i)*g12+sz(i)*g22+tz(i)*g32
217 t33(i)=rz(i)*g13+sz(i)*g23+tz(i)*g33
218 END DO
219 ELSE
220 DO i=lft,llt
221 g11=gama(i,1)
222 g21=gama(i,2)
223 g31=gama(i,3)
224 g12=gama(i,4)
225 g22=gama(i,5)
226 g32=gama(i,6)
227 g13=g21*g32-g31*g22
228 g23=g31*g12-g11*g32
229 g33=g11*g22-g21*g12
230C MATRICE DE PASSAGE GLOBAL -> ORTHOTROPE.
231 t11(i)=r11(i)*g11+r12(i)*g21+r13(i)*g31
232 t12(i)=r11(i)*g12+r12(i)*g22+r13(i)*g32
233 t13(i)=r11(i)*g13+r12(i)*g23+r13(i)*g33
234 t21(i)=r21(i)*g11+r22(i)*g21+r23(i)*g31
235 t22(i)=r21(i)*g12+r22(i)*g22+r23(i)*g32
236 t23(i)=r21(i)*g13+r22(i)*g23+r23(i)*g33
237 t31(i)=r31(i)*g11+r32(i)*g21+r33(i)*g31
238 t32(i)=r31(i)*g12+r32(i)*g22+r33(i)*g32
239 t33(i)=r31(i)*g13+r32(i)*g23+r33(i)*g33
240 END DO
241 ENDIF
242 ENDIF
243C
244 IF (jhbe==24) THEN
245 DO i=lft,llt
246 xl=r11(i)*x1(i)+r21(i)*y1(i)+r31(i)*z1(i)
247 yl=r12(i)*x1(i)+r22(i)*y1(i)+r32(i)*z1(i)
248 zl=r13(i)*x1(i)+r23(i)*y1(i)+r33(i)*z1(i)
249 x1(i)=xl
250 y1(i)=yl
251 z1(i)=zl
252 xl=r11(i)*x2(i)+r21(i)*y2(i)+r31(i)*z2(i)
253 yl=r12(i)*x2(i)+r22(i)*y2(i)+r32(i)*z2(i)
254 zl=r13(i)*x2(i)+r23(i)*y2(i)+r33(i)*z2(i)
255 x2(i)=xl
256 y2(i)=yl
257 z2(i)=zl
258 xl=r11(i)*x3(i)+r21(i)*y3(i)+r31(i)*z3(i)
259 yl=r12(i)*x3(i)+r22(i)*y3(i)+r32(i)*z3(i)
260 zl=r13(i)*x3(i)+r23(i)*y3(i)+r33(i)*z3(i)
261 x3(i)=xl
262 y3(i)=yl
263 z3(i)=zl
264 xl=r11(i)*x4(i)+r21(i)*y4(i)+r31(i)*z4(i)
265 yl=r12(i)*x4(i)+r22(i)*y4(i)+r32(i)*z4(i)
266 zl=r13(i)*x4(i)+r23(i)*y4(i)+r33(i)*z4(i)
267 x4(i)=xl
268 y4(i)=yl
269 z4(i)=zl
270 xl=r11(i)*x5(i)+r21(i)*y5(i)+r31(i)*z5(i)
271 yl=r12(i)*x5(i)+r22(i)*y5(i)+r32(i)*z5(i)
272 zl=r13(i)*x5(i)+r23(i)*y5(i)+r33(i)*z5(i)
273 x5(i)=xl
274 y5(i)=yl
275 z5(i)=zl
276 xl=r11(i)*x6(i)+r21(i)*y6(i)+r31(i)*z6(i)
277 yl=r12(i)*x6(i)+r22(i)*y6(i)+r32(i)*z6(i)
278 zl=r13(i)*x6(i)+r23(i)*y6(i)+r33(i)*z6(i)
279 x6(i)=xl
280 y6(i)=yl
281 z6(i)=zl
282 xl=r11(i)*x7(i)+r21(i)*y7(i)+r31(i)*z7(i)
283 yl=r12(i)*x7(i)+r22(i)*y7(i)+r32(i)*z7(i)
284 zl=r13(i)*x7(i)+r23(i)*y7(i)+r33(i)*z7(i)
285 x7(i)=xl
286 y7(i)=yl
287 z7(i)=zl
288 xl=r11(i)*x8(i)+r21(i)*y8(i)+r31(i)*z8(i)
289 yl=r12(i)*x8(i)+r22(i)*y8(i)+r32(i)*z8(i)
290 zl=r13(i)*x8(i)+r23(i)*y8(i)+r33(i)*z8(i)
291 x8(i)=xl
292 y8(i)=yl
293 z8(i)=zl
294 ENDDO
295C
296 DO i=lft,llt
297 jr0(i) = -x1(i)+x2(i)+x3(i)-
298 . x4(i)-x5(i)+x6(i)+
299 . x7(i)-x8(i)
300 js0(i) = -y1(i)-y2(i)+y3(i)+
301 . y4(i)-y5(i)-y6(i)+
302 . y7(i)+y8(i)
303 jt0(i) = -z1(i)-z2(i)-z3(i)-
304 . z4(i)+z5(i)+z6(i)+
305 . z7(i)+z8(i)
306 ENDDO
307 ENDIF
308C-----------
309 RETURN
310 END
#define max(a, b)
Definition macros.h:21
subroutine srep2glo(x, ixs, gama, rx, ry, rz, sx, sy, sz, tx, ty, tz, r11, r12, r13, r21, r22, r23, r31, r32, r33, t11, t12, t13, t21, t22, t23, t31, t32, t33, jr0, js0, jt0, nel, lft, llt, jhbe, jcvt, isorth)
Definition srep2glo.F:43
subroutine srepisot3(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, nel)
Definition srepisot3.F:42
subroutine sortho3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition sortho3.F:33
subroutine scortho3(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition scortho3.F:34