OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c3epsini.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!|| c3epsini ../starter/source/elements/sh3n/coque3n/c3epsini.F
25!||--- called by ------------------------------------------------------
26!|| c3init3 ../starter/source/elements/sh3n/coque3n/c3init3.F
27!||--- calls -----------------------------------------------------
28!|| c3defoi ../starter/source/elements/sh3n/coque3n/c3epsini.F
29!|| c3evec3 ../starter/source/elements/sh3n/coque3n/c3evec3.F
30!|| c3newve3 ../starter/source/elements/sh3n/coque3n/c3epsini.F
31!|| c3pxpyi ../starter/source/elements/sh3n/coque3n/c3epsini.F
32!|| cmlawi ../starter/source/elements/shell/coque/cepsini.F
33!|| corth3 ../starter/source/elements/shell/coque/corth3.F
34!|| shtroto3 ../starter/source/elements/sh3n/coque3n/c3epsini.F
35!||--- uses -----------------------------------------------------
36!||====================================================================
37 SUBROUTINE c3epsini(ELBUF_STR,MAT_PARAM,
38 1 JFT ,JLT ,ISMSTR ,MTN ,ITHK ,
39 2 PM ,GEO ,IXTG ,X ,XREFTG ,
40 3 FOR ,THK ,EINT ,GSTR ,NLAY ,
41 4 PX1G ,PY1G ,PY2G ,X2S ,X3S ,
42 5 Y3S ,UVAR ,IPM ,
43 6 NEL ,DIR_A ,DIR_B ,SIGI ,NPF ,
44 7 TF ,IREP ,ISH3NFR,IMAT )
45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE mat_elem_mod
49 use element_mod , only : nixtg
50C-----------------------------------------------
51C I m p l i c i t T y p e s
52C-----------------------------------------------
53#include "implicit_f.inc"
54C-----------------------------------------------
55C G l o b a l P a r a m e t e r s
56C-----------------------------------------------
57#include "mvsiz_p.inc"
58C-----------------------------------------------
59C C o m m o n B l o c k s
60C-----------------------------------------------
61#include "param_c.inc"
62#include "scr03_c.inc"
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 INTEGER JFT,JLT,ISMSTR,MTN,ITHK,NEL,NLAY,IREP,ISH3NFR,IMAT
67 INTEGER IXTG(NIXTG,*),IPM(NPROPMI,*),NPF(*)
68 my_real
69 . PM(NPROPM,*),GEO(NPROPG,*),X(3,*),XREFTG(3,3,*),
70 . FOR(NEL,5) ,THK(*) ,EINT(NEL,2),GSTR(NEL,8),
71 . PX1G(*) ,PY1G(*) ,PY2G(*),X2S(*) ,X3S(*) ,Y3S(*),
72 . UVAR(*),DIR_A(NEL,*),DIR_B(NEL,*),SIGI(NEL,3),TF(*),
73 . px1(mvsiz), py1(mvsiz), py2(mvsiz)
74 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
75 TYPE (MATPARAM_STRUCT_) ,INTENT(IN) :: MAT_PARAM
76C------------------------------------------------------
77C L o c a l V a r i a b l e s
78C-----------------------------------------------
79 INTEGER I, NT, I1, I2, I3,IDRAPE,IGTYP
80 my_real FAC
81 my_real ecos(mvsiz),esin(mvsiz),
82 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
83 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
84 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
85 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
86 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) ,x4(mvsiz) ,
87 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) ,y4(mvsiz) ,
88 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz) ,z4(mvsiz) ,
89 . x31(mvsiz) , y31(mvsiz) , z31(mvsiz),
90 . vl(3,3,mvsiz), xl(3,3,mvsiz),area(mvsiz),
91 . x2h(mvsiz), x3h(mvsiz), y3h(mvsiz),
92 . x2l(mvsiz), x3l(mvsiz), y3l(mvsiz)
93 my_real, DIMENSION(:) , POINTER :: dir1, dir2
94C=======================================================================
95 idrape = elbuf_str%IDRAPE
96 igtyp = elbuf_str%IGTYP
97 DO i=jft,jlt
98 i1 = ixtg(2,i)
99 i2 = ixtg(3,i)
100 i3 = ixtg(4,i)
101 x1(i) = zero
102 y1(i) = zero
103 z1(i) = zero
104 x2(i) = x(1,i2) - x(1,i1)
105 y2(i) = x(2,i2) - x(2,i1)
106 z2(i) = x(3,i2) - x(3,i1)
107 x3(i) = x(1,i3) - x(1,i1)
108 y3(i) = x(2,i3) - x(2,i1)
109 z3(i) = x(3,i3) - x(3,i1)
110 ENDDO
111c
112 CALL c3evec3(jft ,jlt ,area,
113 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
114 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
115 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
116 . x31, y31, z31 ,x2l ,x3l ,y3l )
117c
118 DO i=jft,jlt
119 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
120 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
121 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i)*z3(i)
122 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
123 ENDDO
124 DO i=jft,jlt
125 x2(i) = xreftg(2,1,i) - xreftg(1,1,i)
126 y2(i) = xreftg(2,2,i) - xreftg(1,2,i)
127 z2(i) = xreftg(2,3,i) - xreftg(1,3,i)
128 x3(i) = xreftg(3,1,i) - xreftg(1,1,i)
129 y3(i) = xreftg(3,2,i) - xreftg(1,2,i)
130 z3(i) = xreftg(3,3,i) - xreftg(1,3,i)
131 ENDDO
132c
133 CALL c3evec3(jft ,jlt ,area,
134 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
135 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
136 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
137 . x31, y31, z31 ,x2l ,x3l ,y3l )
138c
139C--------For small strain case
140c
141 IF (ish3nfr ==0 ) CALL c3newve3(jft ,jlt ,ecos,esin,area,
142 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
143 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
144 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
145c
146 fac = one/float(nitrs)
147 DO i=jft,jlt
148 vl(1,1,i) = zero
149 vl(2,1,i) = zero
150 vl(3,1,i) = zero
151 vl(1,2,i) = e1x(i)*xl(1,2,i) + e2x(i)*xl(2,2,i)
152 vl(2,2,i) = e1y(i)*xl(1,2,i) + e2y(i)*xl(2,2,i)
153 vl(3,2,i) = e1z(i)*xl(1,2,i) + e2z(i)*xl(2,2,i)
154 vl(1,3,i) = e1x(i)*xl(1,3,i) + e2x(i)*xl(2,3,i)
155 vl(2,3,i) = e1y(i)*xl(1,3,i) + e2y(i)*xl(2,3,i)
156 vl(3,3,i) = e1z(i)*xl(1,3,i) + e2z(i)*xl(2,3,i)
157c
158 vl(1,2,i) = (vl(1,2,i) - x2(i))*fac
159 vl(2,2,i) = (vl(2,2,i) - y2(i))*fac
160 vl(3,2,i) = (vl(3,2,i) - z2(i))*fac
161 vl(1,3,i) = (vl(1,3,i) - x3(i))*fac
162 vl(2,3,i) = (vl(2,3,i) - y3(i))*fac
163 vl(3,3,i) = (vl(3,3,i) - z3(i))*fac
164 ENDDO
165c-----------------------------------------------------------
166 IF (ismstr/=1 .AND. ismstr/=11) THEN
167C
168 DO nt=1,nitrs
169c FAC = FLOAT(NT) / FLOAT(NITRS)
170 fac = float(nt) - one
171 DO i=jft,jlt
172 x1(i) = xreftg(1,1,i) + fac*vl(1,1,i)
173 y1(i) = xreftg(1,2,i) + fac*vl(2,1,i)
174 z1(i) = xreftg(1,3,i) + fac*vl(3,1,i)
175 x2(i) = xreftg(2,1,i) + fac*vl(1,2,i)
176 y2(i) = xreftg(2,2,i) + fac*vl(2,2,i)
177 z2(i) = xreftg(2,3,i) + fac*vl(3,2,i)
178 x3(i) = xreftg(3,1,i) + fac*vl(1,3,i)
179 y3(i) = xreftg(3,2,i) + fac*vl(2,3,i)
180 z3(i) = xreftg(3,3,i) + fac*vl(3,3,i)
181 ENDDO
182c
183 CALL c3evec3(jft ,jlt ,area,
184 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
185 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
186 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
187 . x31, y31, z31 ,x2l ,x3l ,y3l )
188c
189 IF (ish3nfr==0) CALL c3newve3(jft ,jlt ,ecos,esin,area,
190 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
191 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
192 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
193c
194 CALL corth3(elbuf_str,dir_a,dir_b,jft,jlt,
195 . nlay ,irep ,nel ,
196 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
197 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
198 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
199 . idrape , igtyp )
200c
201 CALL c3pxpyi(jft ,jlt ,ismstr,
202 . px1g ,py1g ,py2g ,
203 . px1 ,py1 ,py2 ,
204 . x2h ,x3h ,y3h ,
205 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
206 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
207 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
208 CALL c3defoi(jft ,jlt ,nel ,vl ,gstr,
209 . px1 ,py1 ,py2 ,area,
210 . exx ,eyy ,exy ,eyz ,ezx ,
211 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
212c
213 IF (ish3nfr ==0 ) CALL shtroto3(jft,jlt,ecos,esin,gstr,nel)
214c
215 CALL cmlawi(mat_param,
216 . jft ,jlt ,mtn ,ithk ,pm ,
217 . for ,thk ,eint ,gstr ,dir_a ,
218 . dir_b ,uvar ,ipm ,
219 . nel ,sigi ,npf ,tf ,
220 . area ,exx ,eyy ,exy ,imat )
221C
222 ENDDO
223 ELSE
224C------
225C SMALL STRAIN FORMULATION.
226C------
227 CALL c3pxpyi(jft ,jlt ,ismstr,
228 . px1g ,py1g ,py2g ,
229 . px1 ,py1 ,py2 ,
230 . x2s ,x3s ,y3s ,
231 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
232 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
233 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
234 dir1 => elbuf_str%BUFLY(1)%DIRA
235 dir2 => elbuf_str%BUFLY(1)%DIRB
236c
237 DO nt=1,nitrs
238 CALL c3defoi(jft ,jlt ,nel ,vl ,gstr,
239 . px1 ,py1 ,py2 ,area,
240 . exx ,eyy ,exy ,eyz ,ezx ,
241 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
242c
243 IF (ish3nfr == 0) CALL shtroto3(jft,jlt,ecos,esin,gstr,nel)
244c
245 CALL cmlawi(mat_param,
246 . jft ,jlt ,mtn ,ithk ,pm ,
247 . for ,thk ,eint ,gstr ,dir1 ,
248 . dir2 ,uvar ,ipm ,
249 . nel ,sigi ,npf ,tf ,
250 . area ,exx ,eyy ,exy ,imat )
251 ENDDO
252c
253 ENDIF
254c-----------
255 RETURN
256 END SUBROUTINE c3epsini
257c
258!||====================================================================
259!|| c3pxpyi ../starter/source/elements/sh3n/coque3n/c3epsini.F
260!||--- called by ------------------------------------------------------
261!|| c3epsini ../starter/source/elements/sh3n/coque3n/c3epsini.F
262!|| fsigtini ../starter/source/constraints/fxbody/fsigtini.F
263!||====================================================================
264 SUBROUTINE c3pxpyi(JFT ,JLT ,ISMSTR,
265 . PX1G ,PY1G ,PY2G ,
266 . PX1 ,PY1 ,PY2 ,
267 . X2L ,X3L ,Y3L ,
268 . X1G ,X2G ,X3G ,Y1G ,Y2G ,Y3G ,
269 . Z1G ,Z2G ,Z3G ,E1X ,E2X ,E3X ,
270 . E1Y ,E2Y ,E3Y ,E1Z ,E2Z ,E3Z )
271C-----------------------------------------------
272C I m p l i c i t T y p e s
273C-----------------------------------------------
274#include "implicit_f.inc"
275C-----------------------------------------------
276C G l o b a l P a r a m e t e r s
277C-----------------------------------------------
278#include "mvsiz_p.inc"
279C-----------------------------------------------
280C D u m m y A r g u m e n t s
281C-----------------------------------------------
282 INTEGER JFT, JLT, ISMSTR
283C REAL
284 my_real
285 . PX1(*), PY1(*), PY2(*),
286 . PX1G(*), PY1G(*), PY2G(*),
287 . X2L(*),X3L(*),Y3L(*),
288 . X1G(MVSIZ), X2G(MVSIZ), X3G(MVSIZ),
289 . Y1G(MVSIZ), Y2G(MVSIZ), Y3G(MVSIZ),
290 . Z1G(MVSIZ), Z2G(MVSIZ), Z3G(MVSIZ),
291 . E1X(MVSIZ), E1Y(MVSIZ), E1Z(MVSIZ),
292 . E2X(MVSIZ), E2Y(MVSIZ), E2Z(MVSIZ),
293 . E3X(MVSIZ), E3Y(MVSIZ), E3Z(MVSIZ)
294C-----------------------------------------------
295C L o c a l V a r i a b l e s
296C-----------------------------------------------
297 INTEGER I
298 my_real X21G(MVSIZ), Y21G(MVSIZ), Z21G(MVSIZ),
299 . X31G(MVSIZ), Y31G(MVSIZ), Z31G(MVSIZ)
300C=======================================================================
301 IF (ISMSTR/=3)then
302 DO i=jft,jlt
303 x21g(i)=x2g(i)-x1g(i)
304 y21g(i)=y2g(i)-y1g(i)
305 z21g(i)=z2g(i)-z1g(i)
306 x31g(i)=x3g(i)-x1g(i)
307 y31g(i)=y3g(i)-y1g(i)
308 z31g(i)=z3g(i)-z1g(i)
309 ENDDO
310C
311 DO i=jft,jlt
312 y3l(i)=e2x(i)*x31g(i)+e2y(i)*y31g(i)+e2z(i)*z31g(i)
313 x3l(i)=e1x(i)*x31g(i)+e1y(i)*y31g(i)+e1z(i)*z31g(i)
314 x2l(i)=e1x(i)*x21g(i)+e1y(i)*y21g(i)+e1z(i)*z21g(i)
315 ENDDO
316C
317 DO i=jft,jlt
318 px1(i)=-half * y3l(i)
319 py1(i)= half *(x3l(i)-x2l(i))
320 py2(i)=-half * x3l(i)
321 ENDDO
322C
323 ELSE
324C
325 DO i=jft,jlt
326 px1(i) = px1g(i)
327 py1(i) = py1g(i)
328 py2(i) = py2g(i)
329 ENDDO
330C
331 ENDIF
332C
333 RETURN
334 END
335C
336!||====================================================================
337!|| c3defoi ../starter/source/elements/sh3n/coque3n/c3epsini.F
338!||--- called by ------------------------------------------------------
339!|| c3epsini ../starter/source/elements/sh3n/coque3n/c3epsini.F
340!||====================================================================
341 SUBROUTINE c3defoi(JFT ,JLT ,NEL ,VL ,GSTR,
342 . PX1 ,PY1 ,PY2 ,AREA,
343 . EXX ,EYY ,EXY ,EYZ ,EZX ,
344 . E1X ,E2X ,E3X ,E1Y ,E2Y ,E3Y ,E1Z ,E2Z ,E3Z )
345C-----------------------------------------------
346C I m p l i c i t T y p e s
347C-----------------------------------------------
348#include "implicit_f.inc"
349C-----------------------------------------------
350C G l o b a l P a r a m e t e r s
351C-----------------------------------------------
352#include "mvsiz_p.inc"
353C-----------------------------------------------
354C D u m m y A r g u m e n t s
355C-----------------------------------------------
356 INTEGER JFT, JLT,NEL
357 my_real vl(3,3,*),gstr(nel,8),px1(*),py1(*),py2(*),
358 . exx(mvsiz) , eyy(mvsiz) , exy(mvsiz) ,
359 . ezx(mvsiz) , eyz(mvsiz) , area(mvsiz),
360 . e1x(mvsiz) , e1y(mvsiz) , e1z(mvsiz) ,
361 . e2x(mvsiz) , e2y(mvsiz) , e2z(mvsiz) ,
362 . e3x(mvsiz) , e3y(mvsiz) , e3z(mvsiz)
363C-----------------------------------------------
364C L o c a l V a r i a b l e s
365C-----------------------------------------------
366 INTEGER I
367 my_real
368 . VX1(MVSIZ) , VX2(MVSIZ) , VX3(MVSIZ) ,
369 . VY1(MVSIZ) , VY2(MVSIZ) , VY3(MVSIZ) ,
370 . VZ1(MVSIZ) , VZ2(MVSIZ) , VZ3(MVSIZ) ,
371 . VX12(MVSIZ), VX13(MVSIZ), VX23(MVSIZ),
372 . vy12(mvsiz), vy13(mvsiz), vy23(mvsiz),
373 . vz12(mvsiz), vz13(mvsiz), vz23(mvsiz)
374 my_real
375 . tmp1, tmp2, fac1
376C=======================================================================
377 DO i=jft,jlt
378 vx1(i)=e1x(i)*vl(1,1,i)+e1y(i)*vl(2,1,i)+e1z(i)*vl(3,1,i)
379 vx2(i)=e1x(i)*vl(1,2,i)+e1y(i)*vl(2,2,i)+e1z(i)*vl(3,2,i)
380 vx3(i)=e1x(i)*vl(1,3,i)+e1y(i)*vl(2,3,i)+e1z(i)*vl(3,3,i)
381C
382 vy3(i)=e2x(i)*vl(1,3,i)+e2y(i)*vl(2,3,i)+e2z(i)*vl(3,3,i)
383 vy2(i)=e2x(i)*vl(1,2,i)+e2y(i)*vl(2,2,i)+e2z(i)*vl(3,2,i)
384 vy1(i)=e2x(i)*vl(1,1,i)+e2y(i)*vl(2,1,i)+e2z(i)*vl(3,1,i)
385C
386 vz1(i)=e3x(i)*vl(1,1,i)+e3y(i)*vl(2,1,i)+e3z(i)*vl(3,1,i)
387 vz2(i)=e3x(i)*vl(1,2,i)+e3y(i)*vl(2,2,i)+e3z(i)*vl(3,2,i)
388 vz3(i)=e3x(i)*vl(1,3,i)+e3y(i)*vl(2,3,i)+e3z(i)*vl(3,3,i)
389 ENDDO
390C
391 DO i=jft,jlt
392 vz12(i)=vz1(i) - vz2(i)
393 vz13(i)=vz1(i) - vz3(i)
394 vz23(i)=vz2(i) - vz3(i)
395C
396 tmp1 = fourth * vz12(i) / (py1(i)+py2(i))
397 tmp2 = (py1(i) * vz1(i) + py2(i) * vz2(i)) / (py1(i)+py2(i))
398 tmp2 = fourth * (tmp2 - vz3(i)) / px1(i)
399C
400 vx1(i) = vx1(i) - vz1(i) * tmp1
401 vx2(i) = vx2(i) - vz2(i) * tmp1
402 vx3(i) = vx3(i) - vz3(i) * tmp1
403C
404 vy1(i) = vy1(i) - vz1(i) * tmp2
405 vy2(i) = vy2(i) - vz2(i) * tmp2
406 vy3(i) = vy3(i) - vz3(i) * tmp2
407C
408 vx12(i)=vx1(i) - vx2(i)
409 vy12(i)=vy1(i) - vy2(i)
410 vx13(i)=vx1(i) - vx3(i)
411 vy13(i)=vy1(i) - vy3(i)
412 vx23(i)=vx2(i) - vx3(i)
413 vy23(i)=vy2(i) - vy3(i)
414C
415 exx(i)=px1(i)*vx12(i)
416 eyy(i)=py1(i)*vy13(i) + py2(i)*vy23(i)
417C
418 exy(i)=py1(i)*vx13(i) + py2(i)*vx23(i) + px1(i)*vy12(i)
419 eyz(i)=py1(i)*vz13(i) + py2(i)*vz23(i)
420 ezx(i)=px1(i)*vz12(i)
421 ENDDO
422C
423 DO i=jft,jlt
424 fac1 = one/area(i)
425 exx(i)=exx(i)*fac1
426 eyy(i)=eyy(i)*fac1
427 exy(i)=exy(i)*fac1
428 ENDDO
429C
430 DO i=jft,jlt
431 gstr(i,1)=gstr(i,1)+exx(i)
432 gstr(i,2)=gstr(i,2)+eyy(i)
433 gstr(i,3)=gstr(i,3)+exy(i)
434 ENDDO
435c-----------
436 RETURN
437 END
438!||====================================================================
439!|| c3newve3 ../starter/source/elements/sh3n/coque3n/c3epsini.F
440!||--- called by ------------------------------------------------------
441!|| c3epsini ../starter/source/elements/sh3n/coque3n/c3epsini.F
442!||--- calls -----------------------------------------------------
443!|| cdkevec3 ../starter/source/elements/sh3n/coquedk/cdkevec3.F
444!||====================================================================
445 SUBROUTINE c3newve3(JFT ,JLT ,ECOS,ESIN,AREA,
446 . X1 ,X2 ,X3 ,Y1 ,Y2 ,Y3 ,
447 . Z1 ,Z2 ,Z3 ,E1X ,E2X ,E3X ,
448 . E1Y ,E2Y ,E3Y ,E1Z ,E2Z ,E3Z )
449C-----------------------------------------------
450C I m p l i c i t T y p e s
451C-----------------------------------------------
452#include "implicit_f.inc"
453C-----------------------------------------------
454C G l o b a l P a r a m e t e r s
455C-----------------------------------------------
456#include "mvsiz_p.inc"
457C-----------------------------------------------
458C D u m m y A r g u m e n t s
459C-----------------------------------------------
460 INTEGER JFT, JLT
461 my_real
462 . ECOS(MVSIZ),ESIN(MVSIZ),AREA(MVSIZ),
463 . E1X(MVSIZ), E1Y(MVSIZ), E1Z(MVSIZ),
464 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
465 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
466 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) ,
467 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) ,
468 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz)
469C-----------------------------------------------
470C L o c a l V a r i a b l e s
471C-----------------------------------------------
472 INTEGER I
473 my_real AA,BB,
474 . E1X0(MVSIZ), E1Y0(MVSIZ), E1Z0(MVSIZ),
475 . E2X0(MVSIZ), E2Y0(MVSIZ), E2Z0(MVSIZ),
476 . E3X0(MVSIZ), E3Y0(MVSIZ), E3Z0(MVSIZ)
477C=======================================================================
478 DO I=jft,jlt
479 e1x0(i) = e1x(i)
480 e1y0(i) = e1y(i)
481 e1z0(i) = e1z(i)
482 e2x0(i) = e2x(i)
483 e2y0(i) = e2y(i)
484 e2z0(i) = e2z(i)
485 e3x0(i) = e3x(i)
486 e3y0(i) = e3y(i)
487 e3z0(i) = e3z(i)
488 ENDDO
489c
490 CALL cdkevec3(jft ,jlt ,area,
491 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
492 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
493 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
494c
495 DO i=jft,jlt
496 ecos(i) = e1x(i)*e1x0(i)+e1y(i)*e1y0(i)+e1z(i)*e1z0(i)
497 aa = max(zero,one-ecos(i)*ecos(i))
498 esin(i) = sqrt(aa)
499 bb = e1x(i)*e2x0(i)+e1y(i)*e2y0(i)+e1z(i)*e2z0(i)
500 IF (bb >zero) esin(i) = -esin(i)
501 ENDDO
502 DO i=jft,jlt
503 e1x(i) = e1x0(i)
504 e1y(i) = e1y0(i)
505 e1z(i) = e1z0(i)
506 e2x(i) = e2x0(i)
507 e2y(i) = e2y0(i)
508 e2z(i) = e2z0(i)
509 e3x(i) = e3x0(i)
510 e3y(i) = e3y0(i)
511 e3z(i) = e3z0(i)
512 ENDDO
513c-----------
514 RETURN
515 END
516!||====================================================================
517!|| shtroto3 ../starter/source/elements/sh3n/coque3n/c3epsini.F
518!||--- called by ------------------------------------------------------
519!|| c3epsini ../starter/source/elements/sh3n/coque3n/c3epsini.F
520!||====================================================================
521 SUBROUTINE shtroto3(JFT,JLT,ECOS,ESIN,GSTR,NEL)
522C-----------------------------------------------
523C I m p l i c i t T y p e s
524C-----------------------------------------------
525#include "implicit_f.inc"
526C-----------------------------------------------
527C G l o b a l P a r a m e t e r s
528C-----------------------------------------------
529#include "mvsiz_p.inc"
530C-----------------------------------------------
531C D u m m y A r g u m e n t s
532C-----------------------------------------------
533 INTEGER JFT, JLT,NEL
534C REAL
535 my_real
536 . gstr(nel,8),ecos(mvsiz),esin(mvsiz)
537C-----------------------------------------------
538C L o c a l V a r i a b l e s
539C-----------------------------------------------
540 INTEGER I
541C REAL
542 my_real
543 . M2(MVSIZ),N2(MVSIZ),MN(MVSIZ),CM(4),MN2(MVSIZ),T1
544C-----------------------------------------------
545 DO I=jft,jlt
546 m2(i)= ecos(i)*ecos(i)
547 n2(i)= esin(i)*esin(i)
548 mn(i)= ecos(i)*esin(i)
549 mn2(i)= two*mn(i)
550 ENDDO
551C------Exy :2*exy
552 DO i=jft,jlt
553 t1 = gstr(i,3)*mn(i)
554 cm(1)=m2(i)*gstr(i,1)+n2(i)*gstr(i,2)-t1
555 cm(2)=n2(i)*gstr(i,1)+m2(i)*gstr(i,2)+t1
556 cm(3)=(gstr(i,1)-gstr(i,2))*mn2(i)+gstr(i,3)*(m2(i)-n2(i))
557 gstr(i,1)=cm(1)
558 gstr(i,2)=cm(2)
559 gstr(i,3)=cm(3)
560 ENDDO
561C
562 RETURN
563 END
subroutine c3newve3(jft, jlt, ecos, esin, area, x1, x2, x3, y1, y2, y3, z1, z2, z3, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition c3epsini.F:449
subroutine shtroto3(jft, jlt, ecos, esin, gstr, nel)
Definition c3epsini.F:522
subroutine c3epsini(elbuf_str, mat_param, jft, jlt, ismstr, mtn, ithk, pm, geo, ixtg, x, xreftg, for, thk, eint, gstr, nlay, px1g, py1g, py2g, x2s, x3s, y3s, uvar, ipm, nel, dir_a, dir_b, sigi, npf, tf, irep, ish3nfr, imat)
Definition c3epsini.F:45
subroutine c3defoi(jft, jlt, nel, vl, gstr, px1, py1, py2, area, exx, eyy, exy, eyz, ezx, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition c3epsini.F:345
subroutine c3pxpyi(jft, jlt, ismstr, px1g, py1g, py2g, px1, py1, py2, x2l, x3l, y3l, x1g, x2g, x3g, y1g, y2g, y3g, z1g, z2g, z3g, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition c3epsini.F:271
subroutine cdkevec3(jft, jlt, area, x1, x2, x3, y1, y2, y3, z1, z2, z3, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition cdkevec3.F:38
subroutine cmlawi(mat_param, jft, jlt, ilaw, ithk, pm, for, thk, eint, gstr, dir1, dir2, uvar, ipm, nel, sigi, npf, tf, area, exx, eyy, exy, imat)
Definition cepsini.F:280
subroutine corth3(elbuf_str, dir_a, dir_b, jft, jlt, nlay, irep, nel, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, idrape, igtyp)
Definition corth3.F:42
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define max(a, b)
Definition macros.h:21
subroutine c3evec3(jft, jlt, area, x1, x2, x3, y1, y2, y3, z1, z2, z3, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, x31, y31, z31, x2l, x3l, y3l)
Definition c3evec3.F:39