OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps35.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine sigeps35 (nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, epsxx, epsyy, epszz, epsxy, epsyz, epszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off)

Function/Subroutine Documentation

◆ sigeps35()

subroutine sigeps35 ( integer nel,
integer nuparam,
integer nuvar,
integer nfunc,
integer, dimension(nfunc) ifunc,
integer, dimension(*) npf,
tf,
time,
timestep,
uparam,
rho0,
rho,
volume,
eint,
epspxx,
epspyy,
epspzz,
epspxy,
epspyz,
epspzx,
depsxx,
depsyy,
depszz,
depsxy,
depsyz,
depszx,
epsxx,
epsyy,
epszz,
epsxy,
epsyz,
epszx,
sigoxx,
sigoyy,
sigozz,
sigoxy,
sigoyz,
sigozx,
signxx,
signyy,
signzz,
signxy,
signyz,
signzx,
sigvxx,
sigvyy,
sigvzz,
sigvxy,
sigvyz,
sigvzx,
soundsp,
viscmax,
uvar,
off )

Definition at line 30 of file sigeps35.F.

41
42C-----------------------------------------------
43C I M P L I C I T T Y P E S
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C G L O B A L P A R A M E T E R S
48C-----------------------------------------------
49#include "mvsiz_p.inc"
50C-----------------------------------------------
51C C o m m o n B l o c k s
52C-----------------------------------------------
53C----------------------------------------------------------------
54C I N P U T A R G U M E N T S
55C----------------------------------------------------------------
56 INTEGER NEL, NUPARAM, NUVAR
57
59 . time , timestep , uparam(nuparam),
60 . rho(nel), rho0(nel), volume(nel), eint(nel),
61 . epspxx(nel), epspyy(nel), epspzz(nel),
62 . epspxy(nel), epspyz(nel), epspzx(nel),
63 . depsxx(nel), depsyy(nel), depszz(nel),
64 . depsxy(nel), depsyz(nel), depszx(nel),
65 . epsxx(nel), epsyy(nel), epszz(nel),
66 . epsxy(nel), epsyz(nel), epszx(nel),
67 . sigoxx(nel), sigoyy(nel), sigozz(nel),
68 . sigoxy(nel), sigoyz(nel), sigozx(nel)
69C----------------------------------------------------------------
70C O U T P U T A R G U M E N T S
71C----------------------------------------------------------------
73 . signxx(nel), signyy(nel), signzz(nel),
74 . signxy(nel), signyz(nel), signzx(nel),
75 . sigvxx(nel), sigvyy(nel), sigvzz(nel),
76 . sigvxy(nel), sigvyz(nel), sigvzx(nel),
77 . soundsp(nel), viscmax(nel)
78C----------------------------------------------------------------
79C I N P U T O U T P U T A R G U M E N T S
80C----------------------------------------------------------------
81 my_real uvar(nel,nuvar), off(nel)
82C----------------------------------------------------------------
83C VARIABLES FOR FUNCTION INTERPOLATION
84C----------------------------------------------------------------
85 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
87 . finter,tf(*)
88 EXTERNAL finter
89C----------------------------------------------------------------
90C L O C A L V A R I B L E S
91C----------------------------------------------------------------
92 INTEGER I,J,KF,IFLAG,ICORRECT
93
95 . e,poisson,a,b,et,poissont,fac
97 . gt2,bulkt3,relvexp
99 . vmu,vlamda,vmu2,vlamda3
100 my_real
101 . c1,c2,c3,pmin,dpdmu
102 my_real
103 . p0,phi,gama0
104 my_real
105 . enew(mvsiz),edot(mvsiz),dedot(mvsiz)
106 my_real
107 . dpdgama(mvsiz),gama(mvsiz),amu(mvsiz)
108 my_real
109 . sm(mvsiz),em(mvsiz),dedm(mvsiz)
110 my_real
111 . g2(mvsiz),bulk(mvsiz),bulk3(mvsiz)
112 my_real
113 . dsxx(mvsiz),dsyy(mvsiz),dszz(mvsiz)
114 my_real
115 . dsxy(mvsiz),dsyz(mvsiz),dszx(mvsiz)
116 my_real
117 . dexx(mvsiz),deyy(mvsiz),dezz(mvsiz)
118 my_real
119 . dexy(mvsiz),deyz(mvsiz),dezx(mvsiz)
120 my_real
121 . dedxx(mvsiz),dedyy(mvsiz),dedzz(mvsiz)
122 my_real
123 . dedxy(mvsiz),dedyz(mvsiz),dedzx(mvsiz)
124 my_real
125 . dsdxx(mvsiz),dsdyy(mvsiz),dsdzz(mvsiz)
126 my_real
127 . dsdxy(mvsiz),dsdyz(mvsiz),dsdzx(mvsiz)
128 my_real
129 . dpdro(mvsiz),p(mvsiz),pdelt(mvsiz),relvol(mvsiz)
130 my_real
131 . sigair(mvsiz)
132
133 my_real
134 . small,tiny , aux1, aux2,
135 . midstep
136 LOGICAL TEST
137C----------------------------------------------------------------
138 time =zero
139 timestep=one
140
141 small = em3
142 tiny = em30
143 test=.false.
144
145
146C SET INITIAL MATERIAL CONSTANTS
147
148 e = uparam(1)
149 poisson = uparam(2)
150 a = uparam(3)
151 b = uparam(4)
152
153 et = uparam(5)
154 poissont= uparam(6)
155 vmu2 = uparam(7)*two
156 vlamda3 = uparam(8)*three
157
158 p0 = uparam(9)
159 phi = uparam(10)
160 gama0 = uparam(11)
161
162 c1 = uparam(12)
163 c2 = uparam(13)
164 c3 = uparam(14)
165
166 iflag = uparam(15)
167 pmin = uparam(16)
168 relvexp = uparam(17)
169
170 fac = uparam(18)
171
172 kf = ifunc(1)
173
174 gt2 = et/(one+poissont)
175 bulkt3 = et/(one-two*poissont)
176
177C
178 DO i=1,nel
179 epsxx(i)=epsxx(i)-half*depsxx(i)
180 epsyy(i)=epsyy(i)-half*depsyy(i)
181 epszz(i)=epszz(i)-half*depszz(i)
182 epsxy(i)=epsxy(i)-half*depsxy(i)
183 epsyz(i)=epsyz(i)-half*depsyz(i)
184 epszx(i)=epszx(i)-half*depszx(i)
185 END DO
186
187 DO 200 i=1,nel
188 gama(i) = (rho0(i)/rho(i)-one+gama0)
189 IF(one+gama(i)-phi<=small) gama(i)=-(one-phi-small)
190 sm(i)=third*(sigoxx(i)+sigoyy(i)+sigozz(i))+uvar(i,1)
191 em(i)=third*(epsxx(i)+epsyy(i)+epszz(i))
192 dedm(i)=third*(depsxx(i)+depsyy(i)+depszz(i))
193 sigair(i)=max(zero,-(p0*gama(i))/(one+gama(i)-phi))
194 200 CONTINUE
195
196 DO 210 i=1,nel
197C COMPUTE DEVIATORIC STRESSES
198 dsxx(i)=sigoxx(i)-sm(i)+uvar(i,1)
199 dsyy(i)=sigoyy(i)-sm(i)+uvar(i,1)
200 dszz(i)=sigozz(i)-sm(i)+uvar(i,1)
201 dsxy(i)=sigoxy(i)
202 dsyz(i)=sigoyz(i)
203 dszx(i)=sigozx(i)
204
205C COMPUTE DEVIATORIC STRAINS
206 dexx(i)=epsxx(i)-em(i)
207 deyy(i)=epsyy(i)-em(i)
208 dezz(i)=epszz(i)-em(i)
209 dexy(i)=epsxy(i)* half
210 deyz(i)=epsyz(i)* half
211 dezx(i)=epszx(i)* half
212
213C COMPUTE DEVIATORIC STRAIN RATES
214c DEDTXX(I)=EPSPXX(I)-DEDTM(I)
215c DEDTYY(I)=EPSPYY(I)-DEDTM(I)
216c DEDTZZ(I)=EPSPZZ(I)-DEDTM(I)
217c DEDTXY(I)=EPSPXY(I)*HALF
218c DEDTYZ(I)=EPSPYZ(I)*HALF
219c DEDTZX(I)=EPSPZX(I)*HALF
220
221C COMPUTE DEVIATORIC STRAIN INCREMENTS
222 dedxx(i)=depsxx(i)-dedm(i)
223 dedyy(i)=depsyy(i)-dedm(i)
224 dedzz(i)=depszz(i)-dedm(i)
225 dedxy(i)=depsxy(i)*half
226 dedyz(i)=depsyz(i)*half
227 dedzx(i)=depszx(i)*half
228 210 CONTINUE
229
230 DO i=1,nel
231 relvol(i)=rho0(i)/rho(i)
232 edot(i) =zero
233 ENDDO
234
235C UPDATE ELASTIC MODULUS
236 DO i=1,nel
237 enew(i)=(max(e,a*edot(i)+b))/relvol(i)**relvexp
238 ENDDO
239
240 aux1 = one / (one+poisson)
241 aux2 = one / (one-two*poisson)
242 DO i=1,nel
243 g2(i)=enew(i)*aux1
244 bulk3(i)=enew(i)*aux2
245 ENDDO
246C COMPUTE DEVIATORIC STRESS RATE INCREMENTS
247 DO i=1,nel
248C
249C delta_sigma * VMU2 = ...
250 dsdxx(i)=vmu2*g2(i)*dedxx(i)
251 & -(g2(i)+gt2)*dsxx(i)+g2(i)*gt2*dexx(i)
252 dsdyy(i)=vmu2*g2(i)*dedyy(i)
253 & -(g2(i)+gt2)*dsyy(i)+g2(i)*gt2*deyy(i)
254 dsdzz(i)=vmu2*g2(i)*dedzz(i)
255 & -(g2(i)+gt2)*dszz(i)+g2(i)*gt2*dezz(i)
256 dsdxy(i)=vmu2*g2(i)*dedxy(i)
257 & -(g2(i)+gt2)*dsxy(i)+g2(i)*gt2*dexy(i)
258 dsdyz(i)=vmu2*g2(i)*dedyz(i)
259 & -(g2(i)+gt2)*dsyz(i)+g2(i)*gt2*deyz(i)
260 dsdzx(i)=vmu2*g2(i)*dedzx(i)
261 & -(g2(i)+gt2)*dszx(i)+g2(i)*gt2*dezx(i)
262C
263C delta_sigma = ...
264 midstep =one/(vmu2+half*(g2(i)+gt2))
265 dsdxx(i)=dsdxx(i)*midstep
266 dsdyy(i)=dsdyy(i)*midstep
267 dsdzz(i)=dsdzz(i)*midstep
268 dsdxy(i)=dsdxy(i)*midstep
269 dsdyz(i)=dsdyz(i)*midstep
270 dsdzx(i)=dsdzx(i)*midstep
271 ENDDO
272
273
274C COMPUTE PRESSURE
275 DO i=1,nel
276 IF(kf/=0) THEN
277 amu(i)=rho(i)/rho0(i)-one
278 IF(iflag==0) THEN
279 p(i)=-fac*finter(kf,amu(i),npf,tf,dpdmu)
280 ELSE
281 pdelt(i)=( c1*(bulk3(i)*dedm(i))*(vlamda3+vmu2)+
282 & (-c2*((bulk3(i)+bulkt3)*sm(i))
283 & +c3*((bulk3(i)*bulkt3)*em(i))))
284 & / ((vlamda3+vmu2)+c2*(bulk3(i)+bulkt3)*half)
285 p(i)=sm(i)+pdelt(i)
286 & -fac*finter(kf,amu(i),npf,tf,dpdmu)
287 ENDIF
288 ELSE
289 pdelt(i)=( c1*(bulk3(i)*dedm(i))*(vlamda3+vmu2)+
290 & (-c2*((bulk3(i)+bulkt3)*sm(i))
291 & +c3*((bulk3(i)*bulkt3)*em(i))))
292 & / ((vlamda3+vmu2)+c2*(bulk3(i)+bulkt3)*half)
293 p(i)=sm(i)+pdelt(i)
294 ENDIF
295 IF(p(i)<=pmin) p(i)=pmin
296 ENDDO
297
298C COMPUTE SOUND SPEED
299 DO i=1,nel
300 dpdro(i)=two_third*g2(i)+third*(bulk3(i)
301 & +p0*(one-phi)/(one+gama(i)-phi)**two)
302 ENDDO
303
304 DO i=1,nel
305 soundsp(i)=sqrt(dpdro(i)/rho0(i))
306 ENDDO
307
308C COMPUTE UPDATED STRESSES
309 DO i=1,nel
310 signxx(i)=dsxx(i)+dsdxx(i)+p(i)-sigair(i)
311 signyy(i)=dsyy(i)+dsdyy(i)+p(i)-sigair(i)
312 signzz(i)=dszz(i)+dsdzz(i)+p(i)-sigair(i)
313 signxy(i)=dsxy(i)+dsdxy(i)
314 signyz(i)=dsyz(i)+dsdyz(i)
315 signzx(i)=dszx(i)+dsdzx(i)
316 viscmax(i)= zero
317 uvar(i,1)=sigair(i)
318 ENDDO
319
320 RETURN
321
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21