美文网首页
ABAQUS 用户子程序`UMAT`使用线弹性问题进行模拟问题

ABAQUS 用户子程序`UMAT`使用线弹性问题进行模拟问题

作者: 不想当社畜 | 来源:发表于2022-10-29 14:01 被阅读0次

    需要将abaqus与vs和fortran进行关联,使用的是abaqus2022版本,vs2019和intel ONEAPI 2022版本。参考关联链接保姆级Abaqus2022+VS2019+Fortran关联配置 - 知乎 (zhihu.com)

    创建线弹性模型简单的几何模型

    问题: 悬臂梁(长10,宽1,高1)一端四个点固定约束,另外一个端两个点载荷-1000。各项同性材料,E=1e9,v=0.3。


    模型

    使用UMAT进行分析

    与abaqus常规模型分析步骤一样,下面不一样的分析。

    1. 定义材料 General->User Material 使用默认的参数添加弹性模量1e9和泊松比0.3.
    定义材料
    1. 将单元默认的减缩积分C3D8R改成C3D8单元 (如果使用C3D8R进行计算的时候会出现报错。)
    分配单元类型
    分配单元类型
    1. 创建job,指定UMAT的fortran子程序
    创建job
    1. 查看输出和结果
    test_umat

    对比常规输入的材料计算结果,与UMAT定义的材料一样。

    常规计算结果

    UMAT 子程序代码

    *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*8 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)
          write(6,*) PROPS(1) , PROPS(2)
          E=PROPS(1)
          ANU=PROPS(2)
          ALAMDA=ANU*E/ (ONE+ANU)/(ONE-TWO*ANU)
          AMU=E/TWO/(ONE+ANU)
          DO I=1,NTENS
           DO J=1,NTENS
            DDSDDE(I,J)=0.0D0
           ENDDO
          ENDDO
          DDSDDE(1,1)=ALAMDA+TWO*AMU
          DDSDDE(2,2)=DDSDDE(1,1)
          DDSDDE(3,3)=DDSDDE(1,1)
          DDSDDE(4,4)=AMU
          DDSDDE(5,5)=AMU
          DDSDDE(6,6)=AMU
          DDSDDE(1,2)=ALAMDA
          DDSDDE(1,3)=ALAMDA
          DDSDDE(2,3)=ALAMDA      
          DDSDDE(2,1)=DDSDDE(1,2)
          DDSDDE(3,1)=DDSDDE(1,3)
          DDSDDE(3,2)=DDSDDE(2,3)
    C      
          DO I=1,NTENS
            DO J=1,NTENS
            STRESS(I)=STRESS(I)+DDSDDE(I,J)*DSTRAN(J)
            ENDDO
          ENDDO
          RETURN
          END       
    
    

    参考线性材料应力应变关系


    线弹性应力应变关系

    解释代码中的含义:

    PROPS() 数组是User Material中定义的数据,因此第一个数据是PROPS(1)是弹性模量,PROPS(2)是泊松比。DDSDDE数组则是上述公式的[D]矩阵。

    UMAT详细介绍参考abaqus 中UMAT接口 Abaqus User Subroutines Reference Guide (2016)

    UMAT详细介绍参考abaqus 中UMAT接口 Abaqus User Subroutines Reference Guide (2016)

    参考链接

    1. 保姆级Abaqus2022+VS2019+Fortran关联配置 - 知乎 (zhihu.com)
    2. Abaqus User Subroutines Reference Guide (2016)

    相关文章

      网友评论

          本文标题:ABAQUS 用户子程序`UMAT`使用线弹性问题进行模拟问题

          本文链接:https://www.haomeiwen.com/subject/rkjhtdtx.html