39 . UPARAM ,MAXUPARAM,NUPARAM ,NUVAR ,NFUNC ,
40 . PARMAT ,UNITAB ,PM ,MAT_ID ,TITR ,
41 . IMATVIS ,LSUBMODEL,MATPARAM )
64#include
"implicit_f.inc"
73 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
74 INTEGER,
INTENT(IN) :: MAT_ID,MAXUPARAM
75 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: PM
76 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
77 INTEGER,
INTENT(INOUT) :: NUPARAM,NUVAR,NFUNC,IMATVIS
78 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
79 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
81 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
85 INTEGER :: J,NORDER,NVISC,FLAG_VISC,IVISC,ILAW,ITAG,
87 my_real :: RHO0,RHOR,GAMMAINF,NUG,SUM,GS,P,VISCMAX,BULK
88 my_real,
DIMENSION(100) :: mu,al,gama,taux,nu,beta
89 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
91 is_encrypted = .false.
92 is_available = .false.
104 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
105 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv(
'MAT_NU' ,nug ,is_available, lsubmodel, unitab)
108 CALL hm_get_intv (
'ORDER' ,norder ,is_available,lsubmodel)
109 CALL hm_get_intv (
'Order2' ,nvisc ,is_available,lsubmodel)
110 CALL hm_get_floatv(
'MU' ,viscmax ,is_available, lsubmodel, unitab)
111 CALL hm_get_intv (
'Vflag' ,flag_visc ,is_available,lsubmodel)
112 CALL hm_get_intv (
'Rflag' ,flag_rigidity ,is_available,lsubmodel)
124 . anmode=aninfo_blind_1,
140 CALL HM_GET_FLOAT_ARRAY_INDEX('nu_arr
' ,NU(J),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
141 IF(NU(J) /= ZERO) ITAG = 1
142 IF (NU(J) >= HALF) NU(J) = ZEP499
148 IF (RHOR == ZERO) RHOR = RHO0
151 IF (AL(J) == ZERO) AL(J) = ONE
158 IF (TAUX(J) <= ZERO) TAUX(J) = EP20
159.OR.
IF (GAMA(J) > ONE GAMA(J) < ZERO) THEN
160 CALL ANCMSG(MSGID=560,
162 . ANMODE=ANINFO_BLIND_1,
170 IF(GAMMAINF <= ZERO ) THEN
171 CALL ANCMSG(MSGID=2084,
173 . ANMODE=ANINFO_BLIND_1,
179 IF (NUG >= HALF) NUG = ZEP499
180 IF (VISCMAX == ZERO) VISCMAX=EP20
182.AND.
IF(NVISC > 0 FLAG_RIGIDITY == 2)THEN
184 MU(J)= MU(J)/ GAMMAINF
193 CALL ANCMSG(MSGID=846,
202 BETA(J) = NU(J)/(ONE - TWO*NU(J))
203 BULK = BULK + TWO*MU(J)*(THIRD + BETA(J))
205 NUG = HALF*(THREE*BULK - TWO*GS)/(THREE*BULK+ GS)
207 BETA(1:NORDER) = NUG/(ONE - TWO*NUG)
208 BULK = TWO_THIRD*GS*(ONE + NUG)/MAX(EM20,(ONE - TWO*NUG))
213 IF (FLAG_VISC == 1) IVISC = 2
217 FLAG_VISC = MIN(FLAG_VISC, 2)
226 UPARAM(6 + J ) = MU(J)
227 UPARAM(6 + NORDER + J) = AL(J)
231 UPARAM(6 + NORDER*2 + J) = GAMA(J)
232 UPARAM(6 + NORDER*2 + NVISC + J) = TAUX(J)
235 NUPARAM = 6 + 2*NORDER + 2*NVISC + 1
236 UPARAM(NUPARAM) = IVISC
239 UPARAM(NUPARAM + J ) = BETA(J)
241 NUPARAM = NUPARAM + NORDER
245 PARMAT(2) = GS*(ONE + NUG)
247 PARMAT(16) = 2 ! Formulation for solid elements time step computation.
248 PARMAT(17) = GS/(BULK + TWO_THIRD*GS)
265 CALL INIT_MAT_KEYWORD(MATPARAM,"TOTAL")
267 CALL INIT_MAT_KEYWORD(MATPARAM,"INCOMPRESSIBLE")
269 CALL INIT_MAT_KEYWORD(MATPARAM,"COMPRESSIBLE")
271 CALL INIT_MAT_KEYWORD(MATPARAM,"HOOK")
272 ! Properties compatibility
273 CALL INIT_MAT_KEYWORD(MATPARAM,"SHELL_ISOTROPIC")
274 CALL INIT_MAT_KEYWORD(MATPARAM,"SOLID_ISOTROPIC")
276 WRITE(IOUT,1100) TRIM(TITR),MAT_ID,62
279 SELECT CASE (FLAG_RIGIDITY)
282 WRITE(IOUT,1010)FLAG_RIGIDITY
284 WRITE(IOUT,1020)FLAG_RIGIDITY
287 IF (IS_ENCRYPTED) THEN
288 WRITE(IOUT,'(5x,a,//)
')'confidential data
'
290 WRITE(IOUT,1200) RHO0
292 WRITE(IOUT,1300) NUG,GS*HALF,VISCMAX,NORDER
293 WRITE(IOUT,1400) (MU(J),AL(J),NU(J),J=1,NORDER)
295 WRITE(IOUT,1500) NVISC
296 IF (NVISC /= ZERO) WRITE(IOUT,1600)(GAMA(J),TAUX(J),J=1,NVISC)
297 WRITE(IOUT,1700) FLAG_VISC
304 & (5X,'material model : visco hyperelastic
',/,
305 & 5X,'-----------------------------------
',/)
308 & 5X,'material number . . . . . . . . . . . .=
',I10/,
309 & 5X,'material law. . . . . . . . . . . . . .=
',I10/)
311 & 5X,'initial density . . . . . . . . . . . .=
',1PG20.13/)
313 &(5X,'equivalent poisson ratio . . . . . . .=
',E12.4/
314 &,5X,'initial shear modulus . . . . . . . . .=
',E12.4/
315 & 5X,'maximum viscosity. . . . .. . . . . . .=
',E12.4//
316 &,5X,'order of strain energy. . . . . . . . .=
',I8)
318 & 7X,'material parameter(mu). . . . . . . . =
',E12.4/
319 & 7X,'material parameter(
alpha) . . . . . . =
',E12.4/
320 & 7X,'material parameter(nu) . . . . . . . =
',E12.4/)
322 & 5X,'order of maxwell model . . . . . . . . =
',I8 )
324 & 7X,'stiffness ratio. . . . . . . . . . .. .=
',E12.4/
325 & 7X,'relaxation time . . . . . . . . . . . =
',E12.4)
327 & 5X,'viscous stress formulation . . . . . . =
',I8 /
328 &10X,' 0 : viscous stress is deviatoric
' , /
329 &10X,' 1 : viscous stress is spherical and deviatoric
' )
331 & 5X,'long-term rigidity flag . . . . . =
',I8 /
332 & 5X,'initial elastic modulus is
the instantaneous rigidity
' , / )
334 & 5X,'long-term rigidity flag . . . . . =
',I8 /
335 & 5X,' initial elastic modulus is
the long-term rigidity.
',/
336 & 5X,' the mu
VALUE are updated
' , / )
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)