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

Go to the source code of this file.

Functions/Subroutines

subroutine fail_energy_c (nel, nuparam, nuvar, nfunc, ifunc, uparam, uvar, npf, tf, time, ngl, ipg, ilay, ipt, epsp, area, thk, dmg_flag, dmg_scale, off, foff, dfmax, tdel, signxx, signyy, signxy, signyz, signzx, depsxx, depsyy, depsxy, depsyz, depszx)

Function/Subroutine Documentation

◆ fail_energy_c()

subroutine fail_energy_c ( integer, intent(in) nel,
integer, intent(in) nuparam,
integer, intent(in) nuvar,
integer nfunc,
integer, dimension(nfunc) ifunc,
intent(in) uparam,
intent(inout) uvar,
integer, dimension(*) npf,
tf,
intent(in) time,
integer, dimension(nel), intent(in) ngl,
integer, intent(in) ipg,
integer, intent(in) ilay,
integer, intent(in) ipt,
intent(in) epsp,
intent(in) area,
intent(in) thk,
integer, intent(out) dmg_flag,
intent(out) dmg_scale,
intent(in) off,
integer, dimension(nel), intent(inout) foff,
intent(inout) dfmax,
intent(out) tdel,
intent(in) signxx,
intent(in) signyy,
intent(in) signxy,
intent(in) signyz,
intent(in) signzx,
intent(in) depsxx,
intent(in) depsyy,
intent(in) depsxy,
intent(in) depsyz,
intent(in) depszx )

Definition at line 31 of file fail_energy_c.F.

