OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat122.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| hm_read_mat122 ../starter/source/materials/mat/mat122/hm_read_mat122.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_mat ../starter/source/materials/mat/hm_read_mat.F90
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
30!|| hm_get_floatv_dim ../starter/source/devtools/hm_reader/hm_get_floatv_dim.F
31!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
32!|| hm_option_is_encrypted ../starter/source/devtools/hm_reader/hm_option_is_encrypted.F
33!|| init_mat_keyword ../starter/source/materials/mat/init_mat_keyword.F
34!||--- uses -----------------------------------------------------
35!|| elbuftag_mod ../starter/share/modules1/elbuftag_mod.F
36!|| message_mod ../starter/share/message_module/message_mod.F
37!|| submodel_mod ../starter/share/modules1/submodel_mod.F
38!||====================================================================
39 SUBROUTINE hm_read_mat122(
40 . UPARAM ,MAXUPARAM,NUPARAM ,NUVAR ,MAXFUNC ,
41 . NFUNC ,IFUNC ,MTAG ,PARMAT ,UNITAB ,
42 . PM ,LSUBMODEL,ISRATE ,MAT_ID ,TITR ,
43 . MATPARAM ,NVARTMP )
44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE unitab_mod
48 USE message_mod
49 USE submodel_mod
50 USE elbuftag_mod
51 USE matparam_def_mod
53C-----------------------------------------------
54C I m p l i c i t T y p e sXM
55C-----------------------------------------------
56#include "implicit_f.inc"
57C-----------------------------------------------
58C C o m m o n B l o c k s
59C-----------------------------------------------
60#include "units_c.inc"
61#include "param_c.inc"
62C-----------------------------------------------
63C D u m m y A r g u m e n t s
64C-----------------------------------------------
65 my_real, DIMENSION(MAXUPARAM) ,INTENT(INOUT) :: uparam
66 INTEGER, INTENT(IN) :: MAT_ID,MAXUPARAM,MAXFUNC
67 INTEGER, INTENT(INOUT) :: NUPARAM,NUVAR,NFUNC,NVARTMP
68 INTEGER, INTENT(INOUT) :: ISRATE
69 INTEGER, DIMENSION(MAXFUNC), INTENT(INOUT) :: IFUNC
70 TYPE(mlaw_tag_), INTENT(INOUT) :: MTAG
71 my_real, DIMENSION(100),INTENT(INOUT) :: parmat
72 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
73 my_real, DIMENSION(NPROPM) ,INTENT(INOUT) :: pm
74 TYPE(submodel_data), DIMENSION(*),INTENT(IN) :: LSUBMODEL
75 CHARACTER(LEN=NCHARTITLE),INTENT(IN) :: TITR
76 TYPE(matparam_struct_) ,INTENT(INOUT) :: MATPARAM
77C
78C-----------------------------------------------
79C L o c a l V a r i a b l e s
80C-----------------------------------------------
81 INTEGER I,J,ILAW,ISH,ITR,IRES,IBUCK,IFUNCD1,IFUNCD2,
82 . IFUNCD2C,LTYPE11,LTYPE12,LTYPER0
83 my_real
84 . RHO0,E1,E2,E3,G12,G23,G31,NU12,NU23,NU31,NU21,NU32,NU13,
85 . e1c,gamma,sigy0,beta,m,a,efti,eftu,dftu,efci,efcu,dfcu,
86 . dsat1,y0,yc,b,dmax,yr,ysp,dsat2,y0p,ycp,dsat2c,y0pc,ycpc,
87 . epsd11,d11e,n11e,d11u,n11u,epsd12,d22e,n22e,d12e,n12e,
88 . epsdr0,dr0,nr0,fcut
89 my_real
90 . detc,fac,a11,a22,a12,c11,c22,c12,c33,c13,c23,d11,d22,d33,
91 . d12,d13,d23,dmn,dmx
92 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
93C=======================================================================
94 is_encrypted = .false.
95 is_available = .false.
96 ilaw = 122
97c------------------------------------------
98 CALL hm_option_is_encrypted(is_encrypted)
99c------------------------------------------
100c
101!card1 - Density
102 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
103!card2 - Young's moduli + Shear moduli
104 CALL hm_get_floatv('MAT_E1' ,e1 ,is_available, lsubmodel, unitab)
105 CALL hm_get_floatv('MAT_E2' ,e2 ,is_available, lsubmodel, unitab)
106 CALL hm_get_floatv('MAT_E3' ,e3 ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv('MAT_G12' ,g12 ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv('MAT_G23' ,g23 ,is_available, lsubmodel, unitab)
109!card3 - Shear modulus + Poisson's ratio
110 CALL hm_get_floatv('MAT_G31' ,g31 ,is_available, lsubmodel, unitab)
111 CALL hm_get_floatv('MAT_NU12' ,nu12 ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv('MAT_NU23' ,nu23 ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv('MAT_NU31' ,nu31 ,is_available, lsubmodel, unitab)
114!card4 - Compression elasticity + flags
115 CALL hm_get_floatv('MAT_E1C' ,e1c ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv('MAT_GAMMA' ,gamma ,is_available, lsubmodel, unitab)
117 CALL hm_get_intv ('ISH' ,ish ,is_available, lsubmodel)
118 CALL hm_get_intv ('ITR' ,itr ,is_available, lsubmodel)
119 CALL hm_get_intv ('IRES' ,ires ,is_available, lsubmodel)
120!card5 - Plasticity parameter
121 CALL hm_get_floatv('SIGY0' ,sigy0 ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv('BETA' ,beta ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv('M' ,m ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv('A' ,a ,is_available, lsubmodel, unitab)
125!card6 - Fiber tensile damage parameters
126 CALL hm_get_floatv('MAT_EFTI' ,efti ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv('MAT_EFTU' ,eftu ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv('MAT_DFTU' ,dftu ,is_available, lsubmodel, unitab)
129!card7 - Fiber compression damage parameters
130 CALL hm_get_floatv('MAT_EFCI' ,efci ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv('MAT_EFCU' ,efcu ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv('MAT_DFCU' ,dfcu ,is_available, lsubmodel, unitab)
133 CALL hm_get_intv ('IBUCK' ,ibuck ,is_available, lsubmodel)
134!card8 - Matrix in-plane shear damage
135 CALL hm_get_intv ('IFUNCD1' ,ifuncd1 ,is_available, lsubmodel)
136 CALL hm_get_floatv('MAT_DSAT1' ,dsat1 ,is_available, lsubmodel, unitab)
137 CALL hm_get_floatv('MAT_Y0' ,y0 ,is_available, lsubmodel, unitab)
138 CALL hm_get_floatv('MAT_YC' ,yc ,is_available, lsubmodel, unitab)
139 CALL hm_get_floatv('MAT_B' ,b ,is_available, lsubmodel, unitab)
140!card9 - Shear common damage parameters
141 CALL hm_get_floatv('MAT_DMAX' ,dmax ,is_available, lsubmodel, unitab)
142 CALL hm_get_floatv('MAT_YR' ,yr ,is_available, lsubmodel, unitab)
143 CALL hm_get_floatv('MAT_YSP' ,ysp ,is_available, lsubmodel, unitab)
144!card10 - Matrix transverse shear tensile damage
145 CALL hm_get_intv ('IFUNCD2' ,ifuncd2 ,is_available, lsubmodel)
146 CALL hm_get_floatv('MAT_DSAT2' ,dsat2 ,is_available, lsubmodel, unitab)
147 CALL hm_get_floatv('MAT_Y0P' ,y0p ,is_available, lsubmodel, unitab)
148 CALL hm_get_floatv('MAT_YCP' ,ycp ,is_available, lsubmodel, unitab)
149!card11 - Matrix transverse shear compression damage
150 CALL hm_get_intv ('IFUNCD2C' ,ifuncd2c ,is_available, lsubmodel)
151 CALL hm_get_floatv('MAT_DSAT2C',dsat2c ,is_available, lsubmodel, unitab)
152 CALL hm_get_floatv('MAT_Y0PC' ,y0pc ,is_available, lsubmodel, unitab)
153 CALL hm_get_floatv('MAT_YCPC' ,ycpc ,is_available, lsubmodel, unitab)
154!card12 - Fiber direction strain rate dependency parameters
155 CALL hm_get_floatv('MAT_EPSD11',epsd11 ,is_available, lsubmodel, unitab)
156 CALL hm_get_floatv('MAT_D11' ,d11e ,is_available, lsubmodel, unitab)
157 CALL hm_get_floatv('MAT_N11' ,n11e ,is_available, lsubmodel, unitab)
158 CALL hm_get_floatv('MAT_D11U' ,d11u ,is_available, lsubmodel, unitab)
159 CALL hm_get_floatv('MAT_N11U' ,n11u ,is_available, lsubmodel, unitab)
160!card13 - Shear and transverse directions strain rate dependency parameters
161 CALL hm_get_floatv('MAT_EPSD12',epsd12 ,is_available, lsubmodel, unitab)
162 CALL hm_get_floatv('MAT_D22' ,d22e ,is_available, lsubmodel, unitab)
163 CALL hm_get_floatv('MAT_N22' ,n22e ,is_available, lsubmodel, unitab)
164 CALL hm_get_floatv('MAT_D12' ,d12e ,is_available, lsubmodel, unitab)
165 CALL hm_get_floatv('MAT_N12' ,n12e ,is_available, lsubmodel, unitab)
166!card14 - Initial yield stress strain rate dependency parameters + law types
167 CALL hm_get_floatv('MAT_EPSDR0',epsdr0 ,is_available, lsubmodel, unitab)
168 CALL hm_get_floatv('MAT_DR0' ,dr0 ,is_available, lsubmodel, unitab)
169 CALL hm_get_floatv('MAT_NR0' ,nr0 ,is_available, lsubmodel, unitab)
170 CALL hm_get_intv ('LTYPE11' ,ltype11 ,is_available, lsubmodel)
171 CALL hm_get_intv ('LTYPE12' ,ltype12 ,is_available, lsubmodel)
172 CALL hm_get_intv ('LTYPER0' ,ltyper0 ,is_available, lsubmodel)
173!card15 - Equivalent strain rate cutoff frequency
174 CALL hm_get_floatv('FCUT' ,fcut ,is_available, lsubmodel, unitab)
175c
176c-----------------------------
177c Check and default values
178c-----------------------------
179 ! Young modulus
180 IF (e2 == zero) e2 = e1
181 IF (e3 == zero) e3 = e2
182 ! Shear modulus
183 IF (g31 == zero) g31 = g12
184c
185 ! poisson's ratio
186 nu21 = nu12*e2/e1
187 nu32 = nu23*e3/e2
188 nu13 = nu31*e1/e3
189 ! checking poisson's ratio
190 if(nu12*nu21 >= one ) then
191 call ancmsg(msgid=3068,
192 . msgtype=msgerror,
193 . anmode=aninfo_blind_2,
194 . i1=mat_id ,
195 . c1=titr)
196 else if(nu13*nu31 >= one ) then
197 call ancmsg(msgid=3069,
198 . msgtype=msgerror,
199 . anmode=aninfo_blind_2,
200 . i1=mat_id ,
201 . c1=titr)
202 else if(nu23*nu32 >= one ) then
203 call ancmsg(msgid=3070,
204 . msgtype=msgerror,
205 . anmode=aninfo_blind_2,
206 . i1=mat_id ,
207 . c1=titr)
208 endif
209 ! Checking Poisson's ratio
210 detc = one - nu12*nu21
211 IF (detc <= zero) THEN
212 CALL ancmsg(msgid=307,
213 . msgtype=msgerror,
214 . anmode=aninfo,
215 . i1=mat_id,
216 . c1=titr)
217 ENDIF
218c
219 ! Elasticity matrix for 2D plane stress
220 fac = one/(one - nu12*nu21)
221 a11 = e1*fac
222 a12 = nu21*a11
223 a22 = e2*fac
224 ! Compliance matrix for 3D
225 c11 = one/e1
226 c22 = one/e2
227 c33 = one/e3
228 c12 =-nu12/e1
229 c13 =-nu31/e3
230 c23 =-nu23/e2
231 ! Checking input
232 detc= c11*c22*c33-c11*c23*c23-c12*c12*c33+c12*c13*c23
233 . +c13*c12*c23-c13*c22*c13
234 IF(detc<=zero) THEN
235 CALL ancmsg(msgid=307,
236 . msgtype=msgerror,
237 . anmode=aninfo,
238 . i1=mat_id,
239 . c1=titr)
240 ENDIF
241 ! 3D elastic matrix
242 d11 = (c22*c33-c23*c23)/detc
243 d12 =-(c12*c33-c13*c23)/detc
244 d13 = (c12*c23-c13*c22)/detc
245 d22 = (c11*c33-c13*c13)/detc
246 d23 =-(c11*c23-c13*c12)/detc
247 d33 = (c11*c22-c12*c12)/detc
248 dmn = min(d11*d22 -d12**2, d11*d33 - d13**2, d22*d33 - d23**2 )
249 dmx = max(d11,d22,d33)
250c
251 ! Default compression Young modulus in fiber direction
252 IF (e1c == zero) e1c = e1
253c
254 ! Default return mapping algorithm : Newton iteration
255 IF (ires == 0) ires = 2
256 ires = min(ires,2)
257 ires = max(ires,1)
258 ! Damage type
259 IF (ish == 0) ish = 1
260 ish = min(ish,3)
261 ish = max(ish,1)
262 IF (itr == 0) itr = 1
263 itr = min(itr,3)
264 itr = max(itr,1)
265 ! Buckling effect
266 IF (ibuck == 0) ibuck = 1
267 ibuck = min(ibuck,2)
268 ibuck = max(ibuck,1)
269c
270 ! Yield stress
271 IF (sigy0 == zero) sigy0 = infinity
272c
273 ! Fiber damage
274 IF (efti == zero) efti = infinity
275 IF (eftu == zero) eftu = two*infinity
276 dftu = max(dftu,zero)
277 dftu = min(dftu,one)
278 IF (efci == zero) efci = infinity
279 IF (efcu == zero) efcu = two*infinity
280 dfcu = max(dfcu,zero)
281 dfcu = min(dfcu,one)
282c
283 ! Matrix damage
284 dmax = min(dmax,one)
285 dmax = max(dmax,zero)
286 dsat1 = min(dsat1,one)
287 dsat1 = max(dsat1,zero)
288 dsat2 = min(dsat2,one)
289 dsat2 = max(dsat2,zero)
290 dsat2c = min(dsat2c,one)
291 dsat2c = max(dsat2c,zero)
292 ! Shear/transverse damage coupling factor
293 IF (b == zero) b = e2/g12
294c
295 ! Check scale factors in case of tabulated function for damage
296 IF ((ifuncd1 > 0).AND.(y0 == zero)) THEN
297 CALL hm_get_floatv_dim('MAT_Y0',y0,is_available,lsubmodel,unitab)
298 ELSEIF (y0 == zero) THEN
299 y0 = infinity
300 ENDIF
301 IF ((ifuncd2 > 0).AND.(y0p == zero)) THEN
302 CALL hm_get_floatv_dim('MAT_Y0P',y0p,is_available,lsubmodel,unitab)
303 ELSEIF (y0p == zero) THEN
304 y0p = infinity
305 ENDIF
306 IF ((ifuncd2c > 0).AND.(y0pc == zero)) THEN
307 CALL hm_get_floatv_dim('MAT_Y0PC',y0pc,is_available,lsubmodel,unitab)
308 ENDIF
309 IF (yr == zero) yr = infinity
310 IF (ysp == zero) ysp = infinity
311c
312 ! Check reference strain rate
313 IF (epsd11 == zero) THEN
314 CALL hm_get_floatv_dim('MAT_EPSD11',epsd11,is_available,lsubmodel,unitab)
315 ENDIF
316 IF (epsd12 == zero) THEN
317 CALL hm_get_floatv_dim('MAT_EPSD12',epsd12,is_available,lsubmodel,unitab)
318 ENDIF
319 IF (epsdr0 == zero) THEN
320 CALL hm_get_floatv_dim('MAT_EPSDR0',epsdr0,is_available,lsubmodel,unitab)
321 ENDIF
322c
323 ! Strain rate dependency law type flags
324 IF (ltype11 == 0) ltype11 = 1
325 ltype11 = min(ltype11,4)
326 ltype11 = max(ltype11,1)
327 IF (ltype12 == 0) ltype12 = 1
328 ltype12 = min(ltype12,4)
329 ltype12 = max(ltype12,1)
330 IF (ltyper0 == 0) ltyper0 = 1
331 ltyper0 = min(ltyper0,4)
332 ltyper0 = max(ltyper0,1)
333c
334 ! Default strain rate cutoff frequency
335 IF (fcut == zero) fcut = 5000.0d0*unitab%FAC_T_WORK
336c
337c--------------------------
338c Filling buffer tables
339c--------------------------
340 ! Number of material parameters
341 nuparam = 63
342 ! Number of functions
343 nfunc = 3
344 ! Number of user variables
345 nuvar = 18
346 ! Number of temporary variable for interpolation
347 nvartmp = 3
348c
349 ! Material parameters
350 uparam(1) = e1
351 uparam(2) = e2
352 uparam(3) = e3
353 uparam(4) = nu12
354 uparam(5) = nu21
355 uparam(6) = nu13
356 uparam(7) = nu31
357 uparam(8) = nu23
358 uparam(9) = nu32
359 uparam(10) = g12
360 uparam(11) = g23
361 uparam(12) = g31
362 uparam(13) = e1c
363 uparam(14) = gamma
364 uparam(15) = ish
365 uparam(16) = itr
366 uparam(17) = ires
367 uparam(18) = sigy0
368 uparam(19) = beta
369 uparam(20) = m
370 uparam(21) = a
371 uparam(22) = efti
372 uparam(23) = eftu
373 uparam(24) = dftu
374 uparam(25) = efci
375 uparam(26) = efcu
376 uparam(27) = dfcu
377 uparam(28) = ibuck
378 uparam(29) = dsat1
379 uparam(30) = y0
380 uparam(31) = yc
381 uparam(32) = b
382 uparam(33) = dmax
383 uparam(34) = yr
384 uparam(35) = ysp
385 uparam(36) = dsat2
386 uparam(37) = y0p
387 uparam(38) = ycp
388 uparam(39) = dsat2c
389 uparam(40) = y0pc
390 uparam(41) = ycpc
391 uparam(42) = epsd11
392 uparam(43) = d11e
393 uparam(44) = n11e
394 uparam(45) = d11u
395 uparam(46) = n11u
396 uparam(47) = epsd12
397 uparam(48) = d22e
398 uparam(49) = n22e
399 uparam(50) = d12e
400 uparam(51) = n12e
401 uparam(52) = epsdr0
402 uparam(53) = dr0
403 uparam(54) = nr0
404 uparam(55) = ltype11
405 uparam(56) = ltype12
406 uparam(57) = ltyper0
407 uparam(58) = d11
408 uparam(59) = d12
409 uparam(60) = d13
410 uparam(61) = d22
411 uparam(62) = d23
412 uparam(63) = d33
413c
414 ! Function IDs
415 ifunc(1) = ifuncd1
416 ifunc(2) = ifuncd2
417 ifunc(3) = ifuncd2c
418c
419 ! PARMAT table
420 israte = 1
421 parmat(1) = max(a11,a22,d11,d22,d33)
422 parmat(2) = max(e1,e2,e3)
423 parmat(3) = max(nu12,nu13,nu23)
424 parmat(4) = israte
425 parmat(5) = fcut
426 parmat(16) = 1
427 parmat(17) = dmn/dmx/dmx
428c
429 ! PM table
430 pm(1) = rho0
431 pm(89) = rho0
432c
433 ! MTAG variable activation
434 mtag%G_PLA = 1
435 mtag%L_PLA = 1
436 mtag%G_EPSD = 1
437 mtag%L_EPSD = 1
438 mtag%G_SEQ = 1
439 mtag%L_SEQ = 1
440 mtag%G_DMG = 6
441 mtag%L_DMG = 6
442c
443 ! Number of output modes
444 ! -> Stored in DMG(:,2:4)
445 matparam%NMOD = 3
446 ALLOCATE(matparam%MODE(matparam%NMOD))
447 matparam%MODE(1) = "Fiber damage"
448 matparam%MODE(2) = "Shear matrix damage"
449 matparam%MODE(3) = "Transverse matrix damage"
450c
451 CALL init_mat_keyword(matparam ,"ELASTO_PLASTIC")
452 CALL init_mat_keyword(matparam ,"INCREMENTAL" )
453 CALL init_mat_keyword(matparam ,"LARGE_STRAIN" )
454 CALL init_mat_keyword(matparam ,"HOOK")
455 CALL init_mat_keyword(matparam ,"ORTHOTROPIC")
456c
457 ! Properties compatibility
458 CALL init_mat_keyword(matparam,"SOLID_ORTHOTROPIC")
459 CALL init_mat_keyword(matparam,"SHELL_ORTHOTROPIC")
460c
461c--------------------------
462c Parameters printout
463c--------------------------
464 WRITE(iout,1000) trim(titr),mat_id,ilaw
465 WRITE(iout,1050)
466 IF (is_encrypted) THEN
467 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
468 ELSE
469 WRITE(iout,1200) rho0
470 WRITE(iout,1300) e1,e2,e3,g12,g23,g31,nu12,nu23,nu31,e1c,gamma
471 WRITE(iout,1400) sigy0,beta,m,a,ires
472 WRITE(iout,1500) efti,eftu,dftu,efci,efcu,dfcu,ibuck
473 WRITE(iout,1600) ish,ifuncd1,dsat1,y0,yc,b
474 WRITE(iout,1700) dmax,yr,ysp
475 WRITE(iout,1800) itr,ifuncd2,dsat2,y0p,ycp,ifuncd2c,dsat2c,y0pc,ycpc
476 WRITE(iout,1900) epsd11,d11e,n11e,d11u,n11u,ltype11
477 WRITE(iout,2000) epsd12,d22e,n22e,d12e,n12e,ltype12
478 WRITE(iout,2100) epsdr0,dr0,nr0,ltyper0
479 WRITE(iout,2200) fcut
480 ENDIF
481c-----------------------------------------------------------------------
482 1000 FORMAT(/
483 & 5x,a,/,
484 & 5x,'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
485 & 5x,'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
486 1050 FORMAT
487 &(5x,'MATERIAL MODEL : MODIFIED LADEVEZE',/,
488 & 5x,'----------------------------------',/)
489 1200 FORMAT(
490 & 5x,'INITIAL DENSITY . . . . . . . . . . . . . . . . .=',1pg20.13/)
491 1300 FORMAT(
492 & 5x,'ELASTICITY PARAMETERS: ',/
493 & 5x,'---------------------- ',/
494 & 5x,'YOUNG MODULUS IN DIR. 1 (FIBER) E1 . . . . . . .=',1pg20.13/
495 & 5x,'YOUNG MODULUS IN DIR. 2 (MATRIX) E2 . . . . . . .=',1pg20.13/
496 & 5x,'YOUNG MODULUS IN DIR. 3 (MATRIX) E3 . . . . . . .=',1pg20.13/
497 & 5x,'SHEAR MODULUS IN PLANE 12 G12 . . . . . . . . . .=',1pg20.13/
498 & 5x,'SHEAR MODULUS IN PLANE 23 G23 . . . . . . . . . .=',1pg20.13/
499 & 5x,'SHEAR MODULUS IN PLANE 31 G31 . . . . . . . . . .=',1pg20.13/
500 & 5x,'POISSON RATIO IN PLANE 12 NU12. . . . . . . . . .=',1pg20.13/
501 & 5x,'poisson ratio in plane 23 nu23. . . . . . . . . .=',1PG20.13/
502 & 5X,'poisson ratio in plane 31 nu31. . . . . . . . . .=',1PG20.13/
503 & 5X,'initial compression young modulus in dir. 1 e1c .=',1PG20.13/
504 & 5X,'compression young modulus factor gamma. . . . . .=',1PG20.13/)
505 1400 FORMAT(
506 & 5X,'plasticity parameters: ',/
507 & 5X,'--------------------- ',/
508 & 5X,'initial yield stress sigy0. . . . . . . . . . . .=',1PG20.13/
509 & 5X,'hardening modulus beta. . . . . . . . . . . . . .=',1PG20.13/
510 & 5X,'hardening exponent m. . . . . . . . . . . . . . .=',1PG20.13/
511 & 5X,'plasticity coupling factor a. . . . . . . . . . .=',1PG20.13/
512 & 5X,'RETURN mapping TYPE flag. . . . . . . . . . . . .=',I3/
513 & 5X,' ires = 1 nice explicit '/
514 & 5X,' ires = 2 cutting plane semi-implicit(default) '/)
515 1500 FORMAT(
516 & 5X,'fiber(dir. 1) damage parameters: ',/
517 & 5X,'--------------------------------- ',/
518 & 5X,'tensile fiber initial damage strain efti. . . . .=',1PG20.13/
519 & 5X,'tensile fiber ultimate damage strain eftu . . . .=',1PG20.13/
520 & 5X,'tensile fiber ultimate damage dftu. . . . . . . .=',1PG20.13/
521 & 5X,'compression fiber initial damage strain efci. . .=',1PG20.13/
522 & 5X,'compression fiber ultimate damage strain efcu . .=',1PG20.13/
523 & 5X,'compression fiber ultimate damage dfcu. . . . . .=',1PG20.13/
524 & 5X,'buckling damage matrix on fiber effect flag . . .=',I3/
525 & 5X,' ibuck = 1 not activated(default)'/
526 & 5X,' ibuck = 2 activated'/)
527 1600 FORMAT(
528 & 5X,'shear matrix damage parameters: ',/
529 & 5X,'------------------------------- ',/
530 & 5X,'shear damage TYPE flag. . . . . . . . . . . . . .=',I3/
531 & 5X,' ish = 1 linear(default) '/
532 & 5X,' ish = 2 exponential '/
533 & 5X,' ish = 3 tabulated curve '/
534 & 5X,'damage tabulated FUNCTION ifuncd1 . . . . . . . .=',I10/
535 & 5X,'damage saturation dsat1 . . . . . . . . . . . . .=',1PG20.13/
536 & 5X,'initial damage energy threshold y0. . . . . . . .=',1PG20.13/
537 & 5X,'critical damage energy limit yc . . . . . . . . .=',1PG20.13/
538 & 5X,'factor b. . . . . . . . . . . . . . . . . . . . .=',1PG20.13/)
539 1700 FORMAT(
540 & 5X,'common damage parameters: ',/
541 & 5X,'------------------------- ',/
542 & 5X,'damage maximal allowed value dmax . . . . . . . .=',1PG20.13/
543 & 5X,'elementary shear damage value yr. . . . . . . . .=',1PG20.13/
544 & 5X,'brittle transverse dam. limit for interface ysp .=',1PG20.13/)
545 1800 FORMAT(
546 & 5X,'transverse matrix damage parameters: ',/
547 & 5X,'------------------------------------ ',/
548 & 5X,'transverse damage type flag . . . . . . . . . . .=',I3/
549 & 5X,' itr = 1 linear (DEFAULT) '/
550 & 5X,' itr = 2 exponential '/
551 & 5X,' itr = 3 tabulated curve '/
552 & 5X,'tensile damage tabulated function ifuncd2 . . . .=',I10/
553 & 5X,'tensile damage saturation dsat2 . . . . . . . . .=',1PG20.13/
554 & 5X,'tensile initial damage energy threshold y0p . . .=',1pg20.13/
555 & 5x,'TENSILE CRITICAL DAMAGE ENERGY LIMIT YCP. . . . .=',1pg20.13/
556 & 5x,'(COMPRESSION PARAMETERS FOR SHELLS ONLY) ',/
557 & 5x,'COMPRESSION DAMAGE TABULATED FUNCTION IFUNCD2 . .=',i10/
558 & 5x,'COMPRESSION DAMAGE SATURATION DSAT2C. . . . . . .=',1pg20.13/
559 & 5x,'COMPRESSION INITIAL DAMAGE ENERGY THRESHOLD Y0PC.=',1pg20.13/
560 & 5x,'COMPRESSION CRITICAL DAMAGE ENERGY LIMIT YCP. . .=',1pg20.13/)
561 1900 FORMAT(
562 & 5x,'FIBER DIR. 1 STRAIN RATE DEPENDENCY PARAMETERS: ',/
563 & 5x,'----------------------------------------------- ',/
564 & 5x,'REFERENCE STRAIN RATE EPSD11. . . . . . . . . . .=',1pg20.13/
565 & 5x,'1ST PARAMETER FOR ELASTICITY RATE DEPENDENCY D11.=',1pg20.13/
566 & 5x,'2ND PARAMETER FOR ELASTICITY RATE DEPENDENCY N11.=',1pg20.13/
567 & 5x,'1ST PARAMETER FOR RUPTURE RATE DEPENDENCY D11U. .=',1pg20.13/
568 & 5x,'2ND PARAMETER FOR RUPTURE RATE DEPENDENCY N11U. .=',1pg20.13/
569 & 5x,'RATE DEPENDENCY LAW TYPE. . . . . . . . . . . . .=',i3/
570 & 5x,' ltype11 = 1 power law(default) ',/
571 & 5X,' ltype11 = 2 linear law ',/
572 & 5X,' ltype11 = 3 logarithmic law ',/
573 & 5X,' ltype11 = 4 tangent hyperbolic law ',/)
574 2000 FORMAT(
575 & 5X,'tranverse/shear strain rate dependency parameters:',/
576 & 5X,'--------------------------------------------------',/
577 & 5X,'reference strain rate epsd12. . . . . . . . . . .=',1PG20.13/
578 & 5X,'1st PARAMETER for elasticity rate dependency d22.=',1PG20.13/
579 & 5X,'2nd PARAMETER for elasticity rate dependency n22.=',1PG20.13/
580 & 5X,'1st PARAMETER for elasticity rate dependency d12.=',1PG20.13/
581 & 5X,'2nd PARAMETER for elasticity rate dependency n12.=',1PG20.13/
582 & 5X,'rate dependency law type. . . . . . . . . . . . .=',I3/
583 & 5X,' ltype12 = 1 power law(default) ',/
584 & 5X,' ltype12 = 2 linear law ',/
585 & 5X,' ltype12 = 3 logarithmic law ',/
586 & 5X,' ltype12 = 4 tangent hyperbolic law ',/)
587 2100 FORMAT(
588 & 5X,'yield stress strain rate dependency parameters: ',/
589 & 5X,'----------------------------------------------- ',/
590 & 5X,'reference strain rate epsdr0. . . . . . . . . . .=',1PG20.13/
591 & 5X,'1st param. for yield stress rate dependency dr0 .=',1PG20.13/
592 & 5X,'2nd param. for yield stress rate dependency nr0 .=',1PG20.13/
593 & 5X,'rate dependency law type. . . . . . . . . . . . .=',I3/
594 & 5X,' ltyper0 = 1 power law(default) ',/
595 & 5X,' ltyper0 = 2 linear law ',/
596 & 5X,' ltyper0 = 3 logarithmic law ',/
597 & 5X,' ltyper0 = 4 tangent hyperbolic law ',/)
598 2200 FORMAT(
599 & 5X,'strain rate filtering cutoff frequency fcut . . .=',1PG20.13/)
600c-----------------------------------------------------------------------
601 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_floatv_dim(name, dim_fac, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine hm_read_mat122(uparam, maxuparam, nuparam, nuvar, maxfunc, nfunc, ifunc, mtag, parmat, unitab, pm, lsubmodel, israte, mat_id, titr, matparam, nvartmp)
subroutine init_mat_keyword(matparam, keyword)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889
subroutine tabulated(iflag, nel, pm, off, eint, mu, espe, dvol, df, vnew, mat, psh, pnew, dpdm, dpde, npf, tf)
Definition tabulated.F:32