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

Go to the source code of this file.

Functions/Subroutines

subroutine fail_beam18 (elbuf_str, fail, mat_param, numgeo, npropg, snpc, stf, nel, npt, iprop, jthe, tempel, ngl, geo, off, epsd, npf, tf, dpla, eint, time, iout, istdo, al, ismstr, exx, exy, exz, kxx, kyy, kzz, dtime, ntable, table, sigy)

Function/Subroutine Documentation

◆ fail_beam18()

subroutine fail_beam18 ( type (elbuf_struct_), intent(inout), target elbuf_str,
type (fail_param_), intent(in) fail,
type (matparam_struct_), intent(in) mat_param,
integer, intent(in) numgeo,
integer, intent(in) npropg,
integer, intent(in) snpc,
integer, intent(in) stf,
integer, intent(in) nel,
integer, intent(in) npt,
integer, intent(in) iprop,
integer, intent(in) jthe,
intent(in) tempel,
integer, dimension(nel), intent(in) ngl,
intent(in) geo,
intent(inout) off,
intent(in) epsd,
integer, dimension(snpc), intent(in) npf,
intent(in) tf,
intent(in) dpla,
intent(in) eint,
intent(in) time,
integer, intent(in) iout,
integer, intent(in) istdo,
intent(in) al,
integer, intent(in) ismstr,
intent(in) exx,
intent(in) exy,
intent(in) exz,
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) sigy )

Definition at line 45 of file fail_beam18.F.