39C-----------------------------------------------
40C energy failure model
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C G l o b a l P a r a m e t e r s
47C-----------------------------------------------
48#include "units_c.inc"
49#include "comlock.inc"
50C---------+---------+---+---+--------------------------------------------
51C VAR | SIZE |TYP| RW| DEFINITION
52C---------+---------+---+---+--------------------------------------------
53C NEL | 1 | I | R | SIZE OF THE ELEMENT GROUP NEL
54C NUPARAM | 1 | I | R | SIZE OF THE USER PARAMETER ARRAY
55C UPARAM | NUPARAM | F | R | USER MATERIAL PARAMETER ARRAY
56C NUVAR | 1 | I | R | NUMBER OF USER ELEMENT VARIABLES
57C UVAR |NEL*NUVAR| F |R/W| USER ELEMENT VARIABLE ARRAY
58C---------+---------+---+---+--------------------------------------------
59C TIME | 1 | F | R | CURRENT TIME
60C---------+---------+---+---+--------------------------------------------
61C EINT | NEL | F | R | INTERNAL ENERGY
62C---------+---------+---+---+--------------------------------------------
63C OFF | NEL | F | R | DELETED ELEMENT FLAG (=1. ON, =0. OFF)
64C FOFF | NEL | I |R/W| DELETED INTEGRATION POINT FLAG (=1 ON, =0 OFF)
65C DFMAX | NEL | F |R/W| MAX DAMAGE FACTOR
66C TDEL | NEL | F | W | FAILURE TIME
67C DMG_FLAG| 1 | I | W | STRESS REDUCTION FLAG DUE TO DAMAGE
68C DMG_SCALE| NEL | F | W | STRESS REDUCTION FACTOR
69C---------+---------+---+---+--------------------------------------------
70C NGL ELEMENT ID
71C IPG CURRENT GAUSS POINT (in plane)
72C ILAY CURRENT LAYER
73C IPT CURRENT INTEGRATION POINT IN THE LAYER
74C---------+---------+---+---+--------------------------------------------
75C I N P U T A r g u m e n t s
76C-----------------------------------------------
77 INTEGER ,INTENT(IN) :: NEL,NUPARAM,NUVAR,IPG,ILAY,IPT
78 INTEGER ,DIMENSION(NEL) ,INTENT(IN) :: NGL
79 my_real ,INTENT(IN) :: time
80 my_real ,DIMENSION(NEL) ,INTENT(IN) :: area,thk,epsp,off,
81 . signxx,signyy,signxy,signyz,signzx,depsxx,depsyy,depsxy,
82 . depsyz,depszx
83 my_real,DIMENSION(NUPARAM) ,INTENT(IN) :: uparam
84C-----------------------------------------------
85C I N P U T O U T P U T A r g u m e n t s
86C-----------------------------------------------
87 INTEGER ,INTENT(OUT) ::DMG_FLAG
88 INTEGER ,DIMENSION(NEL) ,INTENT(INOUT) :: FOFF
89 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: dfmax
90 my_real ,DIMENSION(NEL) ,INTENT(OUT) :: tdel,dmg_scale
91 my_real ,DIMENSION(NEL,NUVAR) ,INTENT(INOUT) :: uvar
92C-----------------------------------------------
93C VARIABLES FOR FUNCTION INTERPOLATION
94C-----------------------------------------------
95 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
96 my_real finter ,tf(*)
97 EXTERNAL finter
98C Y = FINTER(IFUNC(J),X,NPF,TF,DYDX)
99C Y : y = f(x)
100C X : x
101C DYDX : f'(x) = dy/dx
102C IFUNC(J): FUNCTION INDEX
103C J : FIRST(J=1), SECOND(J=2) .. FUNCTION USED FOR THIS LAW
104C NPF,TF : FUNCTION PARAMETER
105C-----------------------------------------------
106C L o c a l V a r i a b l e s
107C-----------------------------------------------
108 INTEGER :: I,J,NINDX
109 INTEGER ,DIMENSION(NEL) :: INDX
110 my_real rfac,r1,r2,ie_sp,dydx,rief1,rief2,xfac
111 my_real damage(nel)
112C=======================================================================
113 rief1 = uparam(1)
114 rief2 = uparam(2)
115 xfac = uparam(4)
116 dmg_flag = int(uparam(5))
117 nindx = 0
118C-----------------------------------------------
119 DO i = 1,nel
120 IF (off(i) == one .and. foff(i) == 1) THEN
121 IF (ifunc(1) /= 0) THEN
122 rfac = finter(ifunc(1),epsp(i)*xfac,npf,tf,dydx)
123 rfac = max(rfac,em20)
124 ELSE
125 rfac = one
126 ENDIF
127 r1 = rief1*rfac
128 r2 = rief2*rfac
129
130 uvar(i,1) = uvar(i,1) + signxx(i)*depsxx(i) +
131 . signyy(i)*depsyy(i) +
132 . signxy(i)*depsxy(i) +
133 . signyz(i)*depsyz(i) +
134 . signzx(i)*depszx(i)
135 ie_sp = uvar(i,1)
136 IF (ie_sp > r1) THEN
137 damage(i) = (ie_sp-r1)/(r2-r1)
138 damage(i) = min(one,damage(i))
139 dfmax(i) = max(dfmax(i) ,damage(i))
140 ENDIF
141 IF (ie_sp > r2) THEN
142 nindx = nindx + 1
143 indx(nindx) = i
144 foff(i) = 0
145 tdel(i) = time
146 ENDIF
147 ENDIF
148 ENDDO
149c
150 IF (dmg_flag == 1) THEN
151 DO i = 1,nel
152 dmg_scale(i) = one - dfmax(i)
153 ENDDO
154 ENDIF
155c------------------------
156 IF (nindx > 0) THEN
157 DO j=1,nindx
158 i = indx(j)
159#include "lockon.inc"
160 WRITE(iout, 2000) ngl(i),ipg,ilay,ipt
161 WRITE(istdo,2100) ngl(i),ipg,ilay,ipt,time
162#include "lockoff.inc"
163 END DO
164 END IF
165c------------------------
166 2000 FORMAT(1x,'FAILURE (ENERGY) OF SHELL ELEMENT ',i10,1x,',GAUSS PT',
167 . i2,1x,',LAYER',i3,1x,',INTEGRATION PT',i3)
168 2100 FORMAT(1x,'FAILURE (ENERGY) OF SHELL ELEMENT ',i10,1x,',GAUSS PT',
169 . i2,1x,',LAYER',i3,1x,',INTEGRATION PT',i3,1x,'AT TIME :',1pe12.4)
170c------------------------
171 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21