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,fac_l,fac_t,fac_m,fac_c,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.OR. IF (YC == ZERO 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 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)
for(i8=*sizetab-1;i8 >=0;i8--)