OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ccoor3.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!|| ccoor3 ../engine/source/elements/shell/coque/ccoor3.F
25!||--- called by ------------------------------------------------------
26!|| cforc3 ../engine/source/elements/shell/coque/cforc3.F
27!||====================================================================
28 SUBROUTINE ccoor3(JFT ,JLT ,X ,IXC ,GEO ,OFFG ,
29 2 OFF ,SIGY,PID,V,VR,VL1,VL2,VL3,VL4,
30 3 VRL1,VRL2,VRL3,VRL4,MAT,DT1C,THKE,THK0,NGL,
31 4 X1 ,X2 ,X3 ,X4 ,Y1 ,Y2 ,
32 5 Y3 ,Y4 ,Z1 ,Z2 ,Z3 ,Z4 )
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C G l o b a l P a r a m e t e r s
39C-----------------------------------------------
40#include "mvsiz_p.inc"
41C-----------------------------------------------
42C C o m m o n B l o c k s
43C-----------------------------------------------
44#include "param_c.inc"
45#include "com08_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER JFT, JLT, J
50 INTEGER NGL(MVSIZ), IXC(NIXC,*),MAT(MVSIZ), PID(MVSIZ)
51C REAL
52 my_real
53 . x(3,*), geo(npropg,*), offg(*), off(*), sigy(*),
54 . v(3,*),vr(3,*),vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
55 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),dt1c(*),thke(*),
56 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz), y1(mvsiz),
57 . y2(mvsiz), y3(mvsiz), y4(mvsiz), z1(mvsiz), z2(mvsiz),
58 . z3(mvsiz), z4(mvsiz) ,thk0(mvsiz)
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER IXCTMP2,IXCTMP3,IXCTMP4,IXCTMP5
63 INTEGER I, MAT_1
64 my_real OFF_L
65C-----------------------------------------------
66 mat_1 = ixc(1,1)
67 mat(jft:jlt)= mat_1
68c
69 DO i=jft,jlt
70 ixctmp2=ixc(2,i)
71 ixctmp3=ixc(3,i)
72 ixctmp4=ixc(4,i)
73 ixctmp5=ixc(5,i)
74 ngl(i)=ixc(7,i)
75 pid(i)=ixc(6,i)
76 thk0(i) = thke(i)
77C----------------------------
78C COORDONNEES
79C----------------------------
80 x1(i)=x(1,ixctmp2)
81 y1(i)=x(2,ixctmp2)
82 z1(i)=x(3,ixctmp2)
83 x2(i)=x(1,ixctmp3)
84 y2(i)=x(2,ixctmp3)
85 z2(i)=x(3,ixctmp3)
86 x3(i)=x(1,ixctmp4)
87 y3(i)=x(2,ixctmp4)
88 z3(i)=x(3,ixctmp4)
89 x4(i)=x(1,ixctmp5)
90 y4(i)=x(2,ixctmp5)
91 z4(i)=x(3,ixctmp5)
92 vl1(i,1)=v(1,ixctmp2)
93 vl1(i,2)=v(2,ixctmp2)
94 vl1(i,3)=v(3,ixctmp2)
95 vl2(i,1)=v(1,ixctmp3)
96 vl2(i,2)=v(2,ixctmp3)
97 vl2(i,3)=v(3,ixctmp3)
98 vl3(i,1)=v(1,ixctmp4)
99 vl3(i,2)=v(2,ixctmp4)
100 vl3(i,3)=v(3,ixctmp4)
101 vl4(i,1)=v(1,ixctmp5)
102 vl4(i,2)=v(2,ixctmp5)
103 vl4(i,3)=v(3,ixctmp5)
104 vrl1(i,1)=vr(1,ixctmp2)
105 vrl1(i,2)=vr(2,ixctmp2)
106 vrl1(i,3)=vr(3,ixctmp2)
107 vrl2(i,1)=vr(1,ixctmp3)
108 vrl2(i,2)=vr(2,ixctmp3)
109 vrl2(i,3)=vr(3,ixctmp3)
110 vrl3(i,1)=vr(1,ixctmp4)
111 vrl3(i,2)=vr(2,ixctmp4)
112 vrl3(i,3)=vr(3,ixctmp4)
113 vrl4(i,1)=vr(1,ixctmp5)
114 vrl4(i,2)=vr(2,ixctmp5)
115 vrl4(i,3)=vr(3,ixctmp5)
116 END DO
117C
118 off_l = zero
119 DO i=jft,jlt
120 dt1c(i) = dt1
121 off(i) = min(one,abs(offg(i)))
122 off_l = min(off_l,offg(i))
123 sigy(i) = ep30
124 ENDDO
125 IF(off_l<0.)THEN
126 DO i=jft,jlt
127 IF(offg(i)<0.)THEN
128 vl1(i,1)=zero
129 vl1(i,2)=zero
130 vl1(i,3)=zero
131 vl2(i,1)=zero
132 vl2(i,2)=zero
133 vl2(i,3)=zero
134 vl3(i,1)=zero
135 vl3(i,2)=zero
136 vl3(i,3)=zero
137 vl4(i,1)=zero
138 vl4(i,2)=zero
139 vl4(i,3)=zero
140 vrl1(i,1)=zero
141 vrl1(i,2)=zero
142 vrl1(i,3)=zero
143 vrl2(i,1)=zero
144 vrl2(i,2)=zero
145 vrl2(i,3)=zero
146 vrl3(i,1)=zero
147 vrl3(i,2)=zero
148 vrl3(i,3)=zero
149 vrl4(i,1)=zero
150 vrl4(i,2)=zero
151 vrl4(i,3)=zero
152 ENDIF
153 ENDDO
154 ENDIF
155C
156 RETURN
157 END
158!||====================================================================
159!|| ccoort3 ../engine/source/elements/shell/coque/ccoor3.F
160!||--- called by ------------------------------------------------------
161!|| cforc3 ../engine/source/elements/shell/coque/cforc3.F
162!||====================================================================
163 SUBROUTINE ccoort3(JFT ,JLT ,X ,IXC ,OFFG ,
164 1 DR ,PX1 ,PX2 ,PY1 ,PY2 ,
165 2 E1X ,E1Y ,E1Z ,E2X ,E2Y ,
166 3 E2Z ,E3X ,E3Y ,E3Z ,AREA ,
167 4 V13X ,V24X ,V13Y ,V24Y ,SMSTR ,
168 5 NEL )
169C-----------------------------------------------
170C I m p l i c i t T y p e s
171C-----------------------------------------------
172#include "implicit_f.inc"
173C-----------------------------------------------
174C G l o b a l P a r a m e t e r s
175C-----------------------------------------------
176#include "mvsiz_p.inc"
177C-----------------------------------------------
178C D u m m y A r g u m e n t s
179C-----------------------------------------------
180 INTEGER JFT, JLT,NEL
181 INTEGER IXC(NIXC,*)
182 my_real
183 . X(3,*), OFFG(*), DR(3,*),
184 . E1X(*), E1Y(*), E1Z(*),
185 . E2X(*), E2Y(*), E2Z(*),E3X(*), E3Y(*), E3Z(*),
186 . SMSTR(*),AREA(*),PX1(*),PX2(*),PY1(*),PY2(*),
187 . V13X(*),V24X(*),V13Y(*),V24Y(*)
188C-----------------------------------------------
189C L o c a l V a r i a b l e s
190C-----------------------------------------------
191 INTEGER I, J, II(9),NN(4)
192 my_real
193 . X0G2(MVSIZ),X0G3(MVSIZ),X0G4(MVSIZ),Y0G2(MVSIZ),
194 . Y0G3(MVSIZ),Y0G4(MVSIZ),Z0G2(MVSIZ),Z0G3(MVSIZ),Z0G4(MVSIZ),
195 . OFF_L,VG13(3),VG24(3),
196 . XL2(MVSIZ),XL3(MVSIZ),XL4(MVSIZ),YL2(MVSIZ),YL3(MVSIZ),
197 . YL4(MVSIZ),UXYZ(MVSIZ,3,4),A_I(MVSIZ)
198C-----------------------------------------------
199 DO I=1,9
200 ii(i) = nel*(i-1)
201 ENDDO
202C
203 DO i=jft,jlt
204 IF(abs(offg(i))==one)offg(i)=sign(two,offg(i))
205 uxyz(i,1:3,1:4)= zero
206 nn(1)=ixc(2,i)
207 nn(2)=ixc(3,i)
208 nn(3)=ixc(4,i)
209 nn(4)=ixc(5,i)
210 x0g2(i) = x(1,nn(2))-x(1,nn(1))
211 y0g2(i) = x(2,nn(2))-x(2,nn(1))
212 z0g2(i) = x(3,nn(2))-x(3,nn(1))
213 x0g3(i) = x(1,nn(3))-x(1,nn(1))
214 y0g3(i) = x(2,nn(3))-x(2,nn(1))
215 z0g3(i) = x(3,nn(3))-x(3,nn(1))
216 x0g4(i) = x(1,nn(4))-x(1,nn(1))
217 y0g4(i) = x(2,nn(4))-x(2,nn(1))
218 z0g4(i) = x(3,nn(4))-x(3,nn(1))
219 IF(abs(offg(i))==two)THEN
220 uxyz(i,1,2) = x0g2(i)-smstr(ii(1)+i)
221 uxyz(i,2,2) = y0g2(i)-smstr(ii(2)+i)
222 uxyz(i,3,2) = z0g2(i)-smstr(ii(3)+i)
223 uxyz(i,1,3) = x0g3(i)-smstr(ii(4)+i)
224 uxyz(i,2,3) = y0g3(i)-smstr(ii(5)+i)
225 uxyz(i,3,3) = z0g3(i)-smstr(ii(6)+i)
226 uxyz(i,1,4) = x0g4(i)-smstr(ii(7)+i)
227 uxyz(i,2,4) = y0g4(i)-smstr(ii(8)+i)
228 uxyz(i,3,4) = z0g4(i)-smstr(ii(9)+i)
229
230 x0g2(i) = smstr(ii(1)+i)
231 y0g2(i) = smstr(ii(2)+i)
232 z0g2(i) = smstr(ii(3)+i)
233 x0g3(i) = smstr(ii(4)+i)
234 y0g3(i) = smstr(ii(5)+i)
235 z0g3(i) = smstr(ii(6)+i)
236 x0g4(i) = smstr(ii(7)+i)
237 y0g4(i) = smstr(ii(8)+i)
238 z0g4(i) = smstr(ii(9)+i)
239C
240 ELSE
241 smstr(ii(1)+i)= x0g2(i)
242 smstr(ii(2)+i)= y0g2(i)
243 smstr(ii(3)+i)= z0g2(i)
244 smstr(ii(4)+i)= x0g3(i)
245 smstr(ii(5)+i)= y0g3(i)
246 smstr(ii(6)+i)= z0g3(i)
247 smstr(ii(7)+i)= x0g4(i)
248 smstr(ii(8)+i)= y0g4(i)
249 smstr(ii(9)+i)= z0g4(i)
250 ENDIF
251 ENDDO
252C
253 DO i=jft,jlt
254 xl2(i)=e1x(i)*x0g2(i)+e1y(i)*y0g2(i)+e1z(i)*z0g2(i)
255 xl3(i)=e1x(i)*x0g3(i)+e1y(i)*y0g3(i)+e1z(i)*z0g3(i)
256 xl4(i)=e1x(i)*x0g4(i)+e1y(i)*y0g4(i)+e1z(i)*z0g4(i)
257 yl2(i)=e2x(i)*x0g2(i)+e2y(i)*y0g2(i)+e2z(i)*z0g2(i)
258 yl3(i)=e2x(i)*x0g3(i)+e2y(i)*y0g3(i)+e2z(i)*z0g3(i)
259 yl4(i)=e2x(i)*x0g4(i)+e2y(i)*y0g4(i)+e2z(i)*z0g4(i)
260 ENDDO
261 DO i=jft,jlt
262 px1(i)= half*(yl2(i)-yl4(i))
263 py1(i)= half*(xl4(i)-xl2(i))
264 px2(i)= half* yl3(i)
265 py2(i)=-half* xl3(i)
266 area(i)= max(two*(py2(i)*px1(i)-py1(i)*px2(i)),em20)
267 a_i(i) = one / area(i)
268 ENDDO
269C------
270 DO i=jft,jlt
271 vg13(1)=uxyz(i,1,1)-uxyz(i,1,3)
272 vg24(1)=uxyz(i,1,2)-uxyz(i,1,4)
273 vg13(2)=uxyz(i,2,1)-uxyz(i,2,3)
274 vg24(2)=uxyz(i,2,2)-uxyz(i,2,4)
275 vg13(3)=uxyz(i,3,1)-uxyz(i,3,3)
276 vg24(3)=uxyz(i,3,2)-uxyz(i,3,4)
277C
278 v13x(i)=e1x(i)*vg13(1)+e1y(i)*vg13(2)+e1z(i)*vg13(3)
279 v24x(i)=e1x(i)*vg24(1)+e1y(i)*vg24(2)+e1z(i)*vg24(3)
280 v13y(i)=e2x(i)*vg13(1)+e2y(i)*vg13(2)+e2z(i)*vg13(3)
281 v24y(i)=e2x(i)*vg24(1)+e2y(i)*vg24(2)+e2z(i)*vg24(3)
282C
283 px1(i)=a_i(i)*px1(i)
284 py1(i)=a_i(i)*py1(i)
285 px2(i)=a_i(i)*px2(i)
286 py2(i)=a_i(i)*py2(i)
287 ENDDO
288C
289 off_l = zero
290 DO i=jft,jlt
291 off_l = min(off_l,offg(i))
292 ENDDO
293 IF (off_l < zero) THEN
294 DO i=jft,jlt
295 IF (offg(i) < zero) THEN
296 v13x(i)=zero
297 v24x(i)=zero
298 v13y(i)=zero
299 v24y(i)=zero
300 ENDIF
301 ENDDO
302 ENDIF
303C-----------
304 RETURN
305 END
subroutine ccoort3(jft, jlt, x, ixc, offg, dr, px1, px2, py1, py2, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, area, v13x, v24x, v13y, v24y, smstr, nel)
Definition ccoor3.F:169
subroutine ccoor3(jft, jlt, x, ixc, geo, offg, off, sigy, pid, v, vr, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, mat, dt1c, thke, thk0, ngl, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4)
Definition ccoor3.F:33
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21