
發布
注冊
/
登錄非線彈性索的案例
非等溫各向同性線彈性umat開發 ¥20
* 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自帶本構計算結果,右圖為子程序計算結果):
反力曲線對比如下:
彈性應變的對比曲線為:
熱應變的對比曲線為:
5.2 帶孔平板拉伸
計算的應力結果對比如下(左圖為Abaqus自帶本構計算結果,右圖為子程序計算結果):
6 源代碼
展開 非等溫各向同性線彈性umat開發
1 說明
該本構完全從文檔《Writing User Subroutines with Abaqus》中摘抄而來,采用Fortran77格式編寫
2 理論文檔
需要考慮熱膨脹(熱應變)和材料參數隨溫度變化。
3 與Abaqus自帶本構的對比
4 源代碼
isotropic_non_isothermal_elasticity.f
本人用C++寫了一版,見https://www.yqgqt.org.cn/post/1942074
非等溫線彈性UMAT子程序及Abaqus內部實現方法
本文介紹Abaqus官方教程的第2個案例——非等溫線彈性UMAT子程序。本文首先簡要介紹非等溫線彈性理論,再采用批注的方式介紹UMAT子程序的實現方法。最后將計算結果與Abaqus自帶材料的進行對比,探討Abaqus熱力耦合的實現方式。筆者水平有限,若有不足之處,煩請指出,不甚感激。
將拉梅常數看做是溫度的函數,則非等溫彈性張量方程為:
其中,l和m是拉梅常數,a是線膨脹系數,T是溫度。對方程兩邊取材料時間導數,得到Jaumann率形式:
寫成增量形式為:
Abaqus Standard采用增量法逐步施加載荷/位移,每步增加的應力即可按上式進行計算。
展開