54C-----------------------------------------------
55C M o d u l e s
56C-----------------------------------------------
57 USE mat_elem_mod
58 USE elbufdef_mod
59 USE fail_visual_ib_mod
60 USE fail_gene1_ib_mod
61 USE fail_inievo_ib_mod
62 USE fail_tab2_ib_mod
63C-----------------------------------------------
64C I m p l i c i t T y p e s
65C-----------------------------------------------
66#include "implicit_f.inc"
67C-----------------------------------------------
68C C o m m o n B l o c k s
69C-----------------------------------------------
70#include "comlock.inc"
71C-----------------------------------------------
72C D u m m y A r g u m e n t s
73C-----------------------------------------------
74 INTEGER ,INTENT(IN) :: NEL ! size of element group
75 INTEGER ,INTENT(IN) :: IPROP ! beam property number
76 INTEGER ,INTENT(IN) :: NPT ! number of integration points in beam section
77 INTEGER ,INTENT(IN) :: JTHE ! thermal dependency flag
78 INTEGER ,INTENT(IN) :: NUMGEO ! number of defined properties
79 INTEGER ,INTENT(IN) :: NPROPG ! size of real property parameter table
80 INTEGER ,INTENT(IN) :: SNPC
81 INTEGER ,INTENT(IN) :: STF
82 INTEGER ,INTENT(IN) :: NTABLE
83 TYPE(TTABLE), DIMENSION(NTABLE), INTENT(INOUT) :: TABLE ! TABLE DATA
84 INTEGER ,INTENT(IN) :: IOUT ! output file unit
85 INTEGER ,INTENT(IN) :: ISTDO ! output file unit
86 INTEGER ,INTENT(IN) :: ISMSTR
87 INTEGER ,DIMENSION(SNPC) ,INTENT(IN) :: NPF
88 INTEGER ,DIMENSION(NEL) ,INTENT(IN) :: NGL ! table of element identifiers
89 my_real ,INTENT(IN) :: time
90 my_real ,DIMENSION(NPROPG ,NUMGEO) ,INTENT(IN) :: geo
91 my_real ,DIMENSION(NEL) ,INTENT(IN) :: epsd
92 my_real ,DIMENSION(NEL) ,INTENT(IN) :: al
93 my_real ,DIMENSION(NEL) ,INTENT(IN) :: tempel
94 my_real ,DIMENSION(STF) ,INTENT(IN) :: tf
95 my_real ,DIMENSION(NEL) ,INTENT(IN) :: exx,exy,exz,kxx,kyy,kzz
96 my_real ,DIMENSION(NEL,NPT) ,INTENT(IN) :: dpla
97 my_real ,DIMENSION(NEL,2) ,INTENT(IN) :: eint
98 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: off
99 my_real ,INTENT(IN) :: dtime
100 my_real ,DIMENSION(NEL,NPT) ,INTENT(IN) :: sigy
101C
102 TYPE (ELBUF_STRUCT_) ,INTENT(INOUT) :: ELBUF_STR
103 TYPE (FAIL_PARAM_) ,INTENT(IN) :: FAIL
104 TYPE (MATPARAM_STRUCT_) ,INTENT(IN) :: MAT_PARAM
105 TARGET :: elbuf_str
106C-----------------------------------------------
107C L o c a l V a r i a b l e s
108C-----------------------------------------------
109 INTEGER :: I,IFL,IPT,NFUNC,IPY,IPZ,IPA,NVARF,NPARAM,IRUPT
110 INTEGER :: II(3)
111 INTEGER ,DIMENSION(NEL) :: COUNT
112 my_real :: t0,tm
113 my_real ,DIMENSION(NEL) :: shfact,epsxx,epsxy,epsxz,
114 . signxx,signxy,signxz,ypt,zpt,apt,tstar,depsxx,depsxy,depsxz
115 my_real ,DIMENSION(NEL) :: dpla_ipt,pla_ipt,sigy_ipt
116 my_real :: bidon
117C
118 TYPE(L_BUFEL_) ,POINTER :: LBUF
119 TYPE(BUF_FAIL_),POINTER :: FBUF
120 my_real, DIMENSION(:), POINTER :: uvarf,dfmax,tdel
121 INTEGER, DIMENSION(:), POINTER :: FOFF
122C=======================================================================
123c to avoid compilation error with unused arguments
124c they will be necessary for next development step
125 bidon = eint(1,1)
126c-----------------------------------------------------
127 ipy = 200
128 ipz = 300
129 ipa = 400
130 ifl = 1 ! only one failure model for beams
131 shfact = five_over_6
132C--------------------------------------
133 DO i=1,3
134 ii(i) = nel*(i-1)
135 ENDDO
136 count(1:nel) = 0
137 nparam = fail%NUPARAM
138 nfunc = fail%NFUNC
139C---------------------------------------
140C START LOOP OVER INTEGRATION POINTS
141C---------------------------------------
142 DO ipt = 1,npt
143 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,ipt)
144 fbuf => elbuf_str%BUFLY(1)%FAIL(1,1,ipt)
145 uvarf => fbuf%FLOC(ifl)%VAR
146 nvarf = fbuf%FLOC(ifl)%NVAR
147 irupt = fbuf%FLOC(ifl)%ILAWF
148 dfmax => fbuf%FLOC(ifl)%DAMMX
149 tdel => fbuf%FLOC(ifl)%TDEL
150 foff => fbuf%FLOC(ifl)%OFF
151 pla_ipt = elbuf_str%BUFLY(1)%LBUF(1,1,ipt)%PLA
152 dpla_ipt = dpla(:,ipt)
153 sigy_ipt = sigy(:,ipt)
154
155c
156C--- Coordinates of integration points
157 DO i=1,nel
158 ypt(i) = geo(ipy+ipt,iprop)
159 zpt(i) = geo(ipz+ipt,iprop)
160 apt(i) = geo(ipa+ipt,iprop)
161 ENDDO
162C
163 DO i=1,nel
164 signxx(i) = lbuf%SIG(ii(1)+i)
165 signxy(i) = lbuf%SIG(ii(2)+i)
166 signxz(i) = lbuf%SIG(ii(3)+i)
167 ENDDO
168c--- Total strain
169 DO i= 1,nel
170 epsxx(i) = lbuf%STRA(ii(1)+i)
171 epsxy(i) = lbuf%STRA(ii(2)+i)
172 epsxz(i) = lbuf%STRA(ii(3)+i)
173 END DO
174c--- Incremental strain
175 DO i = 1,nel
176 depsxx(i) = exx(i) - ypt(i)*kzz(i) + zpt(i)*kyy(i)
177 depsxy(i) = exy(i) + zpt(i)*kxx(i)
178 depsxz(i) = exz(i) - ypt(i)*kxx(i)
179 depsxy(i) = depsxy(i) / shfact(i)
180 depsxz(i) = depsxz(i) / shfact(i)
181 ENDDO
182c
183c------------------------------------
184 SELECT CASE (irupt)
185c------------------------------------
186c
187c---------------
188 CASE (1) ! Johnson-Cook
189 ! Tstar computation for Jhonson-Cook failure : T* = (T-T0)/(TM-T0)
190 IF (jthe > 0 .or. elbuf_str%bufly(1)%l_temp > 0) THEN
191 t0 = mat_param%THERM%TREF
192 tm = mat_param%THERM%TMELT
193 tstar(1:nel) = max(zero,(tempel(1:nel)-t0)) / max((tm-t0),em20)
194 ELSE
195 tstar(1:nel) = zero
196 ENDIF
197 CALL fail_johnson_ib(
198 . nel ,ngl ,ipt ,nparam ,fail%UPARAM,
199 . time ,tstar ,signxx ,signxy ,signxz ,
200 . dpla_ipt ,epsd ,off ,foff ,dfmax ,
201 . tdel ,iout ,istdo ,elbuf_str%GBUF%UELR ,npt)
202c---------------
203 CASE (10) ! Tension Strain failure model
204 IF (jthe > 0 .or. elbuf_str%bufly(1)%l_temp > 0) THEN
205 t0 = mat_param%THERM%TREF
206 tm = mat_param%THERM%TMELT
207 tstar(1:nel) = max(zero,(tempel(1:nel)-t0)) / max((tm-t0),em20)
208 ELSE
209 tstar(1:nel) = zero
210 ENDIF
211
212 CALL fail_tensstrain_ib(
213 . nel ,ngl ,nparam ,fail%UPARAM ,
214 . time ,epsd ,off ,dfmax,
215 . tdel ,iout ,istdo ,fail%IFUNC ,
216 . epsxx ,al ,tstar ,lbuf%DMGSCL ,
217 . snpc ,npf ,stf ,uvarf ,nvarf,
218 . tf ,ipt ,foff ,ismstr ,elbuf_str%GBUF%UELR ,npt)
219c---------------
220 CASE (11) ! Energy failure model
221 CALL fail_energy_ib(
222 . nel ,ngl ,nparam ,fail%UPARAM ,
223 . time ,epsd ,off ,dfmax,
224 . tdel ,iout ,istdo ,fail%IFUNC ,
225 . lbuf%DMGSCL,uvarf ,nvarf ,
226 . snpc ,npf ,stf ,
227 . tf ,ipt ,foff ,
228 . signxx ,signxy ,signxz ,
229 . depsxx ,depsxy ,depsxz ,elbuf_str%GBUF%UELR ,npt)
230
231c---------------
232 CASE (30) ! BIQUAD
233 CALL fail_biquad_ib (
234 . nel ,ngl ,nparam ,fail%UPARAM,
235 . time ,off ,dfmax ,tdel ,
236 . iout ,istdo ,nfunc ,fail%IFUNC,lbuf%DMGSCL,
237 . uvarf ,nvarf ,snpc ,npf ,
238 . stf ,tf ,ipt ,foff ,
239 . signxx ,signxy ,signxz ,dpla_ipt ,al,elbuf_str%GBUF%UELR ,npt)
240
241c---------------
242 CASE (34) ! cockroft failure model
243
244 CALL fail_cockroft_ib(
245 . nel ,ngl ,nparam ,fail%UPARAM ,
246 . time ,dpla_ipt ,off ,dfmax,
247 . tdel ,iout ,istdo ,epsxx ,
248 . ipt ,signxx ,signxy ,signxz ,
249 . nvarf ,uvarf ,foff ,elbuf_str%GBUF%UELR ,npt)
250
251C--------------
252 CASE (36) ! visual failure model
253 CALL fail_visual_ib(
254 . nel ,ngl ,nparam ,fail%UPARAM,
255 . time ,dfmax,
256 . iout ,istdo ,
257 . signxx ,signxy ,signxz ,
258 . epsxx ,epsxy ,epsxz ,
259 . nvarf ,
260 . uvarf ,ismstr ,dtime , ipt)
261c-------------
262 CASE (39) ! GENE1 failure model
263 CALL fail_gene1_ib(
264 . nel ,fail%NUPARAM ,fbuf%FLOC(ifl)%NVAR ,fail%NFUNC,
265 . fail%IFUNC ,npf ,tf ,
266 . time ,dtime ,fail%UPARAM ,ipt ,
267 . ngl ,elbuf_str%GBUF%DT,epsd ,fbuf%FLOC(ifl)%VAR,
268 . off ,epsxx ,
269 . epsxy ,epsxz ,
270 . signxx ,signxy ,
271 . signxz ,tempel ,
272 . fbuf%FLOC(ifl)%DAMMX , al, table,
273 . fail%NTABLE ,
274 . fail%TABLE , fbuf%FLOC(ifl)%LF_DAMMX, fail%NIPARAM ,fail%IPARAM,
275 . snpc ,stf ,ntable, foff,elbuf_str%GBUF%UELR ,npt, tdel)
276
277
278c-------------
279 CASE (42) ! Inievo failure model
280
281 CALL fail_inievo_ib(
282 . nel ,fail%NUPARAM ,fbuf%FLOC(ifl)%NVAR ,
283 . table ,fail%NTABLE ,fail%TABLE ,time ,fail%UPARAM ,
284 . ngl ,al ,dpla_ipt ,epsd , fbuf%FLOC(ifl)%VAR,
285 . signxx ,signxy ,signxz ,
286 . pla_ipt ,sigy_ipt ,foff ,fbuf%FLOC(ifl)%DAMMX ,
287 . tdel ,lbuf%DMGSCL ,elbuf_str%GBUF%UELR ,ipt ,npt,
288 . fbuf%FLOC(ifl)%DAMINI ,
289 . ntable ,off)
290
291c-------------
292 CASE (41) ! TAB2 failure model
293
294 CALL fail_tab2_ib(
295 . nel ,fail%NUPARAM ,fbuf%FLOC(ifl)%NVAR ,fail%NFUNC ,fail%IFUNC ,
296 . npf ,table ,tf ,time ,fail%UPARAM ,
297 . ngl ,al ,dpla_ipt ,epsd ,fbuf%FLOC(ifl)%VAR,
298 . signxx ,signxy ,signxz ,
299 . tempel ,off ,fbuf%FLOC(ifl)%DAMMX ,tdel ,lbuf%DMGSCL,
300 . ipt, npt, foff, fail%NTABLE ,fail%TABLE,
301 . elbuf_str%GBUF%UELR,
302 . snpc ,stf ,ntable)
303 DO i= 1,nel
304 IF (foff(i) == 0) count(i) = count(i) + 1
305 END DO
306
307c-------------------------------------
308 END SELECT
309
310C-------------------------------------
311 ENDDO ! IPT = 1,NPT : END LOOP OVER INTEGRATION POINTS
312c------------------
313 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine fail_biquad_ib(nel, ngl, nuparam, uparam, time, off, dfmax, tdel, iout, istdo, nfunc, ifunc, damscl, uvar, nuvar, snpc, npf, stf, tf, ipt, foff, signxx, signxy, signxz, dpla, al, uelr, npg)
subroutine fail_cockroft_ib(nel, ngl, nuparam, uparam, time, dpla, off, dfmax, tdel, iout, istdo, epsxx, ipt, signxx, signxy, signxz, nvarf, uvar, foff, uelr, npg)
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)
subroutine fail_johnson_ib(nel, ngl, ipt, nuparam, uparam, time, tstar, signxx, signxy, signzx, dpla, epsd, off, foff, dfmax, tdel, iout, istdo, uelr, npg)
subroutine fail_tensstrain_ib(nel, ngl, nuparam, uparam, time, epsd, off, dfmax, tdel, iout, istdo, ifunc, epsxx, al, tstar, damscl, snpc, npf, stf, uvar, nvarf, tf, ipt, foff, ismstr, uelr, npg)
#define max(a, b)
Definition macros.h:21
subroutine bidon
Definition machine.F:41