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

Go to the source code of this file.

Functions/Subroutines

subroutine fail_energy_ib (nel, ngl, nuparam, uparam, time, epsd, off, dfmax, tdel, iout, istdo, ifunc, damscl, uvar, nvar, snpc, npf, stf, tf, ipt, foff, signxx, signxy, signxz, depsxx, depsxy, depsxz, uelr, npg)

Function/Subroutine Documentation

◆ fail_energy_ib()

subroutine fail_energy_ib ( integer, intent(in) nel,
integer, dimension(nel), intent(in) ngl,
integer, intent(in) nuparam,
intent(in) uparam,
intent(in) time,
intent(in) epsd,
intent(inout) off,
intent(inout) dfmax,
intent(inout) tdel,
integer, intent(in) iout,
integer, intent(in) istdo,
integer, dimension(100), intent(in) ifunc,
intent(inout) damscl,
intent(inout) uvar,
integer, intent(in) nvar,
integer, intent(in) snpc,
integer, dimension(snpc), intent(in) npf,
integer, intent(in) stf,
intent(in) tf,
integer, intent(in) ipt,
integer, dimension(nel), intent(inout) foff,
intent(in) signxx,
intent(in) signxy,
intent(in) signxz,
intent(in) depsxx,
intent(in) depsxy,
intent(in) depsxz,
intent(inout) uelr,
integer, intent(in) npg )

Definition at line 30 of file fail_energy_ib.F.

39C-----------------------------------------------
40c energy failure model for standard beams (TYPE 18)
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 "comlock.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER ,INTENT(IN) :: NEL ! size of element group
53 INTEGER ,INTENT(IN) :: NUPARAM ! size of parameter array
54 INTEGER ,INTENT(IN) :: IPT ! current integration point
55 INTEGER ,INTENT(IN) :: IOUT ! output file unit
56 INTEGER ,INTENT(IN) :: ISTDO ! output file unit
57 INTEGER ,INTENT(IN) :: SNPC
58 INTEGER ,INTENT(IN) :: STF
59 INTEGER ,INTENT(IN) :: NVAR
60 INTEGER ,DIMENSION(NEL) ,INTENT(IN) :: NGL ! table of element identifiers
61 INTEGER ,DIMENSION(100) ,INTENT(IN) :: IFUNC ! table of functions identifiers
62 INTEGER ,DIMENSION(SNPC) ,INTENT(IN) :: NPF
63 INTEGER ,DIMENSION(NEL) ,INTENT(INOUT) :: FOFF ! integration point deactivation flag
64 my_real ,INTENT(IN) :: time ! current time
65 my_real ,DIMENSION(NUPARAM) ,INTENT(IN) :: uparam ! failure model parameter array
66 my_real ,DIMENSION(NEL) ,INTENT(IN) :: epsd ! strain rate
67 my_real ,DIMENSION(STF) ,INTENT(IN) :: tf
68 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: off ! element deactivation flag
69 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: dfmax ! maximum damage
70 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: damscl !1-damage
71 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: tdel ! deactivation time
72 my_real ,DIMENSION(NEL) ,INTENT(IN) :: signxx,signxy,signxz
73 my_real ,DIMENSION(NEL) ,INTENT(IN) :: depsxx,depsxy,depsxz
74 my_real ,DIMENSION(NEL,NVAR),INTENT(INOUT) :: uvar
75 my_real, DIMENSION(NEL) ,INTENT(INOUT) :: uelr
76 INTEGER ,INTENT(IN) :: NPG
77C-----------------------------------------------
78C L o c a l V a r i a b l e s
79C-----------------------------------------------
80 INTEGER :: I,J,NINDX,NINDXD,FAILIP
81 INTEGER ,DIMENSION(NEL) :: INDX,INDXD
82 my_real :: rfac,r1,r2,dydx,rief1,rief2,xfac,finter
83 EXTERNAL finter
84 my_real ,DIMENSION(NEL) :: damage,ie_sp
85C=======================================================================
86 nindx = 0
87 nindxd = 0
88 rief1 = uparam(1)
89 rief2 = uparam(2)
90 xfac = uparam(4)
91 failip = min(nint(uparam(6)),npg) ! number of failed integration point prior to solid element deletion. default = 1 (integer)
92
93 DO i=1,nel
94 damage(i) = zero
95 uvar(i,1) = uvar(i,1) + (signxx(i)*depsxx(i) +
96 . signxy(i)*depsxy(i) +
97 . signxz(i)*depsxz(i))
98 ENDDO
99c-----------------------------
100 DO i=1,nel
101 IF (off(i) == one .AND. foff(i) == 1) THEN
102 IF (ifunc(1) /= 0) THEN
103 rfac = finter(ifunc(1),epsd(i)*xfac,npf,tf,dydx)
104 rfac = max(rfac,em20)
105 ELSE
106 rfac = one
107 ENDIF
108 r1 = rief1*rfac
109 r2 = rief2*rfac
110 ie_sp(i) = uvar(i,1)
111 IF (ie_sp(i) > r1) THEN
112 damage(i) = (ie_sp(i)-r1)/(r2-r1)
113 damage(i) = min(one,damage(i))
114 IF (dfmax(i) == zero) THEN
115 nindxd = nindxd + 1
116 indxd(nindxd) = i
117 ENDIF
118 dfmax(i) = max(dfmax(i) ,damage(i))
119 damscl(i) = one - damage(i)
120
121 ENDIF
122 damscl(i) = one - damage(i)
123
124
125
126 IF (ie_sp(i) > r2 ) THEN
127 nindx = nindx + 1
128 indx(nindx) = i
129 tdel(i) = time
130 dfmax(i) = one
131 damscl(i) = zero
132 foff(i) = 0
133 uelr(i) = uelr(i) + one
134 IF (nint(uelr(i)) >= failip) THEN
135 off(i) = four_over_5
136 ENDIF
137 ENDIF
138 ENDIF
139 ENDDO
140
141c------------------------
142 IF (nindxd > 0) THEN
143 DO j=1,nindxd
144 i = indxd(j)
145#include "lockon.inc"
146 WRITE(iout, 2000) ngl(i),ipt,time,ie_sp(i)
147 WRITE(istdo,2000) ngl(i),ipt,time,ie_sp(i)
148#include "lockoff.inc"
149 END DO
150 END IF ! NINDXD
151
152 IF (nindx > 0) THEN
153 DO j=1,nindx
154 i = indx(j)
155#include "lockon.inc"
156 WRITE(iout, 1000) ngl(i),ipt,time,ie_sp(i)
157 WRITE(istdo,1000) ngl(i),ipt,time,ie_sp(i)
158 IF (off(i) == four_over_5) THEN
159 WRITE(iout, 1111) ngl(i),time
160 WRITE(istdo,1111) ngl(i),time
161 ENDIF
162#include "lockoff.inc"
163 END DO
164 END IF ! NINDX
165c------------------
166 1000 FORMAT(5x,'FAILURE (ENERGY) OF BEAM ELEMENT ',i10,1x,',INTEGRATION PT',i5
167 . ,2x,'AT TIME :',1pe12.4,1x,' , ENERGY PER VOLUME : ',1pe12.4 )
168 2000 FORMAT(5x,'START DAMAGE (ENERGY) OF BEAM ELEMENT ',i10,1x,',INTEGRATION PT',i5
169 . ,2x,'AT TIME :',1pe12.4,1x,' , ENERGY PER VOLUME : ',1pe12.4 )
170 1111 FORMAT(1x,'DELETED BEAM ELEMENT ',i10,1x,'AT TIME :',1pe12.4)
171c------------------
172 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21