ami143
Civil/Environmental
- Nov 9, 2016
- 8
Dear All,
I have implemented a damage model into user subroutine VUMAT, but I don't know how to define the tickness strain in the case of plane stress. Can anyone help me int this regard ?
Thanks
subroutine vumat(
1 nblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,
2 stepTime, totalTime, dt, cmname, coordMp, charLength,
3 props, density, strainInc, relSpinInc,
4 tempOld, stretchOld, defgradOld, fieldOld,
3 stressOld, stateOld, enerInternOld, enerInelasOld,
6 tempNew, stretchNew, defgradNew, fieldNew,
5 stressNew, stateNew, enerInternNew, enerInelasNew )
include 'vaba_param.inc'
C integer ndir, nshr, nstatev, nfieldv, nprops, lanneal
C real stepTime, totalTime, dt
C
dimension props(nprops), density(nblock),
1 coordMp(nblock,*),
2 charLength(*), strainInc(nblock,ndir+nshr),
3 relSpinInc(*), tempOld(*),C(ndir+nshr,ndir+nshr),
4 stretchOld(*), defgradOld(*),epsO(nblock,ndir+nshr),
5 fieldOld(*), stressOld(nblock,ndir+nshr),eigVal(nblock,3),
6 stateOld(nblock,nstatev), enerInternOld(nblock),
7 enerInelasOld(nblock), tempNew(*), ,
8 stretchNew(*), defgradNew(*), fieldNew(*),
9 stressNew(nblock,ndir+nshr), stateNew(nblock,nstatev),
1 enerInternNew(nblock), enerInelasNew(nblock),
2 epsN(nblock,ndir+nshr), stressinc(nblock,ndir+nshr)
character*80 cmname
*USER SUBROUTINE
PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,
+ SIX=6.D0)
C
C
E=props(1)
xnu=props(2)
C
A=ONE
C ----- plane stress
DDSDE(1,1)=E/(ONE-xnu*xnu)
DDSDE(1,2)=(E*xnu)/(ONE-xnu*xnu)
DDSDE(1,3)=ZERO
DDSDE(2,1)=(E*xnu)/(ONE-xnu*xnu)
DDSDE(2,2)=E/(ONE-xnu*xnu)
DDSDE(2,3)=ZERO
DDSDE(3,1)=ZERO
DDSDE(3,2)=ZERO
DDSDE(3,3)=(E/(ONE-xnu*xnu))*(ONE-xnu)
do i = 1, nblock
C ---- definition of the tickness strain
.
.
C--- main code
.
.
.
enddo
return
end
I have implemented a damage model into user subroutine VUMAT, but I don't know how to define the tickness strain in the case of plane stress. Can anyone help me int this regard ?
Thanks
subroutine vumat(
1 nblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,
2 stepTime, totalTime, dt, cmname, coordMp, charLength,
3 props, density, strainInc, relSpinInc,
4 tempOld, stretchOld, defgradOld, fieldOld,
3 stressOld, stateOld, enerInternOld, enerInelasOld,
6 tempNew, stretchNew, defgradNew, fieldNew,
5 stressNew, stateNew, enerInternNew, enerInelasNew )
include 'vaba_param.inc'
C integer ndir, nshr, nstatev, nfieldv, nprops, lanneal
C real stepTime, totalTime, dt
C
dimension props(nprops), density(nblock),
1 coordMp(nblock,*),
2 charLength(*), strainInc(nblock,ndir+nshr),
3 relSpinInc(*), tempOld(*),C(ndir+nshr,ndir+nshr),
4 stretchOld(*), defgradOld(*),epsO(nblock,ndir+nshr),
5 fieldOld(*), stressOld(nblock,ndir+nshr),eigVal(nblock,3),
6 stateOld(nblock,nstatev), enerInternOld(nblock),
7 enerInelasOld(nblock), tempNew(*), ,
8 stretchNew(*), defgradNew(*), fieldNew(*),
9 stressNew(nblock,ndir+nshr), stateNew(nblock,nstatev),
1 enerInternNew(nblock), enerInelasNew(nblock),
2 epsN(nblock,ndir+nshr), stressinc(nblock,ndir+nshr)
character*80 cmname
*USER SUBROUTINE
PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,
+ SIX=6.D0)
C
C
E=props(1)
xnu=props(2)
C
A=ONE
C ----- plane stress
DDSDE(1,1)=E/(ONE-xnu*xnu)
DDSDE(1,2)=(E*xnu)/(ONE-xnu*xnu)
DDSDE(1,3)=ZERO
DDSDE(2,1)=(E*xnu)/(ONE-xnu*xnu)
DDSDE(2,2)=E/(ONE-xnu*xnu)
DDSDE(2,3)=ZERO
DDSDE(3,1)=ZERO
DDSDE(3,2)=ZERO
DDSDE(3,3)=(E/(ONE-xnu*xnu))*(ONE-xnu)
do i = 1, nblock
C ---- definition of the tickness strain
.
.
C--- main code
.
.
.
enddo
return
end