32 SUBROUTINE law104_upd(IFAILG ,NUPARAM ,NUPARF ,UPARAM ,UPARF ,
33 . NLOC_DMG,IMAT ,MLAW_TAG,IPM ,MATPARAM)
44#include "implicit_f.inc"
52 INTEGER IFAILG,NUPARAM,NUPARF,IMAT,IPM(NPROPMI,*)
53 my_real,
DIMENSION(NUPARF) ,
INTENT(IN) :: uparf
54 my_real,
DIMENSION(NUPARAM),
INTENT(INOUT) :: uparam
55 TYPE (NLOCAL_STR_) :: NLOC_DMG
57 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
63 . q1,q2,q3,epn,as,kw,f0,fc,fr,rlen,hkhi
71 ELSEIF (iloc == 1)
THEN
73 ELSEIF (iloc == 2)
THEN
75 mlaw_tag%NUVAR = mlaw_tag%NUVAR + 1
77 ipm(8,imat) = mlaw_tag%NUVAR
82 ! trigger plastic strain
for damage nucleation
92 ! initial void volume fraction
101 nloc_dmg%LEN(imat) =
max(nloc_dmg%LEN(imat), rlen)
102 CALL get_lemax(nloc_dmg%LE_MAX(imat),nloc_dmg%LEN(imat))
105 mlaw_tag%G_EPSDNL = 1
106 mlaw_tag%L_EPSDNL = 1
115 mlaw_tag%G_DMG = 1 + matparam%NMOD
116 mlaw_tag%L_DMG = 1 + matparam%NMOD
118 ALLOCATE(matparam%MODE(matparam%NMOD))
119 matparam%MODE(1) = "void growth volume fraction fg
"
120 MATPARAM%MODE(2) = "nucleation volume fraction fn
"
121 MATPARAM%MODE(3) = "shear growth volume fraction fsh
"
122 MATPARAM%MODE(4) = "total void volume fraction ft
"
123 MATPARAM%MODE(5) = "effective void volume fraction f*
"
125 ! Storage of damage parameters
subroutine law104_upd(ifailg, nuparam, nuparf, uparam, uparf, nloc_dmg, imat, mlaw_tag, ipm, matparam)
subroutine updmat(bufmat, pm, ipm, table, func_id, npc, pld, sensors, nloc_dmg, mlaw_tag, mat_param)