OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fail_wierzbicki_c.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"
#include "comlock.inc"
#include "lockon.inc"
#include "lockoff.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine fail_wierzbicki_c (nel, nuparam, uparam, nuvar, uvar, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, dpla, off, foff, dfmax, tdel)

Function/Subroutine Documentation

◆ fail_wierzbicki_c()

subroutine fail_wierzbicki_c ( integer, intent(in) nel,
integer, intent(in) nuparam,
intent(in) uparam,
integer, intent(in) nuvar,
intent(inout) uvar,
intent(in) time,
integer, dimension(nel), intent(in) ngl,
integer, intent(in) ipg,
integer, intent(in) ilay,
integer, intent(in) ipt,
intent(in) signxx,
intent(in) signyy,
intent(in) signxy,
intent(in) signyz,
intent(in) signzx,
intent(in) dpla,
intent(in) off,
integer, dimension(nel), intent(inout) foff,
intent(inout) dfmax,
intent(out) tdel )

Definition at line 29 of file fail_wierzbicki_c.F.

34C-----------------------------------------------
35C Xue-Wierzbicki
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C G l o b a l P a r a m e t e r s
42C-----------------------------------------------
43#include "units_c.inc"
44#include "comlock.inc"
45C---------+---------+---+---+--------------------------------------------
46C VAR | SIZE |TYP| RW| DEFINITION
47C---------+---------+---+---+--------------------------------------------
48C NEL | 1 | I | R | SIZE OF THE ELEMENT GROUP NEL
49C NUPARAM | 1 | I | R | SIZE OF THE USER PARAMETER ARRAY
50C UPARAM | NUPARAM | F | R | USER MATERIAL PARAMETER ARRAY
51C NUVAR | 1 | I | R | NUMBER OF USER ELEMENT VARIABLES
52C UVAR |NEL*NUVAR| F |R/W| USER ELEMENT VARIABLE ARRAY
53C---------+---------+---+---+--------------------------------------------
54C TIME | 1 | F | R | CURRENT TIME
55C---------+---------+---+---+--------------------------------------------
56C SIGNXX | NEL | F | W | NEW ELASTO PLASTIC STRESS XX
57C SIGNYY | NEL | F | W | NEW ELASTO PLASTIC STRESS YY
58C ... | | | |
59C DPLA | NEL | F | R | PLASTIC STRAIN INCREMENT
60C---------+---------+---+---+--------------------------------------------
61C OFF | NEL | F | R | DELETED ELEMENT FLAG (=1. ON, =0. OFF)
62C FOFF | NEL | I |R/W| DELETED INTEGRATION POINT FLAG (=1 ON, =0 OFF)
63C DFMAX | NEL | F |R/W| MAX DAMAGE FACTOR
64C TDEL | NEL | F | W | FAILURE TIME
65C---------+---------+---+---+--------------------------------------------
66C NGL ELEMENT ID
67C IPG CURRENT GAUSS POINT (in plane)
68C ILAY CURRENT LAYER
69C IPT CURRENT INTEGRATION POINT IN THE LAYER
70C---------+---------+---+---+--------------------------------------------
71C I N P U T A r g u m e n t s
72C-----------------------------------------------
73 INTEGER ,INTENT(IN) :: NEL,NUPARAM,NUVAR,IPG,ILAY,IPT
74 INTEGER ,DIMENSION(NEL) ,INTENT(IN) :: NGL
75 my_real ,INTENT(IN) :: time
76 my_real ,DIMENSION(NEL) ,INTENT(IN) :: dpla,off,
77 . signxx,signyy,signxy,signyz,signzx
78 my_real,DIMENSION(NUPARAM) ,INTENT(IN) :: uparam
79C-----------------------------------------------
80C I N P U T O U T P U T A r g u m e n t s
81C-----------------------------------------------
82 INTEGER ,DIMENSION(NEL) ,INTENT(INOUT) :: FOFF
83 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: dfmax
84 my_real ,DIMENSION(NEL) ,INTENT(OUT) :: tdel
85 my_real ,DIMENSION(NEL,NUVAR) ,INTENT(INOUT) :: uvar
86C-----------------------------------------------
87C L o c a l V a r i a b l e s
88C-----------------------------------------------
89 INTEGER :: I,J,NINDX
90 INTEGER ,DIMENSION(NEL) :: INDX
91 my_real :: c1,c2,c3,c4,cm,cn,p,epsf,svm,eta,xi
92C=======================================================================
93 c1 = uparam(1)
94 c2 = uparam(2)
95 c3 = uparam(3)
96 c4 = uparam(4)
97 cm = uparam(5)
98 cn = uparam(6)
99 nindx = 0
100C-----------------------------------------------
101 DO i=1,nel
102 IF (off(i) == one .and. foff(i) == 1) THEN
103 p = third*(signxx(i) + signyy(i))
104 svm = sqrt(signxx(i)*signxx(i)
105 . + signyy(i)*signyy(i) - signxx(i)*signyy(i)
106 . + three*signxy(i)*signxy(i))
107C
108 eta = p / max(em20,svm)
109 xi = -half*(twenty + seven)*eta*(eta**2 - third)
110 epsf = (c1*exp(-c2*eta))**cn
111 . - (c3*exp(-c4*eta))**cn
112 epsf = epsf * max(zero,(one - xi**cm))**(one/cm)
113 epsf = ((c1*exp(-c2*eta))**cn - epsf)**(one/cn)
114 IF (epsf > zero) dfmax(i) = dfmax(i) + dpla(i)*(one/epsf)
115 IF (dfmax(i) >= one) THEN
116 nindx = nindx + 1
117 indx(nindx) = i
118 foff(i) = 0
119 tdel(i) = time
120 ENDIF
121 ENDIF
122 ENDDO
123c
124c--- Maximum Damage storing for output : 0 < DFMAX < 1
125 DO i=1,nel
126 dfmax(i) = min(one,dfmax(i))
127 ENDDO
128c------------------------
129 IF (nindx > 0) THEN
130 DO j=1,nindx
131 i = indx(j)
132#include "lockon.inc"
133 WRITE(iout, 2000) ngl(i),ipg,ilay,ipt
134 WRITE(istdo,2100) ngl(i),ipg,ilay,ipt,time
135#include "lockoff.inc"
136 END DO
137 END IF
138c------------------------
139 2000 FORMAT(1x,'FAILURE (WIERZBICKI) OF SHELL ELEMENT ',i10,1x,',GAUSS PT',
140 . i2,1x,',LAYER',i3,1x,',INTEGRATION PT',i3)
141 2100 FORMAT(1x,'FAILURE (WIERZBICKI) OF SHELL ELEMENT ',i10,1x,',GAUSS PT',
142 . i2,1x,',LAYER',i3,1x,',INTEGRATION PT',i3,1x,'AT TIME :',1pe12.4)
143c------------------------
144 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21