39 . MAT_ID , TITR,MATPARAM)
56#include "implicit_f.inc"
68 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
69 CHARACTER(LEN=NCHARTITLE),
INTENT(IN) :: TITR
70 INTEGER,
INTENT(IN) :: MAT_ID
71 INTEGER,
INTENT(INOUT) :: IPM(NPROPMI)
72 my_real,
INTENT(INOUT) :: pm(npropm)
78 . n12, n23, n31, e11, e22, e33, g12, g23, g31, sigt1, sigt2,
79 . sigt3, delta, ca, cb, cn, sigmx, sigyt1, sigyt2, sigyc1,
80 . sigyc2, sysp12, sysn12, sysp23, sysn23,
alpha, efib, epsft,
81 . epsfc, c11, c22, c33, c12, c13, c23, detc, d11, d12, d13, d22,
82 . d23, d33, d21, d31, d32, a11, a12, a13, a22, a23, a33, c1, ssp,
83 . f1, f2, f4, f5, f11, f22, f44, f55, f12, f23, ft1, ft2,
84 . cc,eps0,wplaref,rho0,rhor
85 TYPE() ,
INTENT(INOUT) :: MATPARAM
87 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
91 is_encrypted = .false.
92 is_available = .false.
96 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
97 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab
98 IF (rhor == zero)
THEN
104 CALL hm_get_floatv(
'MAT_EA', e11, is_available, lsubmodel, unitab)
105 CALL hm_get_floatv(
'MAT_EB', e22, is_available, lsubmodel, unitab)
106 CALL hm_get_floatv(
'MAT_EC', e33, is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'MAT_PRAB', n12, is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'MAT_PRBC', n23, is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_PRCA', n31, is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'MAT_GAB', g12, is_available, lsubmodel, unitab)
113 CALL hm_get_floatv(
'MAT_GBC', g23, is_available, lsubmodel, unitab)
114 CALL hm_get_floatv(
'MAT_GCA', g31, is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'MAT_SIGT1', sigt1, is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'MAT_SIGT2', sigt2, is_available, lsubmodel, unitab)
118 CALL hm_get_floatv(
'MAT_SIGT3', sigt3, is_available, lsubmodel, unitab)
119 CALL hm_get_floatv(
'MAT_DAMAGE', delta, is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'MAT_SIG', sigmx, is_available, lsubmodel, unitab)
124 CALL hm_get_floatv(
'MAT_WPREF', wplaref, is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'MAT_SIGYT1', sigyt1, is_available, lsubmodel, unitab)
133 CALL hm_get_floatv(
'MAT_SIGC12', sysp23, is_available, lsubmodel, unitab)
134 CALL hm_get_floatv(
'MAT_SIGC23', sysn23, is_available, lsubmodel, unitab)
137 CALL hm_get_floatv(
'MAT_EFIB', efib, is_available, lsubmodel, unitab)
138 CALL hm_get_floatv(
'MAT_SRC', cc, is_available, lsubmodel, unitab)
139 CALL hm_get_floatv('mat_srp
', EPS0, IS_AVAILABLE, LSUBMODEL, UNITAB)
140 CALL HM_GET_INTV('strflag
', ICC, IS_AVAILABLE, LSUBMODEL)
142.OR..OR.
IF(E11==0.E22==0.E33==0.) THEN
143 CALL ANCMSG(MSGID=306,
149 . C2='e11, e22 or e33
')
152 CALL ANCMSG(MSGID=305,
161 IF(WPLAREF == ZERO) WPLAREF = ONE
163 IF(ALPHA==ONE)ALPHA= ZEP99
164 IF(DELTA==ZERO)DELTA= FIVEEM2
165 IF(SIGT1==ZERO)SIGT1= INFINITY
166 IF(SIGT2==ZERO)SIGT2= SIGT1
167 IF(SIGT3==ZERO)SIGT3= SIGT1
169 IF(CN==ZERO) CN = ONE
170 IF(SIGMX==ZERO)SIGMX= EP10
171 IF(CC==ZERO) EPS0 = ONE
176 WRITE(IOUT, 900) TRIM(TITR),MAT_ID,14
179 WRITE(IOUT,'(5x,a,//)
')'confidential data
'
182 WRITE(IOUT,1100)E11,E22,E33
183 WRITE(IOUT,1200)N12,N23,N31
184 WRITE(IOUT,1300)G12,G23,G31
185 WRITE(IOUT,1400)SIGT1,SIGT2,SIGT3,DELTA
186 WRITE(IOUT,1510)CB,CN,SIGMX,WPLAREF
187 WRITE(IOUT,1550)SIGYT1,SIGYT2,SIGYC1,SIGYC2
188 WRITE(IOUT,1560)SYSP12,SYSN12,SYSP23,SYSN23
189 WRITE(IOUT,1610)ALPHA,EFIB
190 WRITE(IOUT,1620)CC,EPS0,ICC
202 DETC= C11*C22*C33-C11*C23*C23-C12*C12*C33+C12*C13*C23
203 + +C13*C12*C23-C13*C22*C13
205 CALL ANCMSG(MSGID=307,
211 D11 = (C22*C33-C23*C23)/DETC
212 D12 =-(C12*C33-C13*C23)/DETC
213 D13 = (C12*C23-C13*C22)/DETC
214 D22 = (C11*C33-C13*C13)/DETC
215 D23 =-(C11*C23-C13*C12)/DETC
216 D33 = (C11*C22-C12*C12)/DETC
222 A11 = C11*D11+C12*D21+C13*D31
223 A12 = C11*D12+C12*D22+C13*D32
224 A13 = C11*D13+C12*D23+C13*D33
225 A22 = C12*D12+C22*D22+C23*D23
226 A23 = C12*D13+C22*D23+C23*D33
227 A33 = C13*D13+C23*D23+C33*D33
229 PM(20)= MAX(E11,E22,E33)
230 PM(21)= THIRD*(N12+N31+N23)
231 PM(22)= THIRD*(G12+G23+G31)
236 PM(28) = MAX(ONEP0001,(SIGMX/CA)**2)
237 C1 = MAX(D11,D22,D33)
238 SSP = SQRT(C1/MAX(PM(1),EM20))
264 PM(105) =MIN(D11*D22-D12**2,D22*D33-D23**2,D11*D33-D13**2)/C1**2
268.OR.
IF ( SIGYT1==ZEROSIGYT2==ZERO
269.OR..OR.
. SIGYC1==ZEROSIGYC2==ZERO
270.OR..OR.
. SYSP12==ZEROSYSP23==ZERO
271.OR..OR.
. SYSN12==ZEROSYSN23==ZERO ) THEN
272 CALL ANCMSG(MSGID=737,
278 F1 = ONE/SIGYT1-ONE/SIGYC1
279 F2 = ONE/SIGYT2-ONE/SIGYC2
280 F4 = ONE/SYSP12-ONE/SYSN12
281 F5 = ONE/SYSP23-ONE/SYSN23
282 F11 = ONE/(SIGYT1*SIGYC1)
283 F22 = ONE/(SIGYT2*SIGYC2)
284 F44 = ONE/(SYSP12*SYSN12)
285 F55 = ONE/(SYSP23*SYSN23)
286 F12 = -ONE/(TWO*SQRT(SIGYT1*SIGYC1*SIGYT2*SIGYC2))
287 F23 = -ONE/(TWO*SQRT(SIGYT2*SIGYC2*SIGYT2*SIGYC2))
289 FT1=F11*F22- FOUR*F12**2
290 FT2=F22**2- FOUR*F23**2
292 WRITE(IOUT,1650) F1,F2,F4,F5,F11,F22,F44,F55,F12,F23,FT1,FT2
303 CALL ANCMSG(MSGID=298,
331.NOT.
IF(IS_ENCRYPTED)THEN
332 WRITE(IOUT,'(a)
')' composite constitutive law
'
333 WRITE(IOUT,'( 1p3g20.13 )
') PM(40),PM(41),PM(42)
334 WRITE(IOUT,'(20x,1p2g20.13 )
') PM(43),PM(44)
335 WRITE(IOUT,'(40x, 1pg20.13/)
') PM(45)
347 MTAG%L_EPE = 6 ! strain in crack directions
352 CALL INIT_MAT_KEYWORD(MATPARAM,"HOOK")
353 CALL INIT_MAT_KEYWORD(MATPARAM,"ORTHOTROPIC")
355 ! Properties compatibility
356 CALL INIT_MAT_KEYWORD(MATPARAM,"SOLID_ORTHOTROPIC")
357 CALL INIT_MAT_KEYWORD(MATPARAM,"SPH")
360 CALL INIT_MAT_KEYWORD(MATPARAM,"ELASTO_PLASTIC")
361 CALL INIT_MAT_KEYWORD(MATPARAM,"COMPRESSIBLE")
367 & 5X,'material number. . . . . . . . . . . . . . .=
',I10/,
368 & 5X,'material law . . . . . . . . . . . . . . . .=
',I10/)
370 & 5X,'initial density . . . . . . . . . . . . .=
',1PG20.13/)
372 & 5X,' orthotropic material with fibers
',/,
373 & 5X,' ---------------------------------
',//)
375 & 5X,'young modulus e11 . . . . . . . . . .=
',1PG20.13/,
376 & 5X,'young modulus e22 . . . . . . . . . .=
',1PG20.13/,
377 & 5X,'young modulus e33 . . . . . . . . . .=
',1PG20.13//)
379 & 5X,'poisson ratio n12 . . . . . . . . . .=
',1PG20.13/,
380 & 5X,'poisson ratio n23 . . . . . . . . . .=
',1PG20.13/,
381 & 5X,'poisson ratio n31 . . . . . . . . . .=
',1PG20.13//)
383 & 5X,'shear modulus g12 . . . . . . . . . .=
',1PG20.13/,
384 & 5X,'shear modulus g23 . . . . . . . . . .=
',1PG20.13/,
385 & 5X,'shear modulus g31 . . . . . . . . . .=
',1PG20.13//)
387 & 5X,'matrix tensile failure stress dir-1 . .=
',1PG20.13/,
388 & 5X,'matrix tensile failure stress dir-2 . .=
',1PG20.13/,
389 & 5X,'matrix tensile failure stress dir-3 . .=
',1PG20.13/,
390 & 5X,'damage
PARAMETER . . . . . . . . . . . =
',1PG20.13//)
392 & 5X,'composite yield stress(a) . . . . . .=
',1PG20.13/,
393 & 5X,'composite hardening parameter(b). . .=
',1PG20.13/,
394 & 5X,'composite hardening parameter(n). . .=
',1PG20.13/,
395 & 5X,'composite maximum stress. . . . . . . .=
',1PG20.13//)
397 & 5X,'composite hardening parameter(b). . .=
',1PG20.13/,
398 & 5X,'composite hardening parameter(n). . .=
',1PG20.13/,
399 & 5X,'composite maximum yield
FUNCTION fmax .=
',1PG20.13/,
400 & 5X,'reference plastic work wplaref .=
',1PG20.13//)
402 & 5X,'composite yield in traction (1) . . . . . . .=
',1PG20.13/,
403 & 5X,'composite yield in traction (2-3) . . . . . .=
',1PG20.13/,
404 & 5X,'composite yield in compression (1) . . . . .=
',1PG20.13/,
405 & 5X,'composite yield in compression (2-3) . . . . =
',1PG20.13//)
407 & 5X,'composite yield in shear (+12) . . . .=
',1PG20.13/,
408 & 5X,'composite yield in shear (-12) . . . .=
',1PG20.13/,
409 & 5X,'composite yield in shear (+23) . . . .=
',1PG20.13/,
410 & 5X,'composite yield in shear (-23) . . . .=
',1PG20.13//)
412 & 5X,'fiber volume fraction . . . . . . . . .=
',1PG20.13/,
413 & 5X,'fiber modulus . . . . . . . . . . . . .=
',1PG20.13/,
414 & 5X,'fiber tensile failure strain. . . . . .=
',1PG20.13/,
415 & 5X,'fiber compressive failure strain. . . .=
',1PG20.13//)
417 & 5X,'fiber volume fraction . . . . . . . . .=
',1PG20.13/,
418 & 5X,'fiber modulus . . . . . . . . . . . . .=
',1PG20.13//)
420 & 5X,'strain rate coefficient cc. . . . . . .=
',1PG20.13/,
421 & 5X,'reference strain rate . . . . . . . . .=
',1PG20.13/,
422 & 5X,'flag
for strain rate on f-
max wp-
max. .=
',I10//)
424 & 5X,' yield function constants ,
'/,
425 & 5X,' ------------------------ ,
'//,
426 & 5X,'f1 , f2 . . . . . . . . . . . . . . . .=
',2E12.4/,
427 & 5X,'f4 , f5 . . . . . . . . . . . . . . . .=
',2E12.4/,
428 & 5X,'f11, f22. . . . . . . . . . . . . . . .=
',2E12.4/,
429 & 5X,'f44, f55. . . . . . . . . . . . . . . .=
',2E12.4/,
430 & 5X,'f12, f23. . . . . . . . . . . . . . . .=
',2E12.4/,
431 & 5X,'ft1, ft2. . . . . . . . . . . . . . . .=
',2E12.4//)