shripadtokekar
2007-10-03, 06:31
Hi to all
i have some questions I am doing quasi-static simulation of lateral crushing of composite tubes in ABAQUS/Explicit. I am using VUMAT for failure criteria coding. after satisfying the failure criteria i am making the state variable equal to zero. My question is whether i am doing correct. and what values i should assign for state variable initially?? or making state variable zero will delete the element irrespective of whatever valure it contains before??
I am here putting my VUMAT code so please suggest me correction. thank you
subroutine failure (nblock, stateold, dmgfibreT, dmgfibreC, dmgMatrix, stress,statenew)
include 'vaba_param.inc'
parameter(zero=0.do, one=1.do, half=0.5do)
parameter i_xx=1
i_yy=2
i_xy=4
n_s33=4
dimension statenew(nblock,1),dmgfibreT(nblock), dmgfibreC(nblock), dmgMatrix(nblock), stress(nblock, n_s33)
c ft1,f2t-tensile strength in 1 &2 direction, f1c,f2c-compressive strength in 1 & 2 direction, f12-shearstrength
f1t=
f2t=
f1c=
f2c=
f12=
character*80 cmname
do K=1, nblock
S11=stress(K, i_xx)
S22=stress(K, i_yy)
S12=stress(K, i_xy)
c Chang-Chang Failure criteria.
c Evaluate fibre modes
if(S11.gt.zero) then
c Tensile fibre mode
rft=(S11*f1t)+(S12*f12)
if(rft.ge.one)then
statenew(K,1)=zero*stateold(K,1)
dmgfibreT(K)=one
else statenew(k,1)=stateold(k,1)
end if
c Compressive fibre mode
rfc=(abs(S11)*f1c)**2
if(rfc.ge.one)then
statenew(K,1)=zero*stateold(K,1)
dmgfibreC(K)=one
else statenew(k,1)=stateold(k,1)
end if
end if
c Evaluate Matrix failure mode
if(S22.gt.zero)then
rmt=(S22*f2t*f2c)+(S12*f12)**2+(f2c-f2t)*S22*f2C*f2t
statenew(K,1)=zero*stateold(K,1)
else statenew(k,1)=stateold(k,1)
endif
enddo
return
end
i have some questions I am doing quasi-static simulation of lateral crushing of composite tubes in ABAQUS/Explicit. I am using VUMAT for failure criteria coding. after satisfying the failure criteria i am making the state variable equal to zero. My question is whether i am doing correct. and what values i should assign for state variable initially?? or making state variable zero will delete the element irrespective of whatever valure it contains before??
I am here putting my VUMAT code so please suggest me correction. thank you
subroutine failure (nblock, stateold, dmgfibreT, dmgfibreC, dmgMatrix, stress,statenew)
include 'vaba_param.inc'
parameter(zero=0.do, one=1.do, half=0.5do)
parameter i_xx=1
i_yy=2
i_xy=4
n_s33=4
dimension statenew(nblock,1),dmgfibreT(nblock), dmgfibreC(nblock), dmgMatrix(nblock), stress(nblock, n_s33)
c ft1,f2t-tensile strength in 1 &2 direction, f1c,f2c-compressive strength in 1 & 2 direction, f12-shearstrength
f1t=
f2t=
f1c=
f2c=
f12=
character*80 cmname
do K=1, nblock
S11=stress(K, i_xx)
S22=stress(K, i_yy)
S12=stress(K, i_xy)
c Chang-Chang Failure criteria.
c Evaluate fibre modes
if(S11.gt.zero) then
c Tensile fibre mode
rft=(S11*f1t)+(S12*f12)
if(rft.ge.one)then
statenew(K,1)=zero*stateold(K,1)
dmgfibreT(K)=one
else statenew(k,1)=stateold(k,1)
end if
c Compressive fibre mode
rfc=(abs(S11)*f1c)**2
if(rfc.ge.one)then
statenew(K,1)=zero*stateold(K,1)
dmgfibreC(K)=one
else statenew(k,1)=stateold(k,1)
end if
end if
c Evaluate Matrix failure mode
if(S22.gt.zero)then
rmt=(S22*f2t*f2c)+(S12*f12)**2+(f2c-f2t)*S22*f2C*f2t
statenew(K,1)=zero*stateold(K,1)
else statenew(k,1)=stateold(k,1)
endif
enddo
return
end