找回密码
 注册
Simdroid-非首页
查看: 285|回复: 2

[子程序] RVE预测力学性能

[复制链接]
发表于 2023-9-6 16:38:19 | 显示全部楼层 |阅读模式 来自 重庆
目前我所遇到的问题是,发生损伤后,应力依然不减!希望大佬能帮忙看看
  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. C     DDSDDE-雅可比矩阵 SSE-弹性应变能 SPD-塑性耗能  SCD-蠕变耗能
  16. C     必须定义,应力stress;状态变量statev;雅可比矩阵DDSDDE
  17.       if (CMNAME .EQ. 'FIBER') THEN
  18.           CALL UMAT_FIBER(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
  19.      1 RPL,DDSDDT,DRPLDE,DRPLDT,
  20.      2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
  21.      3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
  22.      4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
  23.       else if (CMNAME .EQ. 'MATRIX') THEN
  24.           CALL UMAT_MATRIX(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
  25.      1 RPL,DDSDDT,DRPLDE,DRPLDT,
  26.      2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
  27.      3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
  28.      4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
  29.       end if
  30.       RETURN
  31.       END
  32. C    **********************************************************
  33. C    *subroutines are divided                                 *
  34. C    **********************************************************
  35.       SUBROUTINE UMAT_FIBER(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
  36.      1 RPL,DDSDDT,DRPLDE,DRPLDT,
  37.      2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
  38.      3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
  39.      4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
  40. C
  41.       INCLUDE 'ABA_PARAM.INC'
  42. C
  43.       CHARACTER*80 CMNAME
  44.       DIMENSION STRESS(NTENS),STATEV(NSTATV),
  45.      1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
  46.      2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
  47.      3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),
  48.      4 JSTEP(4)
  49. C     read matrial porperty
  50.       parameter(zero = 0.d0, one = 1.d0, two = 2.d0)
  51.       DIMENSION STRANT(6)
  52.       E1 = PROPS(1)
  53.       E2 = PROPS(2)
  54.       E3 = PROPS(3)
  55.       G12 = PROPS(4)
  56.       G13 = PROPS(5)
  57.       G23 = PROPS(6)
  58.       NU12 = PROPS(7)
  59.       NU13 = PROPS(8)
  60.       NU23 = PROPS(9)
  61.       Xt = PROPS(10)
  62.       Xc = PROPS(11)
  63.       G_IC_f = PROPS(12)
  64.       S  = PROPS(13)
  65.       ft = STATEV(1)
  66.       fc = STATEV(2)
  67.       fs1t = STATEV(3)
  68.       fs2t = STATEV(4)
  69.       fs3t = STATEV(5)
  70.       DF = STATEV(6)
  71. C     update DDSDDE
  72.       NU21 = NU12
  73.       NU32 = NU23
  74.       NU31 = NU13
  75. C      DE1 = (one - DF)*E1
  76. C      DE2 = (one - DF)*E2
  77. C      DE3 = (one - DF)*E3
  78. C      DG12 = (one-DF)*G12
  79. C      DG13 = (one-DF)*G13
  80. C      DG23 = (one-DF)*G23
  81. C      DNU12 = (one-DF)*NU12
  82. C      DNU13 = (one-DF)*NU13
  83. C      DNU23 = (one-DF)*NU23
  84. C      DNU21 = DNU12
  85. C      DNU31 = DNU13
  86. C      DNU32 = DNU23
  87.       gg = one / (one - NU12*NU21 - NU23*NU32 - NU31*NU13
  88.      *           - two*NU21*NU32*NU13)
  89.       C11 = E1 * ( one - NU23*NU32 ) * gg
  90.       C22 = E2 * ( one - NU13*NU31 ) * gg
  91.       C33 = E3 * ( one - NU12*NU21 ) * gg
  92.       C12 = E1 * ( NU21 + NU31*NU23 ) * gg
  93.       C13 = E1 * ( NU31 + NU21*NU32 ) * gg
  94.       C23 = E2 * ( NU32 + NU12*NU31 ) * gg
  95.       C21 = E1 * ( NU21 + NU31*NU23 ) * gg
  96.       C31 = E1 * ( NU31 + NU21*NU32 ) * gg
  97.       C32 = E2 * ( NU32 + NU12*NU31 ) * gg
  98.       C44 = G12
  99.       C55 = G13
  100.       C66 = G23
  101.       do i = 1, NTENS
  102.           do j = 1, NTENS
  103.               DDSDDE(i,j)= 0
  104.           end do
  105.       end do
  106.       DDSDDE(1,1) = (1-DF)*C11
  107.       DDSDDE(2,2) = (1-DF)*C22
  108.       DDSDDE(3,3) = (1-DF)*C33
  109.       DDSDDE(4,4) = (1-DFS1)*C44
  110.       DDSDDE(5,5) = (1-DFS2)*C55
  111.       DDSDDE(6,6) = (1-DFS3)*C66
  112.       DDSDDE(1,2) = (1-DF)*C12
  113.       DDSDDE(2,1) = (1-DF)*C21
  114.       DDSDDE(1,3) = (1-DF)*C13
  115.       DDSDDE(3,1) = (1-DF)*C31
  116.       DDSDDE(2,3) = (1-DF)*C23
  117.       DDSDDE(3,2) = (1-DF)*C32
  118.       do i=1,NTENS
  119.           STRANT(i) = STRAN(i) + DSTRAN(i)
  120.       end do
  121.       do i = 1, NTENS
  122.           do j = 1, NTENS
  123.               STRESS(i)=STRESS(i)+DDSDDE(i,j)*DSTRAN(j)
  124.           end do
  125.       end do
  126.       if (STRESS(1) .GE. zero) then
  127.           X1 = Xt
  128.           ft = STRESS(1)/X1
  129.           if (ft .gt. one) then
  130.           equivalent_strain_ft0 = Xt/E1
  131.           equivalent_strain_ft1 = (two* G_IC_f)/(Xt*celent)
  132.           D1 = (equivalent_strain_ft1*(STRANT(1)-
  133.      *              equivalent_strain_ft0))/
  134.      *             (STRANT(1)*(equivalent_strain_ft1-
  135.      *              equivalent_strain_ft0))
  136.           else
  137.           D1 = zero
  138.       end if
  139.       else
  140.           X2 = -1*Xc
  141.           fc = STRESS(1)/X2
  142.           if (fc .gt. one) then
  143. C take care of +-
  144.           equivalent_strain_fc0 = -one*STRESS(1)/E1
  145.           equivalent_strain_fc1 = two* G_IC_f/(Xc*celent)
  146.          D2 = (equivalent_strain_fc1*(STRANT(1)-
  147.      *           equivalent_strain_fc0))/
  148.      *              (STRANT(1)*(equivalent_strain_fc1-
  149.      *            equivalent_strain_fc0))
  150.       else
  151.           D2 = zero
  152.       end if
  153.       end if
  154.       DF = one-(one-D1)*(one-D2)
  155.       if(STRESS(4) .GT. zero) then
  156.           fs1t = STRESS(4)/S
  157.           if (fs1t .GE. one) then
  158.                equivalent_strain_ft0 = Xt/E1
  159.           equivalent_strain_ft1 = two* G_IC_f/(Xt*celent)
  160.           DS1 = (equivalent_strain_ft1*(STRANT(1)-
  161.      *              equivalent_strain_ft0))/
  162.      *             (STRANT(1)*(equivalent_strain_ft1-
  163.      *              equivalent_strain_ft0))
  164.           else
  165.           DS1 = zero
  166.           end if
  167.       else
  168.           S = -one*S
  169.           fs1c = STRESS(4)/S
  170.           if (fs1c .gt. one) then
  171.           equivalent_strain_fc0 = STRESS(1)/E1
  172.           equivalent_strain_fc1 = two* G_IC_f/(Xc*celent)
  173.          DS2 = (equivalent_strain_fc1*(STRANT(1)-
  174.      *           equivalent_strain_fc0))/
  175.      *              (STRANT(1)*(equivalent_strain_fc1-
  176.      *            equivalent_strain_fc0))
  177.       else
  178.           DS2 = zero
  179.       end if
  180.       end if
  181.       DFS1 = one-(one-DS1)*(one-DS2)
  182.        if(STRESS(5) .GT. zero) then
  183.           fs2t = STRESS(5)/S
  184.           if (fs2t .GT. one) then
  185.                equivalent_strain_ft0 = Xt/E1
  186.           equivalent_strain_ft1 = two* G_IC_f/(Xt*celent)
  187.           DS3 = (equivalent_strain_ft1*(STRANT(1)-
  188.      *              equivalent_strain_ft0))/
  189.      *             (STRANT(1)*(equivalent_strain_ft1-
  190.      *              equivalent_strain_ft0))
  191.           else
  192.           DS3 = zero
  193.           end if
  194.       else
  195.           S = -one*S
  196.           fs2c = STRESS(4)/S
  197.           if (fs2c .gt. one) then
  198.           equivalent_strain_fc0 = STRESS(1)/E1
  199.           equivalent_strain_fc1 = two* G_IC_f/(Xc*celent)
  200.          DS4 = (equivalent_strain_fc1*(STRANT(1)-
  201.      *           equivalent_strain_fc0))/
  202.      *              (STRANT(1)*(equivalent_strain_fc1-
  203.      *            equivalent_strain_fc0))
  204.       else
  205.           DS4 = zero
  206.       end if
  207.       end if
  208.       DFS2 = one-(one-DS3)*(one-DS4)
  209.       if(STRESS(6) .GT. zero) then
  210.           fs3t = STRESS(6)/S
  211.           if (fs3t .GT. one) then
  212.                equivalent_strain_ft0 = Xt/E1
  213.           equivalent_strain_ft1 = two* G_IC_f/(Xt*celent)
  214.           DS5 = (equivalent_strain_ft1*(STRANT(1)-
  215.      *              equivalent_strain_ft0))/
  216.      *             (STRANT(1)*(equivalent_strain_ft1-
  217.      *              equivalent_strain_ft0))
  218.           else
  219.           DS5 = zero
  220.           end if
  221.       else
  222.           S = -one*S
  223.           fs3c = STRESS(6)/S
  224.           if (fs3c .gt. one) then
  225.           equivalent_strain_fc0 = S11/E1
  226.           equivalent_strain_fc1 = two* G_IC_f/(Xc*celent)
  227.          DS6 = (equivalent_strain_fc1*(STRANT(1)-
  228.      *           equivalent_strain_fc0))/
  229.      *              (STRANT(1)*(equivalent_strain_fc1-
  230.      *            equivalent_strain_fc0))
  231.       else
  232.           DS6 = zero
  233.       end if
  234.       end if
  235.       DFS3 = one-(one-DS5)*(one-DS6)
  236.       do i = 1, NTENS
  237.           do j = 1, NTENS
  238.               DDSDDE(i,j)= 0
  239.           end do
  240.       end do
  241.       if (DF .ge. zero) then
  242.           DF = max(DF,STATEV(6))
  243.       END IF
  244.       DDSDDE(1,1) = (1-DF)*C11
  245.       DDSDDE(2,2) = (1-DF)*C22
  246.       DDSDDE(3,3) = (1-DF)*C33
  247.       DDSDDE(4,4) = (1-DFS1)*C44
  248.       DDSDDE(5,5) = (1-DFS2)*C55
  249.       DDSDDE(6,6) = (1-DFS3)*C66
  250.       DDSDDE(1,2) = (1-DF)*C12
  251.       DDSDDE(2,1) = (1-DF)*C21
  252.       DDSDDE(1,3) = (1-DF)*C13
  253.       DDSDDE(3,1) = (1-DF)*C31
  254.       DDSDDE(2,3) = (1-DF)*C23
  255.       DDSDDE(3,2) = (1-DF)*C32
  256.       do i = 1, NTENS
  257.           do j = 1, NTENS
  258.               STRESS(i)=STRESS(i)+DDSDDE(i,j)*DSTRAN(j)
  259.           end do
  260.       end do
  261.       STATEV(1) = ft
  262.       STATEV(2) = fc
  263.       STATEV(3) = fs1t
  264.       STATEV(4) = fs2t
  265.       STATEV(5) = fs3t
  266.       STATEV(6) = DF
  267.       RETURN
  268.       END
  269. C     *************************************
  270. C     *************************************
  271.       SUBROUTINE UMAT_MATRIX(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
  272.      1 RPL,DDSDDT,DRPLDE,DRPLDT,
  273.      2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
  274.      3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
  275.      4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
  276. C
  277.       INCLUDE 'ABA_PARAM.INC'
  278. C
  279.       CHARACTER*80 CMNAME
  280.       DIMENSION STRESS(NTENS),STATEV(NSTATV),
  281.      1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
  282.      2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
  283.      3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),
  284.      4 JSTEP(4)
  285.       parameter(zero = 0.d0, one = 1.d0, two = 2.d0, half = 0.5d0,
  286.      *           three = 3.d0)
  287.       DIMENSION STRANT(6)
  288.       Em = PROPS(1)
  289.       Gm = PROPS(2)
  290.       NUm = PROPS(3)
  291.       Xmt = PROPS(4)
  292.       Xmc = PROPS(5)
  293.       Gms = PROPS(6)
  294.       G_IC_m = PROPS(7)
  295.       amt = STATEV(5)
  296.       amc = STATEV(6)
  297.       Dmt = STATEV(7)
  298.       Dmc = STATEV(8)
  299.       ADM = STATEV(9)
  300. c      DEm = (one-ADM)*Em
  301. C      DGm = (one-ADM)*Gm
  302. C      DNUm = (one-ADM)*NUm
  303. C     computer stiffiness matrix
  304.       EG=Em/(two*(one + NUm))
  305.       ELAM=(NUm*Em)/((one + NUm)*(one - two*NUm))
  306.       AC11 = TWO*EG+ELAM
  307.       AC22 = TWO*EG+ELAM
  308.       AC33 = TWO*EG+ELAM
  309.       AC44 = Gm/two
  310.       AC55 = Gm/two
  311.       AC66 = Gm/two
  312.       AC12 = ELAM
  313.       AC13 = ELAM
  314.       AC21 = ELAM
  315.       AC23 = ELAM
  316.       AC31 = ELAM
  317.       AC32 = ELAM
  318. C     ***************************
  319. C     reset DDSDDE
  320.       do i = 1, NTENS
  321.           do j = 1, NTENS
  322.               DDSDDE(i,j)= 0
  323.           end do
  324.       end do
  325.       DDSDDE(1,1) = (one - ADM)*AC11
  326.       DDSDDE(2,2) = (one - ADM)*AC22
  327.       DDSDDE(3,3) = (one - ADM)*AC33
  328.       DDSDDE(4,4) = (one - ADM)*AC44
  329.       DDSDDE(5,5) = (one - ADM)*AC55
  330.       DDSDDE(6,6) = (one - ADM)*AC66
  331.       DDSDDE(1,2) = (one - ADM)*AC12
  332.       DDSDDE(2,1) = (one - ADM)*AC21
  333.       DDSDDE(1,3) = (one - ADM)*AC13
  334.       DDSDDE(3,1) = (one - ADM)*AC31
  335.       DDSDDE(2,3) = (one - ADM)*AC23
  336.       DDSDDE(3,2) = (one - ADM)*AC32
  337. C     update strain
  338.       do i=1,NTENS
  339.           STRANT(i) = STRAN(i) + DSTRAN(i)
  340.       end do
  341. C     update stress
  342.       do i = 1, NTENS
  343.           do j = 1, NTENS
  344.               STRESS(i)=STRESS(i)+DDSDDE(i,j)*DSTRAN(j)
  345.           end do
  346.       end do
  347. C     caculate parametry in matrix damage
  348.       if (STRESS(1) .ge. 0) then
  349.          if (STRESS(2) .le. 0) then
  350.           a = 0
  351.          else
  352.           a = STRESS(2)
  353.          end if
  354.          if (STRANT(2) .le. 0) then
  355.           b = 0
  356.          else
  357.           b = STRANT(2)
  358.          end if
  359.       else
  360.          if ((-STRESS(2)) .le. 0) then
  361.           c = 0
  362.          else
  363.           c = -STRESS(2)
  364.          end if
  365.          if ((-STRANT(2)) .le. 0) then
  366.           d = 0
  367.          else
  368.           d = -STRANT(2)
  369.          end if
  370.       end if
  371. C     **************************
  372.       if (STRESS(1) .GE. zero) then
  373.           AX1 = Xmt
  374.       else
  375.           AX1 = -Xmt
  376.       end if
  377.       if (STRESS(3) .LT. zero) then
  378.           AX2 = -one*Xmc
  379.       else
  380.           AX2 = Xmc
  381.       end if
  382.       amt = STRESS(1)/AX1
  383.       amc = STRESS(3)/Xmc
  384.       if (amt .ge. one) then
  385.           equivalent_stress_mt = (celent*(a*b)+STRESS(4)*STRANT(4)+
  386.      *                       STRESS(6)*STRANT(6))/
  387.      *                       (celent*((b**two+STRANT(4)**two+
  388.      *                              STRANT(6)**two)**half))
  389.           equivalent_strain_mt1 = (two*G_IC_m*(amt**half))/
  390.      *                             equivalent_stress_mt
  391.           equivalent_strain_mt = celent*((b**two+STRANT(4)**two+
  392.      *                              STRANT(6)**two)**half)
  393.           equivalent_strain_mt0 = equivalent_strain_mt/(amt**half)
  394.           Dmt = (equivalent_strain_mt1*(equivalent_strain_mt-
  395.      *           equivalent_strain_mt0))/
  396.      *              (equivalent_strain_mt*(equivalent_strain_mt1-
  397.      *           equivalent_strain_mt0))
  398.       else
  399.           Dmt = zero
  400.       end if
  401. c      write(*,*) 'Dmt=',Dmt
  402. c      write(*,*) 'mt1=',equivalent_strain_mt1
  403. c      write(*,*) 'mt=',equivalent_strain_mt
  404. c      write(*,*) 'mt0=',equivalent_strain_mt0
  405. c      write(*,*) 'fenmu=',equivalent_strain_mt*(equivalent_strain_mt1-
  406. c     *           equivalent_strain_mt0)
  407. c      WRITE(*,*) 'FENZI2=',equivalent_strain_mt-equivalent_strain_mt0
  408. c      WRITE(*,*)'FENZI=',equivalent_strain_mt1*(equivalent_strain_mt-
  409. c     *           equivalent_strain_mt0)
  410. C      WRITE(*,*)'FENMU=',equivalent_strain_mt1-
  411. C     *           equivalent_strain_mt0
  412.       if (amc .ge. one) then
  413.           equivalent_strain_mc = celent*((d**two+STRANT(4)**two)**half)
  414.      1                           /(amc**half)
  415.           ABC = (celent*c*d+STRESS(4)*STRANT(4))
  416.           equivalent_stress_mc = ABC/equivelent_strain_mc
  417.           equivalent_strain_mc0 = equivalent_strain_mc/(amc**two)
  418.           equivalent_strain_mc1 = (two*G_IC_m*(amc**half))/
  419.      *                             (equivalent_stress_mc)
  420.           Dmc = (equivalent_strain_mc1*(equivalent_strain_mc-
  421.      *          equivalent_strain_mc0))/
  422.      *               (equivalent_strain_mc*(equivalent_strain_mc1-
  423.      *                                      equivalent_strain_mc0))
  424.       else
  425.           Dmc = zero
  426.       end if
  427. c      write(*,*) 'Dmc=',Dmc
  428. C     update stiffnesee matrix
  429. C     reset DDSDDE
  430.       ADM = one-(one-Dmt)*(one-Dmc)
  431. c      DEG=((one-ADF)*Em)/(two*(one + (one-ADF)*NUm))
  432. c      DELAM=((one-ADF)*NUm*(one-ADF)*Em)/((one + (one-ADF)*NUm)*
  433. c     *      (one - two*(one-ADF)*NUm))
  434. c      AC11 = TWO*DEG+DELAM
  435. c      AC22 = TWO*DEG+DELAM
  436. c      AC33 = TWO*DEG+DELAM
  437. c      AC44 = DEG
  438. c      AC55 = DEG
  439. c      AC66 = DEG
  440. c      AC12 = DELAM
  441. c      AC13 = DELAM
  442. c      AC21 = DELAM
  443. c      AC23 = DELAM
  444. c      AC31 = DELAM
  445. c      AC32 = DELAM
  446. C     computer stiffiness matrix
  447.        do i = 1, NTENS
  448.           do j = 1, NTENS
  449.               DDSDDE(i,j)= 0
  450.           end do
  451.       end do
  452.       IF (ADM .gt. STATEV(9)) then
  453.           ADM = ADM
  454.       else
  455.           ADM = STATEV(9)
  456.       end if
  457.       DDSDDE(1,1) = (one - ADM)*AC11
  458.       DDSDDE(2,2) = (one - ADM)*AC22
  459.       DDSDDE(3,3) = (one - ADM)*AC33
  460.       DDSDDE(4,4) = (one - ADM)*AC44
  461.       DDSDDE(5,5) = (one - ADM)*AC55
  462.       DDSDDE(6,6) = (one - ADM)*AC66
  463.       DDSDDE(1,2) = (one - ADM)*AC12
  464.       DDSDDE(2,1) = (one - ADM)*AC21
  465.       DDSDDE(1,3) = (one - ADM)*AC13
  466.       DDSDDE(3,1) = (one - ADM)*AC31
  467.       DDSDDE(2,3) = (one - ADM)*AC23
  468.       DDSDDE(3,2) = (one - ADM)*AC32
  469. C     recompute stress
  470.       do i = 1, NTENS
  471.           do j = 1, NTENS
  472.               STRESS(i)=STRESS(i)+DDSDDE(i,j)*DSTRAN(j)
  473.           end do
  474.       end do
  475.       STATEV(5) = amt
  476.       STATEV(6) = amc
  477.       STATEV(7) = Dmt
  478.       STATEV(8) = Dmc
  479.       STATEV(9) = ADM
  480.       RETURN
  481.       END
复制代码
 楼主| 发表于 2023-9-6 16:42:45 | 显示全部楼层 来自 重庆
Simdroid开发平台
后面,我在计算应力是加上STRESS(I) = 0后,能完全运算,但是得到的效果就是,所有的单元应力都是同时到达损伤,这明显和实际不符合。为什么不能出现那种某个地方先出现损伤,然后损伤逐渐扩大的情况呢,希望有大佬指点一二。
回复 不支持

使用道具 举报

发表于 2023-12-7 12:38:39 | 显示全部楼层 来自 上海
请问楼主的问题解决了嘛
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 23:15 , Processed in 0.044925 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表