非等溫各向同性線彈性umat開發

1 說明

該本構完全從文檔《Writing User Subroutines with Abaqus》中摘抄而來,采用Fortran77格式編寫

2 理論文檔

需要考慮熱膨脹(熱應變)和材料參數隨溫度變化。

非等溫各向同性線彈性umat開發的圖1

3 與Abaqus自帶本構的對比

非等溫各向同性線彈性umat開發的圖2

4 改進

在Abaqus中,在設置材料與溫度相關的數據時,可以設置多組,如圖所示:

非等溫各向同性線彈性umat開發的圖3

該子程序只處理了兩組數據點的情況。將其擴展至多個數據點的情況(改進后的代碼采用Fortran90編寫):

! 插值函數, 用于插值計算特定溫度下的材料參數值
! 文檔 "Writing User Subroutines with Abaqus" 只考慮了兩個數據點的情況
! 將其擴展至多個數據點的情況
! 輸入:
!    * npt:         數據點個數
!    * xp:         溫度列表
!    * yp:         材料參數列表
!    * x:           待求點溫度值
!    * y:           待求點材料參數值
function interpolate_para(npt, xp, yp, x) result(y)
    integer,intent(in) :: npt
    real(8),intent(in) :: xp(npt)
    real(8),intent(in) :: yp(npt)
    real(8),intent(in) :: x
    real(8)            :: y
    integer :: i

    if ( x <  xp(1) ) then
        y = yp(1)
    elseif ( x > xp(npt) ) then
        y = yp(npt)
    else
        do i = 1, npt-1
            if ( x >= xp(i) .and. x <= xp(i+1) ) then
                y = ( yp(i+1) - yp(i) ) / ( xp(i+1) - xp(i) ) * ( x -  xp(i) ) + yp(i)
            endif
        enddo
    endif

    return
end function

5 算例

5.1 單個單元單軸拉伸

計算的應力結果對比如下(左圖為Abaqus自帶本構計算結果,右圖為子程序計算結果):

非等溫各向同性線彈性umat開發的圖4

反力曲線對比如下:

非等溫各向同性線彈性umat開發的圖5

彈性應變的對比曲線為:

非等溫各向同性線彈性umat開發的圖6

熱應變的對比曲線為:

非等溫各向同性線彈性umat開發的圖7

5.2 帶孔平板拉伸

計算的應力結果對比如下(左圖為Abaqus自帶本構計算結果,右圖為子程序計算結果):

非等溫各向同性線彈性umat開發的圖8

6 源代碼

本人用C++寫了一版,見http://www.yqgqt.org.cn/post/1942074

7 改進后源代碼

以下內容為付費內容,請購買后觀看

包含1個文件

付費內容包括改進后的Fortran90子程序源代碼以及文中所有算例的inp文件

release.zip
490.20KB
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP