OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cstra3.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!|| cstra3 ../engine/source/elements/shell/coque/cstra3.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 cstra3(JFT ,JLT ,GSTR ,SHF ,AREA ,
30 2 EXX ,EYY ,EXY ,EXZ ,EYZ ,
31 3 KXX ,KYY ,KXY ,DT1C ,EPSDOT,
32 4 FOR ,MOM ,ISMSTR ,MTN ,
33 6 IHBE ,NFT ,ISTRAIN,UX1 ,UX2 ,
34 7 UX3 ,UX4 ,UY1 ,UY2 ,UY3 ,
35 8 UY4 ,PX1 ,PX2 ,PY1 ,PY2 ,
36 9 WXY ,GSTRW,F_DEF ,NEL )
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C G l o b a l P a r a m e t e r s
43C-----------------------------------------------
44#include "mvsiz_p.inc"
45C-----------------------------------------------
46C C o m m o n B l o c k s
47C-----------------------------------------------
48#include "scr14_c.inc"
49#include "com01_c.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER JFT, JLT, IHBE,NFT ,ISTRAIN,ISMSTR,MTN,
54 . NEL
55C REAL
56 my_real
57 . GSTR(NEL,8),
58 . AREA(MVSIZ),SHF(MVSIZ),DT1C(MVSIZ),
59 . EXX(MVSIZ), EYY(MVSIZ), EXY(MVSIZ), EXZ(MVSIZ), EYZ(MVSIZ),
60 . kxx(mvsiz), kyy(mvsiz), kxy(mvsiz),
61 . epsdot(6,*),for(nel,5),mom(nel,3)
62 my_real
63 . ux1(*),ux2(*),ux3(*),ux4(*),uy1(*),uy2(*),uy3(*),uy4(*),
64 . px1(*),px2(*),py1(*),py2(*),wxy(*),f_def(mvsiz,8),gstrw(*)
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68 INTEGER
69 . i, mx, j, k
70C REAL
71 my_real
72 . fac1(mvsiz), fac2, q1(mvsiz), r1(mvsiz), r2(mvsiz),fc1p,
73 . ftmp1(mvsiz),ftmp2(mvsiz),ftmp5(mvsiz),mtmp1(mvsiz),
74 . mtmp2(mvsiz),ftmp4(mvsiz),mtmp3(mvsiz),ftmp3(mvsiz),
75 . gtmp1(mvsiz),gtmp2(mvsiz),gtmp3(mvsiz),gtmp4(mvsiz),
76 . gtmp5(mvsiz),gtmp6(mvsiz),gtmp7(mvsiz),gtmp8(mvsiz)
77 my_real
78 . ux13,ux24,uy13,uy24,exxt,eyyt,exyt
79C---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
80C
81 IF(iepsdot/=0)THEN
82 DO i=jft,jlt
83 fac1(i) =one/area(i)
84 k = i + nft
85 epsdot(1,k)=exx(i)*fac1(i)
86 epsdot(2,k)=eyy(i)*fac1(i)
87 epsdot(3,k)=exy(i)*fac1(i)
88 epsdot(4,k)=kxx(i)*fac1(i)
89 epsdot(5,k)=kyy(i)*fac1(i)
90 epsdot(6,k)=kxy(i)*fac1(i)
91 ENDDO
92 ENDIF
93
94 DO i=jft,jlt
95 fac1(i) =dt1c(i)/area(i)
96 exx(i)=exx(i)*fac1(i)
97 eyy(i)=eyy(i)*fac1(i)
98 exy(i)=exy(i)*fac1(i)
99 eyz(i)=eyz(i)*fac1(i)
100 exz(i)=exz(i)*fac1(i)
101 kxx(i)=kxx(i)*fac1(i)
102 kyy(i)=kyy(i)*fac1(i)
103 kxy(i)=kxy(i)*fac1(i)
104 ENDDO
105C
106 IF(ishfram==1.AND.ihbe>=2)THEN
107#include "vectorize.inc"
108 DO i=jft,jlt
109 ftmp1(i) = for(i,1)
110 ftmp2(i) = for(i,2)
111 ftmp3(i) = for(i,3)
112 ftmp4(i) = for(i,4)
113 ftmp5(i) = for(i,5)
114 mtmp1(i) = mom(i,1)
115 mtmp2(i) = mom(i,2)
116 mtmp3(i) = mom(i,3)
117 r1(i)= exy(i)
118 q1(i)=-for(i,3)*r1(i)
119 for(i,3)=for(i,3)-r1(i)*(for(i,1)-for(i,2))
120 for(i,1)=for(i,1)-q1(i)
121 for(i,2)=for(i,2)+q1(i)
122 q1(i)= r1(i)*for(i,4)
123 for(i,4)=for(i,4)-r1(i)*for(i,5)
124 for(i,5)=for(i,5)+q1(i)
125 q1(i)=-mom(i,3)*r1(i)
126 mom(i,3)=mom(i,3)-r1(i)*(mom(i,1)-mom(i,2))
127 mom(i,1)=mom(i,1)-q1(i)
128 mom(i,2)=mom(i,2)+q1(i)
129 ENDDO
130 IF(istrain/=0)THEN
131 DO i=jft,jlt
132 gtmp1(i)=gstr(i,1)
133 gtmp2(i)=gstr(i,2)
134 gtmp3(i)=gstr(i,3)
135 gtmp4(i)=gstr(i,4)
136 gtmp5(i)=gstr(i,5)
137 gtmp6(i)=gstr(i,6)
138 gtmp7(i)=gstr(i,7)
139 gtmp8(i)=gstr(i,8)
140 r1(i)= exy(i)
141 r2(i)=two*exy(i)
142 q1(i)=-half*gstr(i,3)*r1(i)
143 gstr(i,3)=gstr(i,3)-r2(i)*(gstr(i,1)-gstr(i,2))
144 gstr(i,1)=gstr(i,1)-q1(i)
145 gstr(i,2)=gstr(i,2)+q1(i)
146 q1(i)= r1(i)*gstr(i,4)
147 gstr(i,4)=gstr(i,4)-r1(i)*gstr(i,5)
148 gstr(i,5)=gstr(i,5)+q1(i)
149 q1(i)=-half*gstr(i,8)*r1(i)
150 gstr(i,8)=gstr(i,8)-r2(i)*(gstr(i,6)-gstr(i,7))
151 gstr(i,6)=gstr(i,6)-q1(i)
152 gstr(i,7)=gstr(i,7)+q1(i)
153 ENDDO
154 ENDIF
155 ENDIF
156C
157 IF (istrain /= 0.OR.ismstr == 10) THEN
158 IF(ismstr == 10)THEN
159 DO i=jft,jlt
160 gstr(i,1)=gstr(i,1)+exx(i)
161 gstr(i,2)=gstr(i,2)+eyy(i)
162 gstr(i,3)=gstr(i,3)+exy(i)
163 gstr(i,4)=gstr(i,4)+eyz(i)
164 gstr(i,5)=gstr(i,5)+exz(i)
165 gstr(i,6)=gstr(i,6)+kxx(i)
166 gstr(i,7)=gstr(i,7)+kyy(i)
167 gstr(i,8)=gstr(i,8)+kxy(i)
168C-------- WXY
169 gstrw(i)=gstrw(i)+wxy(i)*fac1(i)
170 ENDDO
171C-----
172 DO i=jft,jlt
173 f_def(i,6) = gstr(i,6)
174 f_def(i,7) = gstr(i,7)
175 f_def(i,8) = (gstr(i,8)+gstrw(i))*half
176 f_def(i,5) = (gstr(i,8)-gstrw(i))*half
177 ENDDO
178 ELSEIF(ismstr /= 11 )THEN
179 DO i=jft,jlt
180 gstr(i,1)=gstr(i,1)+exx(i)
181 gstr(i,2)=gstr(i,2)+eyy(i)
182 gstr(i,3)=gstr(i,3)+exy(i)
183 gstr(i,4)=gstr(i,4)+eyz(i)
184 gstr(i,5)=gstr(i,5)+exz(i)
185 gstr(i,6)=gstr(i,6)+kxx(i)
186 gstr(i,7)=gstr(i,7)+kyy(i)
187 gstr(i,8)=gstr(i,8)+kxy(i)
188 ENDDO
189 ELSE
190 DO i=jft,jlt
191 fac1(i) =one/area(i)
192 ux13=ux1(i)-ux3(i)
193 ux24=ux2(i)-ux4(i)
194 uy13=uy1(i)-uy3(i)
195 uy24=uy2(i)-uy4(i)
196 exxt=(px1(i)*ux13+px2(i)*ux24)*fac1(i)
197 eyyt=(py1(i)*uy13+py2(i)*uy24)*fac1(i)
198 exyt=(py1(i)*ux13+py2(i)*ux24
199 . +px1(i)*uy13+px2(i)*uy24)*fac1(i)
200 gstr(i,1)=exxt
201 gstr(i,2)=eyyt
202 gstr(i,3)=exyt
203 gstr(i,4)=gstr(i,4)+eyz(i)
204 gstr(i,5)=gstr(i,5)+exz(i)
205 gstr(i,6)=gstr(i,6)+kxx(i)
206 gstr(i,7)=gstr(i,7)+kyy(i)
207 gstr(i,8)=gstr(i,8)+kxy(i)
208 ENDDO
209 ENDIF
210 ENDIF
211C
212 RETURN
213 END
subroutine cstra3(jft, jlt, gstr, shf, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, dt1c, epsdot, for, mom, ismstr, mtn, ihbe, nft, istrain, ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, px1, px2, py1, py2, wxy, gstrw, f_def, nel)
Definition cstra3.F:37
for(i8=*sizetab-1;i8 >=0;i8--)