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

Go to the source code of this file.

Functions/Subroutines

subroutine fail_johnson_c (nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, iptt, signxx, signyy, signxy, signyz, signzx, dpla, epsp, tstar, off, foff, dfmax, tdel)

Function/Subroutine Documentation

◆ fail_johnson_c()

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

Definition at line 31 of file fail_johnson_c.F.

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