39 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC , PARMAT ,
40 . UNITAB ,MAT_ID ,TITR ,MTAG , LSUBMODEL,
70#include "implicit_f.inc"
79 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
80 my_real,
INTENT(INOUT) :: PM(NPROPM),PARMAT(100),UPARAM()
81 INTEGER,
INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
83 INTEGER,
INTENT(IN) :: MAT_ID
84 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
86 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
92 . E,NU,G,MU,LAM,D,RBULK,SCALEFAC,C(5),
93 . a1,a2,a3,a4,nu0 ,fac_unit
94 CHARACTER(LEN=NCHARFIELD) :: STRING
96 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
100 is_encrypted = .false.
101 is_available = .false.
109 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
111 CALL hm_get_floatv(
'MAT_MUE1' ,mu ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'MAT_D' ,d ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv(
'MAT_Lamda' ,lam ,is_available, lsubmodel, unitab)
115 CALL hm_get_intv (
'Itype' ,itest ,is_available, lsubmodel)
116 CALL hm_get_intv ('mat_fct_idi
' ,IFUNC(1) ,IS_AVAILABLE, LSUBMODEL)
117 CALL HM_GET_FLOATV('mat_nu
' ,NU ,IS_AVAILABLE, LSUBMODEL, UNITAB)
118 CALL HM_GET_FLOATV('mat_fscale
' ,SCALEFAC ,IS_AVAILABLE, LSUBMODEL, UNITAB)
119 IF(SCALEFAC == ZERO)THEN
120 CALL HM_GET_FLOATV_DIM('mat_fscale
' ,FAC_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
121 SCALEFAC = ONE * FAC_UNIT
124 !========== DEFAULT VALUES=============!
126 !IF(RHOR==ZERO)RHOR=RHO0
130 !C By default we consider the uniaxial test
131 IF(ITEST == 0) ITEST = 1
132 !C Uniaxial - itest = 1
133 !C equibiaxial - Itest = 2
134 !c Planar - Itest = 3
136 !the proposed one READ(LINE,FMT=FMT_A_I_F)STRING,IFUNC(1),NU
138 !CSTRING = EQUIBIAXIAL
140 !C By default we consider the unniaxial test
141 !!the proposed one ITEST = 1
142 !!the proposed one IF(STRING(1:8) == ' ' ) THEN
143 !!the proposed one ITEST = 1
144 !!the proposed one ELSEIF(STRING(1:10) == 'equibiaxia
') THEN
145 !!the proposed one ITEST = 2
146 !!the proposed one ELSEIF(STRING(1:6) == 'planar
') THEN
147 !!the proposed one ITEST = 3
148 !!the proposed one ENDIF
151 C(3) = ELEVEN/1050.D00
152 C(4) = 19.D00/7000.D00
153 C(5) = 519.D00/673750.D00
155 IF(LAM == ZERO) LAM = SEVEN
160 G= MU*(ONE + THREE*A1/FIVE + EIGHTY19*A2/175.D00
161 . + 513.D00*A3/875.D00 + 42039.D00*A4/67375.D00)
165 IF(IFUNC(1) /= 0) THEN
167 IF (NU == ZERO) NU= 0.495
168 ELSEIF(D == ZERO) THEN
170 RBULK = TWO_THIRD*(ONE + NU)*G/(ONE - TWO*NU)
178 E = NINE*RBULK*G/MAX(EM20,(THREE*RBULK + G))
179 IF(IFUNC(1) == 0 ) NU = (THREE*RBULK -TWO*G)/(THREE*RBULK + G)/TWO
193 UPARAM(14) = SCALEFAC
196 IF(NUPARAM > MAXUPARAM)THEN
197 WRITE(IOUT,*)' ** error : nuparam gt maxuparam
'
198 WRITE(IOUT,*)' nuparam =
',NUPARAM,
199 . ' maxuparam =
',MAXUPARAM
206 MTAG%L_EPSA = 1 ! hyperelastic energy needed for mullins
210 CALL INIT_MAT_KEYWORD(MATPARAM,"INCOMPRESSIBLE")
211 CALL INIT_MAT_KEYWORD(MATPARAM,"TOTAL")
212 CALL INIT_MAT_KEYWORD(MATPARAM,"HOOK")
213 ! Properties compatibility
214 CALL INIT_MAT_KEYWORD(MATPARAM,"SOLID_ISOTROPIC")
216 !========== OUTPUT =============!
217 WRITE(IOUT,1001) TRIM(TITR),MAT_ID,92
220 WRITE(IOUT,'(5x,a,//)
')'confidential data
'
222 WRITE(IOUT,1002) RHO0
223 IF(IFUNC(1) > 0) THEN
225 WRITE(IOUT,1200)IFUNC(1),SCALEFAC, NU
226 ELSEIF(ITEST == 2) THEN
227 WRITE(IOUT,1300)IFUNC(1),SCALEFAC, NU
228 ELSEIF(ITEST == 3) THEN
229 WRITE(IOUT,1400)IFUNC(1),SCALEFAC, NU
232 WRITE(IOUT,1100)MU,D,LAM, NU
238 & 5X,' arruda-boyce law
',/,
239 & 5X,' ----------------
',/)
242 & 5X,'material number . . . . . . . . . . . . =
',I10/,
243 & 5X,'material law. . . . . . . . . . . . . . =
',I10/)
245 & 5X,'initial density . . . . . . . . . . . . =
',1PG20.13/)
247 & 5X,'mu . . . . . . . . . . . . . . . . . . .=
',1PG20.13/
248 & 5X,'d. . . . . . . . . . . . . . . . . . . .=
',1PG20.13/
249 & 5X,'lam. . . . . . . . . . . . . . . . . . .=
',1PG20.13/
250 & 5X,'poisson ratio. . . . . . . . . . . . . .=
',E12.4//)
252 & 5X,'uniaxial
DATA test curve . . . . . . .=
',I10/
253 & 5X,'scale factor
for stress in function. . .=
',1PG20.13/
254 & 5X,'poisson ratio. . . . . . . . . . . . . .=
',E12.4///)
256 & 5X,'equibiaxial
DATA test curve. . . . . . .=
',I10/
257 & 5X,'scale factor
for stress in function. . .=
',1PG20.13/
258 & 5X,'poisson ratio. . . . . . . . . . . . . .=
',E12.4///)
260 & 5X,'planar
DATA test curve . . . . . . . .=
',I10/
261 & 5X,'scale factor
for stress in function. . .=
',1PG20.13/
262 & 5X,'poisson ratio. . . . . . . . . . . . . .=
',E12.4///)
subroutine hm_read_mat92(uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, mat_id, titr, mtag, lsubmodel, pm, ipm, matparam)