OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fail_beam3.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_beam3 (elbuf_str, fail, nummat, npropm, snpc, stf, nel, imat, jthe, dpla, tempel, ngl, pm, off, epsd, npf, tf, time, iout, istdo, svm, pressure, area, al, f1, f2, f3, m1, m2, m3, ismstr, epsxx, epsxy, epsxz, kxx, kyy, kzz, dtime, ntable, table, pla, sigy)

Function/Subroutine Documentation

◆ fail_beam3()

subroutine fail_beam3 ( type (elbuf_struct_), intent(inout) elbuf_str,
type (fail_param_), intent(in) fail,
integer, intent(in) nummat,
integer, intent(in) npropm,
integer, intent(in) snpc,
integer, intent(in) stf,
integer, intent(in) nel,
integer, intent(in) imat,
integer, intent(in) jthe,
intent(in) dpla,
intent(in) tempel,
integer, dimension(nel), intent(in) ngl,
intent(in) pm,
intent(inout) off,
intent(in) epsd,
integer, dimension(snpc), intent(in) npf,
intent(in) tf,
intent(in) time,
integer, intent(in) iout,
integer, intent(in) istdo,
intent(in) svm,
intent(in) pressure,
intent(in) area,
intent(in) al,
intent(inout) f1,
intent(inout) f2,
intent(inout) f3,
intent(inout) m1,
intent(inout) m2,
intent(inout) m3,
integer, intent(in) ismstr,
intent(in) epsxx,
intent(in) epsxy,
intent(in) epsxz,
intent(in) kxx,
intent(in) kyy,
intent(in) kzz,
intent(in) dtime,
integer, intent(in) ntable,
type(ttable), dimension(ntable), intent(inout) table,
intent(in) pla,
intent(in) sigy )

Definition at line 44 of file fail_beam3.F.

