首先是始点刚度法:

  1       SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
  2      1 RPL,DDSDDT,DRPLDE,DRPLDT,
  3      2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
  4      3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
  5      4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
  6 C
  7       INCLUDE 'ABA_PARAM.INC'
  8 C    始点刚度法
  9       CHARACTER*80 CMNAME
 10       DIMENSION STRESS(NTENS),STATEV(NSTATV),
 11      1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
 12      2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
 13      3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),
 14      4 JSTEP(4)
 15     DIMENSION PS(3),DSTRESS(NTENS)
 16     PARAMETER (ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,SIX=6.0D0)
 17 
 18       EK=PROPS(1)
 19     EN=PROPS(2)
 20     RF=PROPS(3)
 21     C=PROPS(4)
 22     FAI=PROPS(5)/180.0*3.1415926
 23     UG=PROPS(6)
 24     UD=PROPS(7)
 25     UF=PROPS(8)
 26     EKUR=PROPS(9)
 27     PA=PROPS(10)
 28     DFAI=PROPS(11)/180.0*3.1415926
 29     S1S3O=STATEV(1)
 30     S3O=STATEV(2)
 31     SSS=STATEV(3)
 32     CALL GETPS(STRESS,PS,NTENS)
 33    
 34     FAI=FAI-DFAI*LOG10(S3O/PA)
 35     CALL GETEMOD(PS,EK,EN,RF,C,FAI,ENU,PA,EKUR,EMOD,S,S3O,UG,UD,UF
 36      1    ,SSS,S1S3O)
 37     EBULK3=EMOD/(ONE-TWO*ENU)
 38       EG2=EMOD/(ONE+ENU)
 39       EG=EG2/TWO
 40       EG3=THREE*EG
 41       ELAM=(EBULK3-EG2)/THREE
 42     CALL GETDDSDDE(DDSDDE,NTENS,NDI,ELAM,EG2,EG)
 43     DSTRESS=0.0
 44     CALL GETSTRESS(DDSDDE,DSTRESS,DSTRAN,NTENS)
 45       
 46     DO 701 I1=1,NTENS
 47     STRESS(I1)=STRESS(I1)+DSTRESS(I1)
 48 701    CONTINUE
 49     CALL GETPS(STRESS,PS,NTENS)
 50     CALL GETEMOD(PS,EK,EN,RF,C,FAI,ENU,PA,EKUR,EMOD,S,S3O,UG,UD,UF,
 51      1    SSS,S1S3O)
 52     EBULK3=EMOD/(ONE-TWO*ENU)
 53       EG2=EMOD/(ONE+ENU)
 54       EG=EG2/TWO
 55       EG3=THREE*EG
 56       ELAM=(EBULK3-EG2)/THREE
 57     CALL GETDDSDDE(DDSDDE,NTENS,NDI,ELAM,EG2,EG)
 58     IF(PS(3).GT.S3O)S3O=PS(3)
 59      IF((PS(1)-PS(3)).GT.S1S3O)S1S3O=PS(1)-PS(3)
 60     IF(S.GT.SSS)SSS=S
 61     STATEV(1)=S1S3O
 62     STATEV(2)=S3O
 63     STATEV(3)=SSS
 64      END
 65         
 66     SUBROUTINE GETPS(STRESS,PS,NTENS)
 67     INCLUDE 'ABA_PARAM.INC'
 68     DIMENSION PS(3),STRESS(NTENS)
 69     CALL SPRINC(STRESS,PS,1,3,3)
 70     DO 310 I=1,2
 71     DO 320 J=I+1,3
 72     IF(PS(I).GT.PS(J))THEN
 73     PPS=PS(I)
 74     PS(I)=PS(J)
 75     PS(J)=PPS
 76     END IF
 77 320    CONTINUE
 78 310    CONTINUE
 79     DO 330 K1=1,3
 80     PS(K1)=-PS(K1)
 81 330    CONTINUE
 82     RETURN
 83     END 
 84 
 85     SUBROUTINE GETEMOD(PS,EK,EN,RF,C,FAI,ENU,PA,EKUR,EMOD,S,S3O
 86      1    ,UG,UD,UF,SSS,S1S3O)
 87     INCLUDE 'ABA_PARAM.INC'
 88     DIMENSION PS(3)
 89       S=(1-SIN(FAI))*(PS(1)-PS(3))
 90       IF(PS(3).LT.(-C/TAN(FAI))) THEN
 91           S=0.99
 92       ELSE
 93           
 94           S=S/(2*C*COS(FAI)+2*PS(3)*SIN(FAI))
 95           IF(S.GE.0.99)then
 96               S=0.99
 97             end if
 98           END IF
 99       EMOD=EK*PA*((S3O/PA)**EN)*((1-RF*S)**2)
100       
101       AA=UD*(PS(1)-PS(3))
102     AA=AA/(EK*PA*((S3O/PA)**EN))
103     AA=AA/(1-RF*S)
104     ENU=UG-UF*LOG10(S3O/PA)
105     ENU=ENU/(1-AA)/(1-AA)
106     IF(ENU.GT.0.49)ENU=0.49
107       IF(ENU.LT.0.05)ENU=0.05
108     IF(S.LT.SSS.AND.(PS(1)-PS(3)).LT.S1S3O)THEN
109     EMOD=EKUR*PA*((S3O/PA)**EN)
110       END IF
111     END 
112 
113 
114     SUBROUTINE GETDDSDDE(DDSDDE,NTENS,NDI,ELAM,EG2,EG)
115     INCLUDE 'ABA_PARAM.INC'
116     DIMENSION DDSDDE(NTENS,NTENS)
117     DO 20 K1=1,NTENS
118         DO 10 K2=1,NTENS
119            DDSDDE(K2,K1)=0.0
120  10     CONTINUE
121  20   CONTINUE
122       DO 40 K1=1,NDI
123         DO 30 K2=1,NDI
124            DDSDDE(K2,K1)=ELAM
125  30     CONTINUE
126         DDSDDE(K1,K1)=EG2+ELAM
127  40   CONTINUE
128       DO 50 K1=NDI+1,NTENS
129         DDSDDE(K1,K1)=EG
130  50   CONTINUE
131     RETURN
132     END
133 
134     SUBROUTINE GETSTRESS(DDSDDE,STRESS,DSTRAN,NTENS)
135     INCLUDE 'ABA_PARAM.INC'
136     DIMENSION DDSDDE(NTENS,NTENS),STRESS(NTENS),DSTRAN(NTENS)
137     DO 70 K1=1,NTENS
138         DO 60 K2=1,NTENS
139            STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1)
140  60     CONTINUE
141  70   CONTINUE
142     RETURN
143     END
abaqus邓肯张umat始点刚度法

相关文章:

  • 2021-05-19
  • 2021-06-16
  • 2021-07-09
  • 2021-11-06
  • 2021-08-14
  • 2022-01-08
  • 2021-08-01
  • 2021-08-28
猜你喜欢
  • 2021-12-19
  • 2022-12-23
  • 2022-12-23
  • 2021-04-24
  • 2021-12-08
  • 2021-11-13
  • 2022-01-05
相关资源
相似解决方案