OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cpxpy3.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!|| cpxpy3 ../engine/source/elements/shell/coque/cpxpy3.F
25!||--- called by ------------------------------------------------------
26!|| cforc3 ../engine/source/elements/shell/coque/cforc3.F
27!|| cforc3_crk ../engine/source/elements/xfem/cforc3_crk.F
28!||====================================================================
29 SUBROUTINE cpxpy3(JFT ,JLT ,PM ,STI ,SMSTR,
30 2 PX1 ,PX2 ,PY1 ,PY2 ,STIR,
31 3 IXC ,AREA,X2 ,X3 ,X4 ,
32 4 Y2 ,Y3 ,Y4 ,Z2 ,THK0,
33 5 MAT ,NEL )
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C G l o b a l P a r a m e t e r s
40C-----------------------------------------------
41#include "mvsiz_p.inc"
42C-----------------------------------------------
43C C o m m o n B l o c k s
44C-----------------------------------------------
45#include "param_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER MAT(MVSIZ), IXC(NIXC,*), JFT, JLT,NEL
50C REAL
51 my_real
52 . PM(NPROPM,*), STI(*), STIR(*),SMSTR(*),
53 . px1(*), px2(*), py1(*), py2(*),
54 . x2(mvsiz), x3(mvsiz), x4(mvsiz),area(mvsiz),
55 . y2(mvsiz), y3(mvsiz), y4(mvsiz), z2(mvsiz),thk0(mvsiz)
56C-----------------------------------------------
57C L o c a l V a r i a b l e s
58C-----------------------------------------------
59 INTEGER I, II(4), MX
60C REAL
61 my_real
62 . YOUNG ,
63 . ax, an, pxx2, pyy2, pxn, pxx, aaa, al2
64C=======================================================================
65 mx = mat(jft)
66 young=pm(20,mx)
67C
68 DO i=1,4
69 ii(i) = nel*(i-1)
70 ENDDO
71C
72 DO i=jft,jlt
73 z2(i) = zero
74 px1(i) = smstr(ii(1)+i)
75 px2(i) = smstr(ii(2)+i)
76 py1(i) = smstr(ii(3)+i)
77 py2(i) = smstr(ii(4)+i)
78 x2(i) =-two*py1(i)
79 y2(i) = zero
80 x3(i) =-two*py2(i)
81 y3(i) = two*px2(i)
82 x4(i) = zero
83 y4(i) =-two*px1(i)
84 z2(i) = zero
85 area(i)= two*(py2(i)*px1(i)-py1(i)*px2(i))
86 ENDDO
87C
88 DO i=jft,jlt
89 pxx = max(px1(i)**2+py1(i)**2,px2(i)**2+py2(i)**2)
90 sti(i) = young * pxx * thk0(i) / area(i)
91 stir(i)= zero
92 ENDDO
93C
94 DO i=jft,jlt
95 IF (ixc(4,i) == ixc(5,i)) THEN
96 al2= (py1(i)+py2(i))**2
97 al2= min(al2, px1(i)**2+py1(i)**2 )
98 al2= four * min(al2, px2(i)**2+py2(i)**2 )
99 sti(i) = half * area(i) * thk0(i) * young / al2
100 ENDIF
101 ENDDO
102C-----------
103 RETURN
104 END
subroutine cpxpy3(jft, jlt, pm, sti, smstr, px1, px2, py1, py2, stir, ixc, area, x2, x3, x4, y2, y3, y4, z2, thk0, mat, nel)
Definition cpxpy3.F:34
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21