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

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_fail_ladeveze (fail, mat_id, fail_id, irupt, lsubmodel, unitab)

Function/Subroutine Documentation

◆ hm_read_fail_ladeveze()

subroutine hm_read_fail_ladeveze ( type(fail_param_), intent(inout) fail,
integer, intent(in) mat_id,
integer, intent(in) fail_id,
integer, intent(in) irupt,
type(submodel_data), dimension(*), intent(in) lsubmodel,
type(unit_type_), intent(in) unitab )

Definition at line 36 of file hm_read_fail_ladeveze.F.

39C-----------------------------------------------
40C ROUTINE DESCRIPTION :
41C ===================
42C READ HASHIN FAILURE MODEL
43C-----------------------------------------------
44C M o d u l e s
45C-----------------------------------------------
46 USE fail_param_mod
47 USE unitab_mod
48 USE message_mod
49 USE submodel_mod
51C-----------------------------------------------
52C I m p l i c i t T y p e s
53C-----------------------------------------------
54#include "implicit_f.inc"
55C-----------------------------------------------
56C C o m m o n B l o c k s
57C-----------------------------------------------
58#include "units_c.inc"
59C-----------------------------------------------
60C D u m m y A r g u m e n t s
61C-----------------------------------------------
62 INTEGER ,INTENT(IN) :: FAIL_ID ! failure model ID
63 INTEGER ,INTENT(IN) :: MAT_ID ! material law ID
64 INTEGER ,INTENT(IN) :: IRUPT ! failure model type number
65 TYPE(UNIT_TYPE_) ,INTENT(IN) :: UNITAB ! table of input units
66 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*) ! submodel table
67 TYPE(FAIL_PARAM_) ,INTENT(INOUT) :: FAIL ! failure model data structure
68C-----------------------------------------------
69C L o c a l V a r i a b l e s
70C-----------------------------------------------
71 INTEGER :: ISHELL,ISOLID
72 my_real :: k1,k2,k3,gama1,gama2,k,a,tmax,y0,yc,r
73 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
74C=======================================================================
75 is_encrypted = .false.
76 is_available = .false.
77c
78C--------------------------------------------------
79C check crypting
80C--------------------------------------------------
81c
82 CALL hm_option_is_encrypted(is_encrypted)
83c
84C--------------------------------------------------
85C Read DATA
86C--------------------------------------------------
87 CALL hm_get_floatv ('K1' ,k1 ,is_available,lsubmodel,unitab)
88 CALL hm_get_floatv ('K2' ,k2 ,is_available,lsubmodel,unitab)
89 CALL hm_get_floatv ('K3' ,k3 ,is_available,lsubmodel,unitab)
90 CALL hm_get_floatv ('Gamma_1' ,gama1 ,is_available,lsubmodel,unitab)
91 CALL hm_get_floatv ('Gamma_2' ,gama2 ,is_available,lsubmodel,unitab)
92c
93 CALL hm_get_floatv ('Y0' ,y0 ,is_available,lsubmodel,unitab)
94 CALL hm_get_floatv ('Yc' ,yc ,is_available,lsubmodel,unitab)
95 CALL hm_get_floatv ('k_LAD_DAMA' ,k ,is_available,lsubmodel,unitab)
96 CALL hm_get_floatv ('a_DAMA' ,a ,is_available,lsubmodel,unitab)
97 CALL hm_get_floatv ('Tau_max' ,tmax ,is_available,lsubmodel,unitab)
98c
99 CALL hm_get_intv ('Ifail_sh' ,ishell ,is_available,lsubmodel)
100 CALL hm_get_intv ('Ifail_so' ,isolid ,is_available,lsubmodel)
101c--------------------------------------------------
102c Default values
103c--------------------------------------------------
104 r = zero !! used for delamination (plyxfem formulation)
105 y0 = sqrt(y0)
106 yc = sqrt(yc)
107 IF (k1 == zero) k1 = ep30
108 IF (k2 == zero) k2 = ep30
109 IF (k3 == zero) k3 = ep30
110 IF (a == zero)a = ep30
111 IF (y0 == zero) y0 = ep30
112 IF (yc == zero .OR. yc==y0)yc=two*y0
113 IF (a == zero)a = ep30
114 IF(tmax <= zero) tmax = ep20
115 IF(ishell == 0) ishell = 1
116 IF(isolid == 0) isolid = 1
117c---------------------------
118 fail%KEYWORD = 'LADEVEZE'
119 fail%IRUPT = irupt
120 fail%FAIL_ID = fail_id
121 fail%NUPARAM = 13
122 fail%NIPARAM = 0
123 fail%NUVAR = 12
124 fail%NFUNC = 0
125 fail%NTABLE = 0
126 fail%NMOD = 0
127c
128 ALLOCATE (fail%UPARAM(fail%NUPARAM))
129 ALLOCATE (fail%IPARAM(fail%NIPARAM))
130 ALLOCATE (fail%IFUNC (fail%NFUNC))
131 ALLOCATE (fail%TABLE (fail%NTABLE))
132c
133 fail%UPARAM(1) = k1
134 fail%UPARAM(2) = k2
135 fail%UPARAM(3) = k3
136 fail%UPARAM(4) = gama1
137 fail%UPARAM(5) = gama2
138 fail%UPARAM(6) = y0
139 fail%UPARAM(7) = yc
140 fail%UPARAM(8) = k
141 fail%UPARAM(9) = a
142 fail%UPARAM(10) = tmax
143 fail%UPARAM(11) = ishell
144 fail%UPARAM(12) = isolid
145 fail%UPARAM(13) = r ! used inside delamination failure (plyxfem formulation)
146c---------------------------
147 IF(is_encrypted)THEN
148
149 ELSE
150 WRITE(iout, 1000)k1,k2,k3,gama1,gama2,y0**2,yc**2,k,a,tmax
151C for solid
152 IF(isolid == 1)THEN
153 WRITE(iout, 1100)
154 ELSEIF(isolid == 2)THEN
155 WRITE(iout, 1200)
156 ELSEIF(isolid == 3)THEN
157 WRITE(iout, 1300)
158 ENDIF
159 ENDIF
160C-----------
161 1000 FORMAT(
162 & 5x,40h ladeveze delamination damage /,
163 & 5x,40h ------------------------ /,
164 & 5x,'Stiffness in direction 13. . . . . . . . . =',e12.4/
165 & 5x,'Stiffness in direction 23. . . . . . . . . =',e12.4/
166 & 5x,'Stiffness in direction 33. . . . . . . . . =',e12.4/
167 & 5x,'Coupling parameter GAMA1 . . . . . . . . . =',e12.4/
168 & 5x,'Coupling parameter GAMA2. . . . . . . . . =',e12.4/
169 & 5x,'Yield energy damage . . . . . . . . . . . =',e12.4/
170 & 5x,'Critical energy damage . . . . . . . . . =',e12.4/
171 & 5x,'Parameter k . . . . . . . . . . . . . . . . =',e12.4/
172 & 5x,'Parameter a . . . . . . . . . . . . . . . . =',e12.4/
173 & 5x,' Relaxation time . . . . . . . . . . . . . =',e12.4/)
174 1100 FORMAT(
175 & 5x,' SOLID IS DELETED IF CRITERIA IS REACHED FOR'/
176 & 5x,' ONE INTEGRATION POINT ')
177 1200 FORMAT(
178 & 5x,' SOLID IS DELETED IF CRITERIA IS REACHED FOR'/
179 & 5x,' ALL INTEGRATIONS POINTS ')
180 1300 FORMAT(
181 & 5x,' OUT OF PLANE STRESS ARE SET TO ZERO IF CRITERIA' /
182 & 5x,' IS REACHED FOR EACH INTEGRATION POINT ')
183c-----------
184 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine delamination(elbuf_str, mat_param, jft, jlt, ir, is, npt, mat_iply, ipm, pm, bufmat, npf, tf, dt1c, ngl, off, th_iply, del_ply, sig, offi, a11, for, mom, ply_f, thk0, shf, exz, eyz, area, pid, geo, ssp, posly, thkly, kxx, kyy, kxy, dexz, deyz, eint, gstr, nel, nummat)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)