其他分享
首页 > 其他分享> > elastic.for--编法1

elastic.for--编法1

作者:互联网

      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,NSTATV,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(NSTATV),
     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(ZERO=0.D0,ONE=1.D0,TWO=2.D0)
      DOUBLE PRECISION E,NU,LAMBDA,MU
C
C ELASTIC PROPERTIES
C
      E  = PROPS(1)      ! 弹性模量
      NU = PROPS(2)      ! 泊松比

      LAMBDA = E*NU/((ONE + NU)*(ONE - TWO*NU))
      MU = E/(TWO*(ONE + NU))

C     Jacobi矩阵初始化
      DO K1=1,NTENS
        DO K2=1,NTENS
           DDSDDE(K1,K2)=ZERO
        END DO
      END DO            

      DDSDDE(1,1) = LAMBDA + TWO*MU
      DDSDDE(2,2) = LAMBDA + TWO*MU
      DDSDDE(3,3) = LAMBDA + TWO*MU
      DDSDDE(4,4) = MU
      DDSDDE(5,5) = MU
      DDSDDE(6,6) = MU
      DDSDDE(1,2) = LAMBDA
      DDSDDE(1,3) = LAMBDA
      DDSDDE(2,3) = LAMBDA
      DDSDDE(2,1) = LAMBDA
      DDSDDE(3,1) = LAMBDA
      DDSDDE(3,2) = LAMBDA

C     CALCULATE STRESS
      DO K1=1,NTENS
         DO K2=1,NTENS
            STRESS(K1) = STRESS(K1) + DDSDDE(K1,K2)*DSTRAN(K2)
         END DO
      END DO

      RETURN
      END


标签:DO,DDSDDE,elastic,--,TWO,NTENS,MU,编法,LAMBDA
来源: https://www.cnblogs.com/Nazorine/p/16459946.html