OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fail_energy_s.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "scr17_c.inc"
#include "units_c.inc"
#include "comlock.inc"
#include "param_c.inc"
#include "impl1_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine fail_energy_s (nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, ngl, epsp, uvar, off, dfmax, tdele, dmgscl, signxx, signyy, signzz, signxy, signyz, signzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx)

Function/Subroutine Documentation

◆ fail_energy_s()

subroutine fail_energy_s ( integer, intent(in) nel,
integer, intent(in) nuparam,
integer, intent(in) nuvar,
integer nfunc,
integer, dimension(nfunc) ifunc,
integer, dimension(*) npf,
tf,
intent(in) time,
intent(in) timestep,
intent(in) uparam,
integer, dimension(nel), intent(in) ngl,
intent(in) epsp,
intent(inout) uvar,
intent(inout) off,
intent(inout) dfmax,
intent(inout) tdele,
intent(inout) dmgscl,
intent(in) signxx,
intent(in) signyy,
intent(in) signzz,
intent(in) signxy,
intent(in) signyz,
intent(in) signzx,
intent(in) depsxx,
intent(in) depsyy,
intent(in) depszz,
intent(in) depsxy,
intent(in) depsyz,
intent(in) depszx )

Definition at line 34 of file fail_energy_s.F.

40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C---------+---------+---+---+--------------------------------------------
45C VAR | SIZE |TYP| RW| DEFINITION
46C---------+---------+---+---+--------------------------------------------
47C NEL | 1 | I | R | SIZE OF THE ELEMENT GROUP NEL
48C NUPARAM | 1 | I | R | SIZE OF THE USER PARAMETER ARRAY
49C NUVAR | 1 | I | R | NUMBER OF FAILURE ELEMENT VARIABLES
50C---------+---------+---+---+--------------------------------------------
51C MFUNC | 1 | I | R | NUMBER FUNCTION USED FOR THIS USER LAW not used
52C KFUNC | NFUNC | I | R | FUNCTION INDEX not used
53C NPF | * | I | R | FUNCTION ARRAY
54C TF | * | F | R | FUNCTION ARRAY
55C---------+---------+---+---+--------------------------------------------
56C TIME | 1 | F | R | CURRENT TIME
57C TIMESTEP| 1 | F | R | CURRENT TIME STEP
58C UPARAM | NUPARAM | F | R | USER FAILURE PARAMETER ARRAY
59C---------+---------+---+---+--------------------------------------------
60C SIGNXX | NEL | F | W | NEW ELASTO PLASTIC STRESS XX
61C SIGNYY | NEL | F | W | NEW ELASTO PLASTIC STRESS YY
62C ... | | | |
63C ... | | | |
64C---------+---------+---+---+--------------------------------------------
65C UVAR |NEL*NUVAR| F |R/W| USER ELEMENT VARIABLE ARRAY
66C OFF | NEL | F |R/W| DELETED ELEMENT FLAG (=1. ON, =0. OFF)
67C---------+---------+---+---+--------------------------------------------
68#include "mvsiz_p.inc"
69#include "scr17_c.inc"
70#include "units_c.inc"
71#include "comlock.inc"
72#include "param_c.inc"
73#include "impl1_c.inc"
74C-----------------------------------------------
75C I N P U T A r g u m e n t s
76C-----------------------------------------------
77 INTEGER, INTENT(IN) :: NEL,NUPARAM,NUVAR
78 INTEGER, DIMENSION(NEL), INTENT(IN) :: NGL
79 my_real, INTENT(IN) :: time,timestep
80 my_real, DIMENSION(NUPARAM), INTENT(IN) :: uparam
81 my_real, DIMENSION(NEL), INTENT(IN) :: signxx,signyy,signzz,
82 . signxy,signyz,signzx,depsxx,depsyy,depszz,depsxy,depsyz,
83 . depszx,epsp
84C-----------------------------------------------
85C I N P U T O U T P U T A r g u m e n t s
86C-----------------------------------------------
87 my_real, DIMENSION(NEL), INTENT(INOUT) :: off,dfmax,dmgscl,tdele
88 my_real, DIMENSION(NEL,NUVAR), INTENT(INOUT) :: uvar
89C-----------------------------------------------
90C VARIABLES FOR FUNCTION INTERPOLATION
91C-----------------------------------------------
92 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
93 my_real finter ,tf(*)
94 EXTERNAL finter
95C Y = FINTER(IFUNC(J),X,NPF,TF,DYDX)
96C Y : y = f(x)
97C X : x
98C DYDX : f'(x) = dy/dx
99C IFUNC(J): FUNCTION INDEX
100C J : FIRST(J=1), SECOND(J=2) .. FUNCTION USED FOR THIS LAW
101C NPF,TF : FUNCTION PARAMETER
102C-----------------------------------------------
103C L o c a l V a r i a b l e s
104C-----------------------------------------------
105 INTEGER I,J,IDEL,IDEV,IFLAG(MVSIZ),INDX(MVSIZ),IADBUF,NINDX,
106 . NINDEX,INDEX(MVSIZ),IR,IFAIL,JJ,
107 . ISOLID
108 my_real
109 . e1,e2,e3,e4,e5,e6,rfac,e42,e52,e62,c,d, epst,epst2,
110 . r1,r2,y,yp,dav,dydx,ie_sp,p,scale,cc
111 my_real
112 . eps_max(mvsiz),damage(mvsiz),epsf1(mvsiz),epsf2(mvsiz),
113 . rief1,rief2,xfac
114C--------------------------------------------------------------
115 rief1 = uparam(1)
116 rief2 = uparam(2)
117 xfac = uparam(4)
118 !ISOLID = INT(UPARAM(4))
119 DO i=1,nel
120 damage(i) = zero
121 uvar(i,1) = uvar(i,1) + signxx(i)*depsxx(i) +
122 . signyy(i)*depsyy(i) +
123 . signzz(i)*depszz(i) +
124 . signxy(i)*depsxy(i) +
125 . signyz(i)*depsyz(i) +
126 . signzx(i)*depszx(i)
127 ENDDO
128C-----------------------------------------------
129 DO i=1,nel
130 IF(off(i)<em01) off(i)=zero
131 IF(off(i)<one) off(i)=off(i)*four_over_5
132 END DO
133CC
134 nindx=0
135 DO i=1,nel
136 rfac = one
137 IF(ifunc(1)/=0)THEN
138 rfac=finter(ifunc(1),epsp(i)*xfac,npf,tf,dydx)
139 rfac = max(rfac,em20)
140 ENDIF
141 IF(off(i)==one)THEN
142 ie_sp = uvar(i,1)
143 r1 = rief1*rfac
144 r2 = rief2*rfac
145 IF(ie_sp>r1.AND.r1<r2) THEN
146 damage(i)= (ie_sp-r1)/(r2-r1)
147 damage(i)= min(one,damage(i))
148 ENDIF
149 dfmax(i) = max(dfmax(i),damage(i))
150 IF(ie_sp>r2) THEN
151 damage(i)= one
152 off(i)=four_over_5
153 nindx=nindx+1
154 indx(nindx)=i
155 tdele(i) = time
156 ENDIF
157 ENDIF
158 ENDDO
159c
160 IF(nindx>0.AND.imconv==1)THEN
161 DO j=1,nindx
162#include "lockon.inc"
163 WRITE(iout, 1000) ngl(indx(j))
164 WRITE(istdo,1100) ngl(indx(j)),time
165#include "lockoff.inc"
166 END DO
167 END IF
168 DO i=1,nel
169 dmgscl(i) = one - dfmax(i)
170 ENDDO
171C-----------------------------------------------
172 1000 FORMAT(1x,'DELETE SOLID ELEMENT NUMBER ',i10)
173 1100 FORMAT(1x,'DELETE SOLID ELEMENT NUMBER ',i10,
174 . ' AT TIME :',1pe20.13)
175CC
176 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21