55C-----------------------------------------------
56C M o d u l e s
57C-----------------------------------------------
58 USE mat_elem_mod
59 USE elbufdef_mod
60 USE fail_visual_b_mod
61 USE fail_gene1_b_mod
62 USE fail_inievo_b_mod
63 USE fail_tab2_b_mod
64C-----------------------------------------------
65C I m p l i c i t T y p e s
66C-----------------------------------------------
67#include "implicit_f.inc"
68C-----------------------------------------------
69C C o m m o n B l o c k s
70C-----------------------------------------------
71#include "comlock.inc"
72C-----------------------------------------------
73C D u m m y A r g u m e n t s
74C-----------------------------------------------
75 INTEGER ,INTENT(IN) :: NEL ! size of element group
76 INTEGER ,INTENT(IN) :: IMAT ! material law number
77 INTEGER ,INTENT(IN) :: JTHE ! thermal dependency flag
78 INTEGER ,INTENT(IN) :: NUMMAT ! number of defined materials
79 INTEGER ,INTENT(IN) :: NPROPM ! size of real material parameter table
80 INTEGER ,INTENT(IN) :: SNPC
81 INTEGER ,INTENT(IN) :: STF
82 INTEGER ,INTENT(IN) :: IOUT ! output file unit
83 INTEGER ,INTENT(IN) :: ISTDO ! output file unit
84 INTEGER ,INTENT(IN) :: ISMSTR
85 INTEGER ,DIMENSION(SNPC) ,INTENT(IN) :: NPF
86 INTEGER ,DIMENSION(NEL) ,INTENT(IN) :: NGL ! table of element identifiers
87 my_real ,INTENT(IN) :: time
88 my_real ,INTENT(IN) :: area
89 my_real ,DIMENSION(NPROPM ,NUMMAT) ,INTENT(IN) :: pm
90 my_real ,DIMENSION(NEL) ,INTENT(IN) :: dpla
91 my_real ,DIMENSION(NEL) ,INTENT(IN) :: al
92 my_real ,DIMENSION(NEL) ,INTENT(IN) :: svm
93 my_real ,DIMENSION(NEL) ,INTENT(IN) :: pressure
94 my_real ,DIMENSION(NEL) ,INTENT(IN) :: epsd
95 my_real ,DIMENSION(NEL) ,INTENT(IN) :: epsxx,epsxy,epsxz
96 my_real ,DIMENSION(NEL) ,INTENT(IN) :: kxx,kyy,kzz
97 my_real ,DIMENSION(NEL) ,INTENT(IN) :: tempel
98 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: f1,f2,f3
99 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: m1,m2,m3
100
101 my_real ,DIMENSION(STF) ,INTENT(IN) :: tf
102 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: off
103 my_real ,DIMENSION(NEL) ,INTENT(IN) :: pla ! the plastic strain of the current element
104 my_real ,INTENT(IN) :: dtime
105 INTEGER ,INTENT(IN) :: NTABLE
106 TYPE(TTABLE), DIMENSION(NTABLE), INTENT(INOUT) :: TABLE ! TABLE DATA
107 my_real ,DIMENSION(NEL) ,INTENT(IN) :: sigy
108C
109 TYPE (ELBUF_STRUCT_), INTENT(INOUT) :: ELBUF_STR
110 TYPE (FAIL_PARAM_) ,INTENT(IN) :: FAIL
111C-----------------------------------------------
112C L o c a l V a r i a b l e s
113C-----------------------------------------------
114 INTEGER :: IFUNC(100)
115 INTEGER :: I,IFL,NFUNC,NPARAM,IRUPT
116 my_real :: t0,tm,g_module
117 my_real ,DIMENSION(NEL) :: tstar
118 my_real :: bidon
119C
120 my_real, DIMENSION(:) ,POINTER :: uparamf
121C=======================================================================
122c to avoid compilation error with unused arguments
123c they will be necessary for next development step
124c-----------------------------------------------------
125 ifl = 1 ! only one failure model for beams
126C--------------------------------------
127 nparam = fail%NUPARAM
128 nfunc = fail%NFUNC
129c-----------------------------------------
130 irupt = elbuf_str%GBUF%FAIL(1)%ILAWF
131c-------------------------------------
132c progressive element erosion
133c
134 DO i = 1,nel
135
136 IF (off(i) < em01) off(i) = zero
137 IF (off(i) < one ) off(i) = off(i)*four_over_5
138 ENDDO
139
140c-----------------------------------------
141 SELECT CASE (irupt)
142c------------------------------------
143 CASE (1) ! Johnson-Cook
144 ! Tstar computation for Jhonson-Cook failure : T* = (T-T0)/(TM-T0)
145 IF (jthe > 0) THEN
146 t0 = pm(79, imat)
147 tm = pm(80, imat)
148 DO i=1,nel
149 tstar(i) = max(zero,(tempel(i)-t0)/(tm-t0))
150 ENDDO
151 ELSE
152 tstar(1:nel) = zero
153 ENDIF
154 CALL fail_johnson_b(nel ,ngl ,nparam ,fail%UPARAM,
155 . time ,tstar ,svm ,pressure ,
156 . dpla ,epsd ,off ,elbuf_str%GBUF%FAIL(1)%DAMMX,
157 . elbuf_str%GBUF%FAIL(1)%TDEL ,iout ,istdo )
158c---------------
159 CASE (10) ! Tension Strain failure model
160 IF (jthe > 0) THEN
161 t0 = pm(79, imat)
162 tm = pm(80, imat)
163 DO i=1,nel
164 tstar(i) = max(zero,(tempel(i)-t0)/(tm-t0))
165 ENDDO
166 ELSE
167 tstar(1:nel) = zero
168 ENDIF
169
170 CALL fail_tensstrain_b(
171 . nel ,ngl ,nparam ,fail%UPARAM,
172 . time ,epsd ,off ,elbuf_str%GBUF%FAIL(1)%DAMMX,
173 . elbuf_str%GBUF%FAIL(1)%TDEL,iout ,istdo ,fail%IFUNC ,
174 . epsxx ,al ,tstar ,
175 . snpc ,npf ,stf ,
176 . tf ,ismstr ,elbuf_str%GBUF%FAIL(1)%NVAR, elbuf_str%GBUF%FAIL(1)%VAR,
177 . elbuf_str%GBUF%DMGSCL)
178
179c---------------
180 CASE (11) ! Energy failure model
181 CALL fail_energy_b(nel ,ngl ,nparam ,fail%UPARAM,
182 . time ,epsd ,off ,elbuf_str%GBUF%FAIL(1)%DAMMX,
183 . elbuf_str%GBUF%FAIL(1)%TDEL ,iout ,istdo ,fail%IFUNC ,
184 . area ,f1 ,f2 ,f3 ,
185 . m1 ,m2 ,m3 ,snpc ,npf ,stf ,
186 . tf ,epsxx ,epsxy ,epsxz ,kxx ,kyy ,
187 . kzz ,elbuf_str%GBUF%FAIL(1)%NVAR,elbuf_str%GBUF%FAIL(1)%VAR,
188 . elbuf_str%GBUF%DMGSCL)
189c---------------
190
191 CASE (30) ! BIQUAD
192 CALL fail_biquad_b(nel ,ngl ,nparam ,fail%UPARAM,
193 . time ,svm ,pressure ,
194 . dpla ,off ,elbuf_str%GBUF%FAIL(1)%DAMMX,
195 . elbuf_str%GBUF%FAIL(1)%TDEL ,iout ,istdo ,fail%IFUNC ,
196 . nfunc,snpc ,npf ,stf ,tf,
197 . elbuf_str%GBUF%FAIL(1)%NVAR, elbuf_str%GBUF%FAIL(1)%VAR,al,
198 . elbuf_str%GBUF%DMGSCL)
199c---------------
200 CASE (36) ! VISUAL
201 CALL fail_visual_b(nel ,ngl ,nparam ,fail%UPARAM,
202 . time ,elbuf_str%GBUF%FAIL(1)%DAMMX,
203 . iout ,istdo ,
204 . area ,f1 ,
205 . epsxx ,epsxy ,epsxz ,
206 . elbuf_str%GBUF%FAIL(1)%NVAR,
207 . elbuf_str%GBUF%FAIL(1)%VAR,ismstr, dtime)
208
209 CASE (39) ! Gene1 failure model
210 CALL fail_gene1_b(
211 . nel ,fail%NUPARAM ,elbuf_str%GBUF%FAIL(1)%NVAR ,fail%NFUNC,
212 . fail%IFUNC ,npf ,tf ,
213 . time ,dtime ,fail%UPARAM ,
214 . ngl ,elbuf_str%GBUF%DT ,epsd ,elbuf_str%GBUF%FAIL(1)%VAR ,
215 . off ,
216 . area ,f1 ,
217 . epsxx ,epsxy ,epsxz ,
218 . tempel ,
219 . elbuf_str%GBUF%FAIL(1)%DAMMX ,al ,table,
220 . fail%NTABLE,
221 . fail%TABLE ,elbuf_str%GBUF%FAIL(1)%LF_DAMMX ,fail%NIPARAM ,fail%IPARAM,
222 . snpc ,stf ,ntable)
223
224 CASE (42) ! INIEVO failure model
225 CALL fail_inievo_b(
226 . nel ,fail%NUPARAM ,elbuf_str%GBUF%FAIL(1)%NVAR ,
227 . table ,fail%NTABLE ,fail%TABLE ,time ,fail%UPARAM ,
228 . ngl ,al ,dpla ,epsd , elbuf_str%GBUF%FAIL(1)%VAR,
229 . f1 ,area ,
230 . pla ,sigy ,off ,elbuf_str%GBUF%FAIL(1)%DAMMX ,
231 . elbuf_str%GBUF%FAIL(1)%TDEL ,
232 . elbuf_str%GBUF%FAIL(1)%DAMINI,
233 . ntable,elbuf_str%GBUF%DMGSCL)
234
235 CASE (41) ! TAB2 failure model
236 CALL fail_tab2_b(
237 . nel ,fail%NUPARAM ,elbuf_str%GBUF%FAIL(1)%NVAR ,fail%NFUNC ,fail%IFUNC ,
238 . npf ,table ,tf ,time ,fail%UPARAM ,
239 . ngl ,al ,dpla ,epsd ,elbuf_str%GBUF%FAIL(1)%VAR,
240 . f1 ,area ,
241 . tempel ,off ,elbuf_str%GBUF%FAIL(1)%DAMMX ,elbuf_str%GBUF%FAIL(1)%TDEL ,
242 . fail%NTABLE ,fail%TABLE,
243 . snpc ,stf ,ntable ,elbuf_str%GBUF%DMGSCL)
244c-------------
245 END SELECT
246c-----------
247 DO i= 1,nel
248 IF (off(i) == four_over_5) THEN
249#include "lockon.inc"
250 WRITE(iout, 1000) ngl(i),time
251 WRITE(istdo,1000) ngl(i),time
252#include "lockoff.inc"
253 END IF
254 END DO
255c------------------
256 1000 FORMAT(1x,'DELETED BEAM ELEMENT in 1',i10,1x,'AT TIME :',1pe12.4)
257
258
259 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine fail_biquad_b(nel, ngl, nuparam, uparam, time, svm, pressure, dpla, off, dfmax, tdel, iout, istdo, ifunc, nfunc, snpc, npf, stf, tf, nuvar, uvar, al, dmgscl)
subroutine fail_energy_b(nel, ngl, nuparam, uparam, time, epsd, off, dfmax, tdel, iout, istdo, ifunc, area, f1, f2, f3, m1, m2, m3, snpc, npf, stf, tf, epsxx, epsxy, epsxz, kxx, kyy, kzz, nvar, uvar, dmgscl)
subroutine fail_johnson_b(nel, ngl, nuparam, uparam, time, tstar, svm, pressure, dpla, epsd, off, dfmax, tdel, iout, istdo)
subroutine fail_tensstrain_b(nel, ngl, nuparam, uparam, time, epsd, off, dfmax, tdel, iout, istdo, ifunc, epsxx, al, tstar, snpc, npf, stf, tf, ismstr, nuvar, uvar, dmgscl)
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define max(a, b)
Definition macros.h:21
subroutine bidon
Definition machine.F:41