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!||--- uses -----------------------------------------------------
28!|| element_mod ../common_source/modules/elements/element_mod.F90
29!||====================================================================
30 SUBROUTINE ccoor3(JFT ,JLT ,X ,IXC ,GEO ,OFFG ,
31 2 OFF ,SIGY,PID,V,VR,VL1,VL2,VL3,VL4,
32 3 VRL1,VRL2,VRL3,VRL4,MAT,DT1C,THKE,THK0,NGL,
33 4 X1 ,X2 ,X3 ,X4 ,Y1 ,Y2 ,
34 5 Y3 ,Y4 ,Z1 ,Z2 ,Z3 ,Z4 )
35 use element_mod , only : nixc
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C G l o b a l P a r a m e t e r s
42C-----------------------------------------------
43#include "mvsiz_p.inc"
44C-----------------------------------------------
45C C o m m o n B l o c k s
46C-----------------------------------------------
47#include "param_c.inc"
48#include "com08_c.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER JFT, JLT
53 INTEGER NGL(MVSIZ), IXC(NIXC,*),MAT(MVSIZ), PID(MVSIZ)
54C REAL
55 my_real
56 . x(3,*), geo(npropg,*), offg(*), off(*), sigy(*),
57 . v(3,*),vr(3,*),vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
58 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),dt1c(*),thke(*),
59 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz), y1(mvsiz),
60 . y2(mvsiz), y3(mvsiz), y4(mvsiz), z1(mvsiz), z2(mvsiz),
61 . z3(mvsiz), z4(mvsiz) ,thk0(mvsiz)
62C-----------------------------------------------
63C L o c a l V a r i a b l e s
64C-----------------------------------------------
65 INTEGER IXCTMP2,IXCTMP3,IXCTMP4,IXCTMP5
66 INTEGER I, MAT_1
67 my_real OFF_L
68C-----------------------------------------------
69 mat_1 = ixc(1,1)
70 mat(jft:jlt)= mat_1
71c
72 DO i=jft,jlt
73 ixctmp2=ixc(2,i)
74 ixctmp3=ixc(3,i)
75 ixctmp4=ixc(4,i)
76 ixctmp5=ixc(5,i)
77 ngl(i)=ixc(7,i)
78 pid(i)=ixc(6,i)
79 thk0(i) = thke(i)
80C----------------------------
81C COORDONNEES
82C----------------------------
83 x1(i)=x(1,ixctmp2)
84 y1(i)=x(2,ixctmp2)
85 z1(i)=x(3,ixctmp2)
86 x2(i)=x(1,ixctmp3)
87 y2(i)=x(2,ixctmp3)
88 z2(i)=x(3,ixctmp3)
89 x3(i)=x(1,ixctmp4)
90 y3(i)=x(2,ixctmp4)
91 z3(i)=x(3,ixctmp4)
92 x4(i)=x(1,ixctmp5)
93 y4(i)=x(2,ixctmp5)
94 z4(i)=x(3,ixctmp5)
95 vl1(i,1)=v(1,ixctmp2)
96 vl1(i,2)=v(2,ixctmp2)
97 vl1(i,3)=v(3,ixctmp2)
98 vl2(i,1)=v(1,ixctmp3)
99 vl2(i,2)=v(2,ixctmp3)
100 vl2(i,3)=v(3,ixctmp3)
101 vl3(i,1)=v(1,ixctmp4)
102 vl3(i,2)=v(2,ixctmp4)
103 vl3(i,3)=v(3,ixctmp4)
104 vl4(i,1)=v(1,ixctmp5)
105 vl4(i,2)=v(2,ixctmp5)
106 vl4(i,3)=v(3,ixctmp5)
107 vrl1(i,1)=vr(1,ixctmp2)
108 vrl1(i,2)=vr(2,ixctmp2)
109 vrl1(i,3)=vr(3,ixctmp2)
110 vrl2(i,1)=vr(1,ixctmp3)
111 vrl2(i,2)=vr(2,ixctmp3)
112 vrl2(i,3)=vr(3,ixctmp3)
113 vrl3(i,1)=vr(1,ixctmp4)
114 vrl3(i,2)=vr(2,ixctmp4)
115 vrl3(i,3)=vr(3,ixctmp4)
116 vrl4(i,1)=vr(1,ixctmp5)
117 vrl4(i,2)=vr(2,ixctmp5)
118 vrl4(i,3)=vr(3,ixctmp5)
119 END DO
120C
121 off_l = zero
122 DO i=jft,jlt
123 dt1c(i) = dt1
124 off(i) = min(one,abs(offg(i)))
125 off_l = min(off_l,offg(i))
126 sigy(i) = ep30
127 ENDDO
128 IF(off_l<0.)THEN
129 DO i=jft,jlt
130 IF(offg(i)<0.)THEN
131 vl1(i,1)=zero
132 vl1(i,2)=zero
133 vl1(i,3)=zero
134 vl2(i,1)=zero
135 vl2(i,2)=zero
136 vl2(i,3)=zero
137 vl3(i,1)=zero
138 vl3(i,2)=zero
139 vl3(i,3)=zero
140 vl4(i,1)=zero
141 vl4(i,2)=zero
142 vl4(i,3)=zero
143 vrl1(i,1)=zero
144 vrl1(i,2)=zero
145 vrl1(i,3)=zero
146 vrl2(i,1)=zero
147 vrl2(i,2)=zero
148 vrl2(i,3)=zero
149 vrl3(i,1)=zero
150 vrl3(i,2)=zero
151 vrl3(i,3)=zero
152 vrl4(i,1)=zero
153 vrl4(i,2)=zero
154 vrl4(i,3)=zero
155 ENDIF
156 ENDDO
157 ENDIF
158C
159 RETURN
160 END
161!||====================================================================
162!|| ccoort3 ../engine/source/elements/shell/coque/ccoor3.F
163!||--- called by ------------------------------------------------------
164!|| cforc3 ../engine/source/elements/shell/coque/cforc3.F
165!||--- uses -----------------------------------------------------
166!|| element_mod ../common_source/modules/elements/element_mod.F90
167!||====================================================================
168 SUBROUTINE ccoort3(JFT ,JLT ,X ,IXC ,OFFG ,
169 1 DR ,PX1 ,PX2 ,PY1 ,PY2 ,
170 2 E1X ,E1Y ,E1Z ,E2X ,E2Y ,
171 3 E2Z ,E3X ,E3Y ,E3Z ,AREA ,
172 4 V13X ,V24X ,V13Y ,V24Y ,SMSTR ,
173 5 NEL )
174 use element_mod , only : nixc
175C-----------------------------------------------
176C I m p l i c i t T y p e s
177C-----------------------------------------------
178#include "implicit_f.inc"
179C-----------------------------------------------
180C G l o b a l P a r a m e t e r s
181C-----------------------------------------------
182#include "mvsiz_p.inc"
183C-----------------------------------------------
184C D u m m y A r g u m e n t s
185C-----------------------------------------------
186 INTEGER JFT, JLT,NEL
187 INTEGER IXC(NIXC,*)
188 my_real
189 . X(3,*), OFFG(*), DR(3,*),
190 . E1X(*), E1Y(*), E1Z(*),
191 . E2X(*), E2Y(*), E2Z(*),E3X(*), E3Y(*), E3Z(*),
192 . SMSTR(*),AREA(*),PX1(*),PX2(*),PY1(*),PY2(*),
193 . V13X(*),V24X(*),V13Y(*),V24Y(*)
194C-----------------------------------------------
195C L o c a l V a r i a b l e s
196C-----------------------------------------------
197 INTEGER I, II(9),NN(4)
198 my_real
199 . X0G2(MVSIZ),X0G3(MVSIZ),X0G4(MVSIZ),Y0G2(MVSIZ),
200 . Y0G3(MVSIZ),Y0G4(MVSIZ),Z0G2(MVSIZ),Z0G3(MVSIZ),Z0G4(MVSIZ),
201 . OFF_L,VG13(3),VG24(3),
202 . XL2(MVSIZ),XL3(MVSIZ),XL4(MVSIZ),YL2(MVSIZ),YL3(MVSIZ),
203 . YL4(MVSIZ),UXYZ(MVSIZ,3,4),A_I(MVSIZ)
204C-----------------------------------------------
205 DO I=1,9
206 ii(i) = nel*(i-1)
207 ENDDO
208C
209 DO i=jft,jlt
210 IF(abs(offg(i))==one)offg(i)=sign(two,offg(i))
211 uxyz(i,1:3,1:4)= zero
212 nn(1)=ixc(2,i)
213 nn(2)=ixc(3,i)
214 nn(3)=ixc(4,i)
215 nn(4)=ixc(5,i)
216 x0g2(i) = x(1,nn(2))-x(1,nn(1))
217 y0g2(i) = x(2,nn(2))-x(2,nn(1))
218 z0g2(i) = x(3,nn(2))-x(3,nn(1))
219 x0g3(i) = x(1,nn(3))-x(1,nn(1))
220 y0g3(i) = x(2,nn(3))-x(2,nn(1))
221 z0g3(i) = x(3,nn(3))-x(3,nn(1))
222 x0g4(i) = x(1,nn(4))-x(1,nn(1))
223 y0g4(i) = x(2,nn(4))-x(2,nn(1))
224 z0g4(i) = x(3,nn(4))-x(3,nn(1))
225 IF(abs(offg(i))==two)THEN
226 uxyz(i,1,2) = x0g2(i)-smstr(ii(1)+i)
227 uxyz(i,2,2) = y0g2(i)-smstr(ii(2)+i)
228 uxyz(i,3,2) = z0g2(i)-smstr(ii(3)+i)
229 uxyz(i,1,3) = x0g3(i)-smstr(ii(4)+i)
230 uxyz(i,2,3) = y0g3(i)-smstr(ii(5)+i)
231 uxyz(i,3,3) = z0g3(i)-smstr(ii(6)+i)
232 uxyz(i,1,4) = x0g4(i)-smstr(ii(7)+i)
233 uxyz(i,2,4) = y0g4(i)-smstr(ii(8)+i)
234 uxyz(i,3,4) = z0g4(i)-smstr(ii(9)+i)
235
236 x0g2(i) = smstr(ii(1)+i)
237 y0g2(i) = smstr(ii(2)+i)
238 z0g2(i) = smstr(ii(3)+i)
239 x0g3(i) = smstr(ii(4)+i)
240 y0g3(i) = smstr(ii(5)+i)
241 z0g3(i) = smstr(ii(6)+i)
242 x0g4(i) = smstr(ii(7)+i)
243 y0g4(i) = smstr(ii(8)+i)
244 z0g4(i) = smstr(ii(9)+i)
245C
246 ELSE
247 smstr(ii(1)+i)= x0g2(i)
248 smstr(ii(2)+i)= y0g2(i)
249 smstr(ii(3)+i)= z0g2(i)
250 smstr(ii(4)+i)= x0g3(i)
251 smstr(ii(5)+i)= y0g3(i)
252 smstr(ii(6)+i)= z0g3(i)
253 smstr(ii(7)+i)= x0g4(i)
254 smstr(ii(8)+i)= y0g4(i)
255 smstr(ii(9)+i)= z0g4(i)
256 ENDIF
257 ENDDO
258C
259 DO i=jft,jlt
260 xl2(i)=e1x(i)*x0g2(i)+e1y(i)*y0g2(i)+e1z(i)*z0g2(i)
261 xl3(i)=e1x(i)*x0g3(i)+e1y(i)*y0g3(i)+e1z(i)*z0g3(i)
262 xl4(i)=e1x(i)*x0g4(i)+e1y(i)*y0g4(i)+e1z(i)*z0g4(i)
263 yl2(i)=e2x(i)*x0g2(i)+e2y(i)*y0g2(i)+e2z(i)*z0g2(i)
264 yl3(i)=e2x(i)*x0g3(i)+e2y(i)*y0g3(i)+e2z(i)*z0g3(i)
265 yl4(i)=e2x(i)*x0g4(i)+e2y(i)*y0g4(i)+e2z(i)*z0g4(i)
266 ENDDO
267 DO i=jft,jlt
268 px1(i)= half*(yl2(i)-yl4(i))
269 py1(i)= half*(xl4(i)-xl2(i))
270 px2(i)= half* yl3(i)
271 py2(i)=-half* xl3(i)
272 area(i)= max(two*(py2(i)*px1(i)-py1(i)*px2(i)),em20)
273 a_i(i) = one / area(i)
274 ENDDO
275C------
276 DO i=jft,jlt
277 vg13(1)=uxyz(i,1,1)-uxyz(i,1,3)
278 vg24(1)=uxyz(i,1,2)-uxyz(i,1,4)
279 vg13(2)=uxyz(i,2,1)-uxyz(i,2,3)
280 vg24(2)=uxyz(i,2,2)-uxyz(i,2,4)
281 vg13(3)=uxyz(i,3,1)-uxyz(i,3,3)
282 vg24(3)=uxyz(i,3,2)-uxyz(i,3,4)
283C
284 v13x(i)=e1x(i)*vg13(1)+e1y(i)*vg13(2)+e1z(i)*vg13(3)
285 v24x(i)=e1x(i)*vg24(1)+e1y(i)*vg24(2)+e1z(i)*vg24(3)
286 v13y(i)=e2x(i)*vg13(1)+e2y(i)*vg13(2)+e2z(i)*vg13(3)
287 v24y(i)=e2x(i)*vg24(1)+e2y(i)*vg24(2)+e2z(i)*vg24(3)
288C
289 px1(i)=a_i(i)*px1(i)
290 py1(i)=a_i(i)*py1(i)
291 px2(i)=a_i(i)*px2(i)
292 py2(i)=a_i(i)*py2(i)
293 ENDDO
294C
295 off_l = zero
296 DO i=jft,jlt
297 off_l = min(off_l,offg(i))
298 ENDDO
299 IF (off_l < zero) THEN
300 DO i=jft,jlt
301 IF (offg(i) < zero) THEN
302 v13x(i)=zero
303 v24x(i)=zero
304 v13y(i)=zero
305 v24y(i)=zero
306 ENDIF
307 ENDDO
308 ENDIF
309C-----------
310 RETURN
311 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:174
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:35
subroutine cforc3(timers, elbuf_str, jft, jlt, pm, ixc, x, f, m, v, vr, failwave, nvc, mtn, geo, tf, npf, bufmat, partsav, dt2t, neltst, ityptst, stifn, stifr, fsky, iadc, itab, d, dr, tani, offset, eani, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, indxof, ipartc, thke, group_param, mat_elem, nel, istrain, ihbe, ithk, iofc, ipla, nft, ismstr, npt, kfts, fzero, igeo, ipm, ifailure, itask, jthe, temp, fthe, fthesky, iexpan, gresav, grth, xedge4n, igrth, msc, dmelc, jsms, table, iparg, ixfem, knod2elc, sensors, elcutc, inod_crk, iel_crk, ibordnode, nodenr, iadc_crk, nodedge, crknodiad, condn, condnsky, stack, isubstack, xfem_str, ig, crkedge, drape_sh4n, ipri, nloc_dmg, indx_drape, igre, jtur, output, dt, snpc, stf, glob_therm, userl_avail, maxfunc, sbufmat, ipart)
Definition cforc3.F:113
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21