Hello all

I'm using two subroutines (UMAT and DSIP) for a single simulation to study the crack tip stress distribution. The DISP subroutine calculates the displacement correctly, but the point is the deformation gradient and strain increments which are being passed to UMAT are zero! So as a result, the stress and strain are zero as well. I know the deformation gradient calculation is based on the displacement field and since I do have the displacement from DISP, then deformation gradient should not be zero. But it is not the case. So I believe there is something wrong in DISP subroutine. Here is my DISP subroutine:

SUBROUTINE DISP(U,KSTEP,KINC,TIME,NODE,NOEL,JDOF,COORDS)

INCLUDE 'ABA_PARAM.INC'

DIMENSION U(3),TIME(2),COORDS(3)

REAL(8), PARAMETER :: PI = 4 * ATAN(1.0)

REAL :: X,Y,R,THETA,KIC,G,NU,T,RDOT,THETADOT,DR

!MATERIAL PROPERTIES

KIC = 119

G = 77

NU = 0.27

T = 1

!GET NODE COORDINATES

X = COORDS(1)

Y = COORDS(2)

!CONVERT THE NODE COORDINATES FORM CART TO POLAR

R = SQRT(X*X + Y*Y)

THETA = ATAN2(Y,X)

!VELOCITIES

DR = 2*R*TIME(2)/T

RDOT = 2*R/TIME(1)

THETADOT = 0.0

IF(JDOF.EQ.1) THEN

U(1)=0.25*(KIC/G)*sqrt(2.0/(R*PI))*(cos(THETA/2.0)*(2.0-2.0*NU)-COS(THETA/2.0)**3)*DR

!U(2)=0.25*(KIC/G)*sqrt(2.0/(R*PI))*(cos(THETA/2.0)*(2.0-2.0*NU)-COS(THETA/2.0)**3)*RDOT

!write(*,*) "loop-01", U(1)

ELSE IF(JDOF.EQ.2) THEN

U(1)=0.25*(KIC/G)*sqrt(2.0/(R*PI))*(sin(THETA/2.0)*(2.0-2.0*NU)-sin(THETA/2.0)*COS(THETA/2.0)**2)*DR

!U(2)=0.25*(KIC/G)*sqrt(2.0/(R*PI))*(sin(THETA/2.0)*(2.0-2.0*NU)-sin(THETA/2.0)*COS(THETA/2.0)**2)*RDOT

!write(*,*) "loop-02", U(1)

END IF

RETURN

END

Can anyone understands what is the problem with the subroutine or I'm missing something else in my simulation?

Best of all,

Sajjad

More Sajjad Izadpanah's questions See All
Similar questions and discussions