OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps91gpinch.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!|| sigeps91gpinch ../engine/source/materials/mat/mat091/sigeps91gpinch.F
25!||--- called by ------------------------------------------------------
26!|| mulawglcpinch ../engine/source/elements/shell/coqueba/mulawglcpinch.F
27!||====================================================================
28 SUBROUTINE sigeps91gpinch(
29 1 JFT ,JLT ,NUVAR ,UPARAM ,RHO0 ,
30 2 THK ,THK0 ,NEL ,SSP ,AREA ,
31 3 DEPSXX ,DEPSYY ,DEPSZZ ,
32 4 DEPSXY ,DEPSYZ ,DEPSZX ,
33 5 DEPBXX ,DEPBYY ,DEPBXY ,
34 6 DEPPXZ ,DEPPYZ ,
35 7 SIGOXX ,SIGOYY ,SIGOZZ ,
36 8 SIGOXY ,SIGOYZ ,SIGOZX ,
37 9 MOMOXX ,MOMOYY ,MOMOXY ,
38 A MOMOPXZ ,MOMOPYZ ,
39 B SIGNXX ,SIGNYY ,SIGNZZ ,
40 C SIGNXY ,SIGNYZ ,SIGNZX ,
41 D MOMNXX ,MOMNYY ,MOMNXY ,
42 E MOMNPXZ ,MOMNPYZ ,TIME ,UVAR ,DT_INV ,
43 F VISCMX ,ALDT ,VOL0 ,IPM ,MAT ,
44 G PLA ,DEGMB ,DEGFX ,
45 H NGL ,EZZAVG ,AREAPINCH)
46C-----------------------------------------------
47C I m p l i c i t T y p e s
48C-----------------------------------------------
49#include "implicit_f.inc"
50C-----------------------------------------------
51C G l o b a l P a r a m e t e r s
52C-----------------------------------------------
53#include "mvsiz_p.inc"
54C-----------------------------------------------
55C C o m m o n B l o c k s
56C-----------------------------------------------
57#include "param_c.inc"
58C-----------------------------------------------
59C I N P U T A R G U M E N T S
60C-----------------------------------------------
61 INTEGER JFT,JLT,NEL,ISMSTR,NUVAR, IPM(NPROPMI,*),MAT(NEL),NGL(*)
62C REAL
63 my_real
64 . UPARAM(*),UVAR(NEL,NUVAR)
65 my_real
66 . TIME
67 my_real
68 . DEPSXX(NEL),DEPSYY(NEL),DEPSZZ(NEL),
69 . DEPSXY(NEL),DEPSYZ(NEL),DEPSZX(NEL),
70 . DEPBXX(NEL),DEPBYY(NEL),DEPBXY(NEL),
71 . DEPPXZ(NEL),DEPPYZ(NEL),
72 . SIGOXX(NEL),SIGOYY(NEL),SIGOZZ(NEL),
73 . SIGOXY(NEL),SIGOYZ(NEL),SIGOZX(NEL),
74 . MOMOXX(NEL),MOMOYY(NEL),MOMOXY(NEL),
75 . MOMOPXZ(NEL),MOMOPYZ(NEL),
76 . AREA(NEL),THK(NEL),THK0(NEL),RHO0(NEL),DT_INV(NEL),ALDT(MVSIZ),
77 . VOL0(MVSIZ),PLA(NEL),DEGMB(MVSIZ),DEGFX(MVSIZ),EZZAVG(MVSIZ),
78 . areapinch(mvsiz)
79C-----------------------------------------------
80C O U T P U T A R G U M E N T S
81C-----------------------------------------------
82 my_real
83 . signxx(nel),signyy(nel),signzz(nel),
84 . signxy(nel),signyz(nel),signzx(nel),
85 . momnxx(nel),momnyy(nel),momnxy(nel),
86 . momnpxz(nel),momnpyz(nel),
87 . ssp(nel),rho(nel)
88C-----------------------------------------------
89C L o c a l V a r i a b l e s
90C-----------------------------------------------
91 INTEGER I,MX,J,IADBUF
92C REAL
93 my_real
94 . PA1,PA2,PA3,PA4,PA5,
95 . E,NU,G,GS,SIGY,HM,SIGY0,
96 . MS,FS,D1,D2,D3,C1,C2,C3,
97 . AAA,BBB,CCC,P,BULK
98 my_real
99 . vol(mvsiz),spheps(mvsiz),
100 . devdepsxx(mvsiz),devdepsyy(mvsiz),devdepszz(mvsiz),
101 . devdepsxy(mvsiz),devdepsyz(mvsiz),devdepsxz(mvsiz),
102 . b1(mvsiz),b2(mvsiz),b3(mvsiz),b4(mvsiz),b5(mvsiz),
103 . thk08(mvsiz),viscmx(mvsiz),thkx(mvsiz),mu(mvsiz),
104 . svonm(mvsiz),crit(mvsiz),sphsig(mvsiz),magdev(mvsiz),invmagdev(mvsiz),
105 . devsxx(mvsiz),devsyy(mvsiz),devszz(mvsiz),
106 . devsxy(mvsiz),devsyz(mvsiz),devszx(mvsiz),
107 . n1(mvsiz),n2(mvsiz),n3(mvsiz),n4(mvsiz),n5(mvsiz),n6(mvsiz),
108 . rr(mvsiz),unsyeq(mvsiz),hh(mvsiz),etse(mvsiz),
109 . degsh_loc(mvsiz),degmb_loc(mvsiz),degfx_loc(mvsiz),dwelm(mvsiz),
110 . dwelf(mvsiz),dwpla(mvsiz),dpla(mvsiz),
111 . sdevxx(mvsiz),sdevyy(mvsiz),sdevzz(mvsiz),
112 . signdevxx(mvsiz),signdevyy(mvsiz),signdevzz(mvsiz),pnew(mvsiz),ptrial(mvsiz),
113 . pold(mvsiz),sigodevxx(mvsiz),sigodevyy(mvsiz),sigodevzz(mvsiz),dd(mvsiz)
114C-----------------------------------------------
115C
116C initialize
117 IF (time == zero) THEN
118 DO i=1,nel
119 uvar(i,1) = areapinch(i)*thk(i)
120 uvar(i,2) = thk(i)
121 ENDDO
122 ENDIF
123C retrieve material parameters from the buffer
124 mx = mat(1)
125 iadbuf = ipm(7,mx)
126 e = uparam(iadbuf)
127 nu = uparam(iadbuf+1)
128 sigy0 = uparam(iadbuf+2)
129 hm = uparam(iadbuf+3)
130 g = half*e/(one+nu)
131 gs = 5.d0/6.d0*g
132 bulk = e/(three*(one-two*nu))
133C other derived material parameters
134 pa1 = e*(one-nu)/(one+nu)/(one-two*nu)
135 pa2 = e*nu/(one+nu)/(one-two*nu)
136 pa3 = g
137 pa4 = (one+nu)*(one-two*nu)/(one-nu**2)/(one-nu)*pa1
138 pa5 = (one+nu)*(one-two*nu)/(one-nu**2)*pa2
139C C1/C2/C3 are PM(28:30) [ref:sigeps02g]
140 c1 = one/e
141 c2 = -nu*c1
142 c3 = one/g
143C
144 DO i=1,nel
145 thk08(i)= thk0(i)*one_over_12
146 b1(i) = pa1*thk08(i)
147 b2(i) = pa2*thk08(i)
148 b3(i) = pa3*thk08(i)
149 b4(i) = pa4*thk08(i)
150 b5(i) = pa5*thk08(i)
151 ENDDO
152C
153 DO i=1,nel
154C THKX(I) = UVAR(I,2)*(1+HALF*DEPSZZ(I))/(1-HALF*DEPSZZ(I))
155 thkx(i) = uvar(i,2)*(1+half*ezzavg(i))/(1-half*ezzavg(i))
156
157 uvar(i,2) = thkx(i)
158 vol(i) = areapinch(i)*thkx(i)
159 rho(i) = uvar(i,1)*rho0(i)/vol(i)
160 mu(i) = rho(i)/rho0(i)-one
161 pnew(i) = bulk*mu(i)
162C print*, NGL(I),PNEW(I)
163 ENDDO
164
165
166 DO i=jft,jlt
167C energy of transverse shear + pinching
168 degsh_loc(i) = sigoyz(i)*depsyz(i)+sigozx(i)*depszx(i)
169C energy of only in plane components, xx,yy,xy
170 degmb_loc(i) = degmb(i) - degsh_loc(i)
171C bending energy
172 degfx_loc(i) = degfx(i)
173C calculate old pressure and old derivatoric stress
174 pold(i) = -third*(sigoxx(i)+sigoyy(i)+sigozz(i))
175 sigodevxx(i) = sigoxx(i)+pold(i)
176 sigodevyy(i) = sigoyy(i)+pold(i)
177 sigodevzz(i) = sigozz(i)+pold(i)
178C calculate change in spherical strain = DD
179 dd(i) = third*(depsxx(i)+depsyy(i)+depszz(i))
180C update trial deviatoric stress to calculate trial deviatoric stress
181 signdevxx(i)=sigodevxx(i)+two*g*(depsxx(i)-dd(i))
182 signdevyy(i)=sigodevyy(i)+two*g*(depsyy(i)-dd(i))
183 signdevzz(i)=sigodevzz(i)+two*g*(depszz(i)-dd(i))
184C shear stresses
185 signxy(i)=sigoxy(i)+g*depsxy(i)
186 signyz(i)=sigoyz(i)+gs*(depsyz(i)+zero*deppyz(i))
187 signzx(i)=sigozx(i)+gs*(depszx(i)+zero*deppxz(i))
188C moments
189 momnxx(i)=momoxx(i)+b4(i)*depbxx(i)+b5(i)*depbyy(i)
190 momnyy(i)=momoyy(i)+b5(i)*depbxx(i)+b4(i)*depbyy(i)
191 momnxy(i)=momoxy(i)+b3(i)*depbxy(i)
192 momnpxz(i)=momopxz(i)+b3(i)*deppxz(i)
193 momnpyz(i)=momopyz(i)+b3(i)*deppyz(i)
194C Sound speed like solids
195 ssp(i) = sqrt(pa1/rho0(i))
196
197
198
199
200
201
202 ENDDO
203C calculate equivalent stress 2D
204 DO i=jft,jlt
205 ms = momnxx(i)+momnyy(i)
206C theory manual (global plasticity algorithm)
207 unsyeq(i) = one/
208 . sqrt(max(sixteen*(ms*ms + three*(momnxy(i)*momnxy(i) - momnxx(i)*momnyy(i)))
209 . +three*half*(signdevxx(i)**2+signdevyy(i)**2+signdevzz(i)**2+two*signxy(i)**2),em20))
210 sigy = sigy0 + hm*pla(i)
211 rr(i) = min(one,sigy*unsyeq(i))
212 ENDDO
213C
214 DO i=jft,jlt
215 IF (rr(i) < one) THEN
216 hh(i) = zero
217 etse(i) = zero
218 ENDIF
219 ENDDO
220C energies calculation
221 DO i=jft,jlt
222C
223 signxx(i) = signdevxx(i)*rr(i)-pnew(i)
224 signyy(i) = signdevyy(i)*rr(i)-pnew(i)
225 signxy(i) = signxy(i)*rr(i)
226 signzz(i) = signdevzz(i)*rr(i)-pnew(i)
227C
228 d1 = signxx(i)-sigoxx(i)
229 d2 = signyy(i)-sigoyy(i)
230 d3 = signzz(i)-sigozz(i)
231C
232 dwelm(i) = (signxx(i)+sigoxx(i))*(c1*d1+c2*d2+c2*d3)+
233 . (signyy(i)+sigoyy(i))*(c2*d1+c1*d2+c2*d3)+
234 . (signzz(i)+sigozz(i))*(c2*d1+c2*d2+c1*d3)+
235 . (signxy(i)+sigoxy(i))*(c3*(signxy(i)-sigoxy(i)))
236 degmb_loc(i) = degmb_loc(i)+signxx(i)*depsxx(i)+signyy(i)*depsyy(i)
237 . +signzz(i)*depszz(i)
238 . +signxy(i)*depsxy(i)
239!
240 momnxx(i) = momnxx(i)*rr(i)
241 momnyy(i) = momnyy(i)*rr(i)
242 momnxy(i) = momnxy(i)*rr(i)
243 d1 = momnxx(i)-momoxx(i)
244 d2 = momnyy(i)-momoyy(i)
245 dwelf(i) = twelve*(
246 . (momnxx(i)+momoxx(i))*(c1*d1+c2*d2)
247 . +(momnyy(i)+momoyy(i))*(c2*d1+c1*d2)
248 . +(momnxy(i)+momoxy(i))*(c3*(momnxy(i)-momoxy(i))) )
249 degfx_loc(i) = degfx_loc(i)+ momnxx(i)*depbxx(i)+momnyy(i)*depbyy(i)
250 . +momnxy(i)*depbxy(i)
251
252 ENDDO
253C delta of plastic work
254 DO i=jft,jlt
255 dwpla(i) = degmb_loc(i)+degfx_loc(i)*thk0(i)-dwelm(i)-dwelf(i)
256 ENDDO
257C equivalent plastic strain
258 DO i=jft,jlt
259 dpla(i) = max(zero,half*dwpla(i)/sigy)
260 pla(i) = pla(i) + dpla(i)
261 ENDDO
262 RETURN
263 END
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine sigeps91gpinch(jft, jlt, nuvar, uparam, rho0, thk, thk0, nel, ssp, area, depsxx, depsyy, depszz, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, deppxz, deppyz, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, momopxz, momopyz, signxx, signyy, signzz, signxy, signyz, signzx, momnxx, momnyy, momnxy, momnpxz, momnpyz, time, uvar, dt_inv, viscmx, aldt, vol0, ipm, mat, pla, degmb, degfx, ngl, ezzavg, areapinch)