29 1 NEL ,NUVAR ,ILAY ,NPT0 ,
30 2 TIME ,TIMESTEP,UPARAM ,
31 3 NGL ,OFF ,NOFF ,SIGNXX ,
32 4 SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
33 5 UVAR ,NUPARAM ,DFMAX ,TDELE )
39#include "implicit_f.inc"
86 INTEGER ,NUPARAM, NUVAR,ILAY,NPT0
89 . TIME,TIMESTEP,UPARAM(NUPARAM),
90 . SIGNXX(NEL),SIGNYY(NEL),SIGNZZ(NEL),
96 my_real UVAR(NEL,NUVAR), OFF(),DFMAX(NEL),TDELE(NEL)
100 INTEGER INDX0(MVSIZ),IFLAG,INDX(MVSIZ)
101 INTEGER I,J,JJ,IADBUF,NINDX,NINDX0,
107 . dam, yd1,yd2,yd3,cc,delta,w,yd,sig
119 iflag = int(uparam(12))
124 IF(isigi == zero)
THEN
125 IF ((uvar(1,12)==zero).AND.(uvar(1,1)==zero))
THEN
133 IF(off(i)<em01) off(i)=zero
134 IF(off(i)<one) off(i)=off(i)*four_over_5
144 IF (off(i) == one )
THEN
149 IF(uvar(i,12) < one)
THEN
150 uvar(i,12)= exp(-(time - uvar(i,11))/tmax)
151 IF(uvar(i,12) < em02) uvar(i,12) = zero
152 signxx(i) = uvar(i,5)*uvar(i,12)
153 signyy(i) = uvar(i,6)*uvar(i,12)
154 signzz(i) = uvar(i,7)*uvar(i,12)
155 signxy(i) = uvar(i,8)*uvar(i,12)
156 signyz(i) = uvar(i,9)*uvar(i,12)
157 signzx(i) = uvar(i,10)*uvar(i,12)
158 IF(uvar(i,12) == zero )
THEN
169 sig = half*(signzz(i) + abs(signzz(i)))
170 yd3 = k3*(one - dam)**2
171 yd3 = half*sig*sig/
max(yd3, em20)
172 yd3 =
max(yd3, uvar(i,2))
178 yd2 = k2*(one - dam)**2
179 yd2 = half*sig*sig/
max(yd2, em20)
180 yd2 =
max(yd2, uvar(i,3))
186 yd1 = k1*(one - dam)**2
194 delta = sqrt(yd) - y0
195 delta = half*(delta + abs(delta))
198 cc = half*(cc + abs(cc))
200 dam = dam + fac*(one - exp(-a*cc))
203 uvar(i,5) = signxx(i)
204 uvar(i,6) = signyy(i)
206 uvar(i,8) = signxy(i)
208 uvar(i,10) = signzx(i)
210 uvar(i,12) = four_over_5
214 ELSEIF(iflag == 2)
THEN
219 IF(uvar(i,12) == zero )
THEN
226 ELSE IF(uvar(i,12) < one)
THEN
227 uvar(i,12)= exp(-(time - uvar(i,11))/tmax)
228 IF(uvar(i,12) < em02)uvar(i,12) = zero
229 signxx(i) = uvar(i,5)*uvar(i,12)
231 signzz(i) = uvar(i,7)*uvar(i,12)
232 signxy(i) = uvar(i,8)*uvar(i,12)
233 signyz(i) = uvar(i,9)*uvar(i,12)
234 signzx(i) = uvar(i,10)*uvar(i,12)
235 IF( uvar(i,12) == zero )
THEN
236 noff(i) = noff(i) + 1
237 IF(noff(i) == npt0 .OR. npt0 == 1)
THEN
249 sig = half*(signzz(i) + abs(signzz(i)))
250 yd3 = k3*(one - dam)**2
251 yd3 = half*sig*sig/
max(yd3, em20)
252 yd3 =
max(yd3, uvar(i,2))
258 yd2 = k2*(one - dam)**2
259 yd2 = half*sig*sig/
max(yd2, em20)
260 yd2 =
max(yd2, uvar(i,3))
266 yd1 = k1*(one - dam)**2
267 yd1 = half*sig*sig/
max(yd1, em20)
268 yd1 =
max(yd1, uvar(i,4))
273 yd = yd3 + gama1*yd1 + gama2*yd2
274 delta = sqrt(yd) - y0
275 delta = half*(delta + abs(delta))
278 cc = half*(cc + abs(cc))
280 dam = dam + fac*(one - exp(-a*cc))
283 uvar(i,5) = signxx(i)
284 uvar(i,6) = signyy(i)
285 uvar(i,7) = signzz(i)
286 uvar(i,8) = signxy(i)
287 uvar(i,9) = signyz(i)
288 uvar(i,10) = signzx(i)
290 uvar(i,12) = four_over_5
295 ELSEIF(iflag == 3)
THEN
299 IF(uvar(i,12) == zero )
THEN
303 ELSE IF(uvar(i,12) < one)
THEN
304 uvar(i,12)= exp(-(time - uvar(i,11))/tmax)
305 IF(uvar(i,12) < em02)uvar(i,12) = zero
306 signzz(i) = uvar(i,7)*uvar(i,12)
307 signyz(i) = uvar(i,9)*uvar(i,12)
308 signzx(i) = uvar(i,10)*uvar(i,12)
309 IF( uvar(i,12) == zero )
THEN
313 IF (int(noff(i))==npt0 .OR. npt0 == 1)
THEN
325 sig = half*(signzz(i) + abs(signzz(i)))
326 yd3 = k3*(one - dam)**2
327 yd3 = half*sig*sig/
max(yd3, em20)
328 yd3 =
max(yd3, uvar(i,2))
334 yd2 = k2*(one - dam)**2
335 yd2 = half*sig*sig/
max(yd2, em20)
336 yd2 =
max(yd2, uvar(i,3))
342 yd1 = k1*(one - dam)**2
343 yd1 = half*sig*sig/
max(yd1, em20)
344 yd1 =
max(yd1, uvar(i,4))
349 yd = yd3 + gama1*yd1 + gama2*yd2
350 delta = sqrt(yd) - y0
351 delta = half*(delta + abs(delta))
354 cc = half*(cc + abs(cc))
356 dam = dam + fac*(one - exp(-a*cc))
359 uvar(i,7) = signzz(i)
360 uvar(i,9) = signyz(i)
361 uvar(i,10) = signzx(i)
363 uvar(i,12) = four_over_5
372 dfmax(i) =
min(one,
max(dfmax(i),uvar(i,1)))
378 IF(iflag == 1 .OR. iflag == 2)
THEN
380 WRITE(iout, 1200) ngl(i),time
381 WRITE(istdo,1200) ngl(i),time
382#include "lockoff.inc"
383 ELSEIF(iflag == 3)
THEN
385 WRITE(iout, 3200) ngl(i),time
386 WRITE(istdo,3200) ngl(i),time
387#include "lockoff.inc"
396 WRITE(iout, 1100) ngl(i),ilay,time
397 WRITE(istdo,1100) ngl(i),ilay,time
398#include "lockoff.inc"
402 1200
FORMAT(1x,
'DELETE SOLID ELEMENT (LADEVEZE MODEL) #',i10,1x,
403 .
'AT TIME # ',1pe20.13)
404 1100
FORMAT(1x,
'FAILURE ELEMENT #',i10,1x,
405 .
'IP #',i10,1x,
'AT TIME #:',1pe20.13)
406 3200
FORMAT(1x,
'DELAMINATION OF ELEMENT (LADEVEZE MODEL) #',i10,1x,
407 .
'AT TIME # ',1pe20.13)
subroutine fail_ladeveze(nel, nuvar, ilay, npt0, time, timestep, uparam, ngl, off, noff, signxx, signyy, signzz, signxy, signyz, signzx, uvar, nuparam, dfmax, tdele)