MMalek
Mechanical
- Dec 19, 2018
- 1
Hi all,
I want to change density through thickness for a FGM plate, but don't know how! Here is the umat I'm using, it already has necessary parts to change elastic modulus, but don't know how to change density within umat. Any help would be appreciated!
*USER SUBROUTINES
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
3 NDI,NSHR,NTENS,NSTATEV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATEV),
1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)
C
PARAMETER (ONE=1.0D0, TWO=2.0D0)
C Determine material properties based on global coordinates of gauss points.
C COORDS(1) is X-coordinates of gauss points.
C COORDS(2) is Y-coordinates of gauss points.
C COORDS(3) is Z-coordinates of gauss points.
C PROPS is defined by users.
C The function can be also defined by users.
C
C------------- CHNGE -------------------------------------------------------------------------------C
C---------------------------------------------------------------------------------------------------C
C coefficient AAA is the ratio of young moduli of two sides of the plate
E=PROPS(1)*EXP(AAA*COORDS(1))
V=PROPS(2)
C---------------------------------------------------------------------------------------------------C
C---------------------------------------------------------------------------------------------------C
C
C Determine Lame's constantes
C amu is mu
C alambeda is lambda
AMU=E/2.0d0/(1.0d0+V)
ALAMBDA=E*V/(1.0d0+V)/(1.0d0-2*V)
C
C
C Determine the tangant or Jacobian matrix
C
C NDI is number of normal stresses
C NSHR is number of shear stresses
C NTENS is dimension of constitutive matrix
C
C
DO I=1,NDI
DO J=1,NDI
if (I.eq.J) then
ddsdde(I,I)=ALAMBDA+2*AMU
else
ddsdde(I,J)=ALAMBDA
endif
ENDDO
ENDDO
DO I=NDI+1,NTENS
ddsdde(I,I)=AMU
ENDDO
C
C Determine the stress and update the stress
C
DO I=1,NTENS
DO J=1,NTENS
STRESS(I)=STRESS(I)+ddsdde(I,J)*DSTRAN(J)
ENDDO
ENDDO
C
RETURN
END
I want to change density through thickness for a FGM plate, but don't know how! Here is the umat I'm using, it already has necessary parts to change elastic modulus, but don't know how to change density within umat. Any help would be appreciated!
*USER SUBROUTINES
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
3 NDI,NSHR,NTENS,NSTATEV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATEV),
1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)
C
PARAMETER (ONE=1.0D0, TWO=2.0D0)
C Determine material properties based on global coordinates of gauss points.
C COORDS(1) is X-coordinates of gauss points.
C COORDS(2) is Y-coordinates of gauss points.
C COORDS(3) is Z-coordinates of gauss points.
C PROPS is defined by users.
C The function can be also defined by users.
C
C------------- CHNGE -------------------------------------------------------------------------------C
C---------------------------------------------------------------------------------------------------C
C coefficient AAA is the ratio of young moduli of two sides of the plate
E=PROPS(1)*EXP(AAA*COORDS(1))
V=PROPS(2)
C---------------------------------------------------------------------------------------------------C
C---------------------------------------------------------------------------------------------------C
C
C Determine Lame's constantes
C amu is mu
C alambeda is lambda
AMU=E/2.0d0/(1.0d0+V)
ALAMBDA=E*V/(1.0d0+V)/(1.0d0-2*V)
C
C
C Determine the tangant or Jacobian matrix
C
C NDI is number of normal stresses
C NSHR is number of shear stresses
C NTENS is dimension of constitutive matrix
C
C
DO I=1,NDI
DO J=1,NDI
if (I.eq.J) then
ddsdde(I,I)=ALAMBDA+2*AMU
else
ddsdde(I,J)=ALAMBDA
endif
ENDDO
ENDDO
DO I=NDI+1,NTENS
ddsdde(I,I)=AMU
ENDDO
C
C Determine the stress and update the stress
C
DO I=1,NTENS
DO J=1,NTENS
STRESS(I)=STRESS(I)+ddsdde(I,J)*DSTRAN(J)
ENDDO
ENDDO
C
RETURN
END