【轉載】abaqus二次開發(fā)概述

2017-03-13  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

說明

本系列文章本人基本沒有原創(chuàng)貢獻,都是在學習過程中找到的相關書籍和教程相關內(nèi)容的匯總和梳理編輯。為了尊重原創(chuàng)者成果,本人在本系列文章后面列出了參考和引用的文獻來源。


abaqus二次開發(fā)概述


導語

隨著計算技術和計算機的快速發(fā)展,有限元軟件的發(fā)展速度迅速,功能日漸強大。目前國際上被廣泛采用的通用有限元軟件有 ANSYS、MSC、ABAQUS 等。利用商業(yè)軟件進行計算現(xiàn)在已是科學研究中的一項重要手段。由于工程問題的千差萬別,不同的用戶有不同的專業(yè)背景和發(fā)展方向,通用軟件不免在具體的專業(yè)方面有所欠缺,針對這些不足,大部分的通用軟件都提供了二次開發(fā)功能,以幫助用戶減少重復性的編程工作、提高開發(fā)起點、縮短研發(fā)周期、降低開發(fā)成本,并能簡化后期維護工作,給用戶帶來很多方便。基于通用軟件平臺進行開發(fā),是目前研究的一個重要發(fā)展方向。ABAQUS 也提供了若干用戶子程序(User Subroutines)接口,它是一個功能非常強大且適用的分析工具,與命令行的程序格式相比,用戶子程序的限制少得多,從而使用更加靈活方便。

ABAQUS不僅提供標準的有限元分析程序,而且具有良好的開放性,可利用它提供的用戶子程序接口生成非標準的分析程序來滿足用戶的需要,在實際工程中得到廣泛應用。abaqus的二次開發(fā)包括用戶子程序的開發(fā)以及abaqus和其他商業(yè)軟件接口處理兩種方式。本系列主要說明子程序的開發(fā)。

ABAQUS 允許用戶通過子程序以代碼的形式來擴展主程序的功能,并給用戶提供了強大而又靈活的用戶子程序接口和應用程序接口(Utility Routine),ABAQUS共有49個用戶子程序接口,15個應用程序接口,用戶可以定義包括邊界條件、荷載條件、接觸條件、材料特性以及利用用戶子程序和其它應用軟件進行數(shù)值交換等等。這些用戶子程序接口使得用戶解決一些問題時有很大的靈活性,同時大大的擴充了 ABAQUS 的功能。例如:通過用戶定義單元接口,用戶自定義的任何類型的線性或非線性單元都可以被引入模型中,對于線性單元剛度矩陣和質(zhì)量矩陣可以直接確定。例如:如果荷載條件是時間的函數(shù),這在ABAQUS/CAE 和INPUT文件中是難以實現(xiàn)的,但在用戶子程序DLOAD中就很容易實現(xiàn)。同時,用戶子程序也可被用來定義這些單元的線性和非線性特性。通過用戶材料子程序接口,用戶可定義任何補充的材料模型,不但任意數(shù)量的材料常數(shù)都可以作為資料被讀取,而且 ABAQUS 對于任何數(shù)量的與解相關的狀態(tài)變量在每一材料計數(shù)點都提供了存儲功能,以便在這些子程序中應用。


用戶子程序特點


    1. 如果abaqus的一些固有選項模型功能有限,用戶子程序可以提高abaqus中這些選項的功能。

    2. 通常用戶子程序是用Fortran語言的代碼寫成的。

    3. 子程序可以以幾種不同方式包還在模型中。

    4. 由于他們沒有儲存在restart文件中,如果需要的話,可以在重新開始運行時修改。

    5. 在有些情況下,子程序可以直接調(diào)用abaqus允許的已有的程序。


abaqus用戶程序接口與調(diào)用方式

ABAQUS的用戶子程序是根據(jù)ABAQUS提供的相應接口,按照Fortran語法,用戶自己編寫的代碼。它是一個獨立的程序單元,可以獨立的被存儲和編譯,也能被其它程序單元引用,因此,利用它可帶回大量數(shù)據(jù)供引用程序使用,也可以用它來完成各種特殊的功能。它的一般結構形式是:

SUBROUTINE name (x1,x2,……,xn) INCLUDE ‘ABA_PARAM.INC’ (用于 ABAQUS/Standard 用戶子程序中)OR INCLUDE ‘VABA_PARAM.INC’ (用于 ABAQUS/Explicit 用戶子程序中) …… RETURNEND
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

其中,x1,x2,……,xn是ABAQUS提供的用戶子程序的接口參數(shù),有些參數(shù)是ABAQUS傳到用戶子程序中的,例如:SUBROUTINE DLOAD 中的 KSTEP、KINC、COORDS;有些是需要用戶自己定義的,例如 F。文件 aba_param.inc 和 vaba_param.inc隨著ABAQUS 軟件的安裝而包含在操作系統(tǒng)中,它們含有重要的參數(shù),幫助ABAQUS 主求解程序?qū)τ脩糇映绦蜻M行編譯和鏈接。當控制遇到RETURN語句時便返回到引用程序單元中去,END語句是用戶子程序結束的標志。

在一個算例中,用戶可以用到多個用戶子程序,但必須把它們放在一個以.for為擴展名的文件中。運行帶有用戶子程序的算例有兩種方法:一是在 CAE 中運行,在 EDIT JOB 菜單中的 GENERAL 子菜單的 USER SUBROUTINE FILE 對話框中選擇用戶子程序所在的文件即可;另外是在 ABAQUS.COMMAND 中運行,語法如下:

abaqus job=job-name user={source-file | object-file}

編制用戶子程序時應注意:

  1. 用戶子程序相互之間不能調(diào)用,但可以調(diào)用用戶自己編寫的 Fortran 子程序和 ABAQUS 應用程序。ABAQUS 應用程序必須由用戶子程序調(diào)用。當用戶編寫Fortran 子程序時,建議子程序名以K開頭,以免和 ABAQUS 內(nèi)部程序沖突。

  2. 當用戶在用戶子程序中利用 OPEN 打開外部文件時,要注意以下兩點:一是設備號的選擇是有限制的,只能取 15~18 和大于 100 的設備號,其余的都已被ABAQUS 占用;二是用戶需提供外部文件的絕對路徑而不是相對路徑。

  3. 對于不同的用戶子程序 ABAQUS 調(diào)用的時間是不同的,有的是在每個 STEP的開始,有的是 STEP 的結尾,有的是在每個 INCREMENT 的開始等等。當 ABAQUS調(diào)用用戶子程序時,都會把當前的 STEP 和 INCREMENT 利用用戶子程序的兩個實參 KSTEP 和 KINC 傳給用戶子程序,用戶可把它們輸出到外部文件中,這樣就可清楚知道 ABAQUS 何時調(diào)用該用戶子程序。為保證用戶子程序的正確執(zhí)行,子程序的書寫必須遵循 ABAQUS的相關規(guī)定。

此外,ABAQUS的腳本語言接口非常友好,其自嵌的腳本語言是Python系國際上廣泛使用、功能強大、具有良好開放性的一種面向?qū)ο蟪绦蛟O計語言。所以,應用Python在ABAQUS中進行二次開發(fā)也比較方便,且可移植性強。ABAQUS以基于Python的語法規(guī)則向二次開發(fā)者提供了許多庫函數(shù),這些庫函數(shù)主要是用來增強ABAQUS的交互式(GUI)操作功能。用戶可以通過ABAQUS的交互式(GUD界面實現(xiàn)分析對象的特征造型、指定材料屬性、完成網(wǎng)格剖分和控制、提交并監(jiān)控分析作業(yè),也可以使用ABAQUS腳本語言越過ABAQUS的交互式(GUI)界面直接高效地向ABAQUS內(nèi)核提交任務。使用Python可以進行參數(shù)化建模,修改交互式建立的模型,還可以一次提交多個作業(yè)。 在國外,眾多的有限元分析和研究者熱衷于使用ABAQUS,一個很重要的原因就在于ABAQUS給用戶提供了功能強大,使用方便的二次開發(fā)工具和接口,使得用戶可以方便的進行富含個性化的有限元建模、分析和后處理,滿足特定工程問題的需要。


abaqus用戶子程序分類

ABAQUS用戶子程序大致可以分為7類,下面為具體的分類及用戶常用子程序。

  1. 用戶定義的初始條件
    利用此類子程序可以在分析時定義初始條件,例如:初始應力場的定義,可以采用SIGINI用戶子程序來定義;在滲流場分析時定義初始孔隙水壓力分析可采用UPOREP用戶子程序;多孔介質(zhì)初始孔隙度分布的定義可采用VOIDRI用戶子程序。

  2. 用戶定義的邊界條件
    利用此類子程序可以在結構分析或耦合分析時定義特殊類型的邊界條件,如定義節(jié)點位移,定義分布機械載荷,定義流體流速和流量等。例如:定義非均布的滲流流速和流量可采用DFLOW和DFLUX用戶子程序,以及定義非均布的滲流系數(shù)可采用FLOW用戶子程序;定義特殊類型的位移邊界可采用DISP用戶子程序;定義特殊類型分布的面力載荷可采用DLOAD子程序;定義特殊分布的牽引力可采用UTRACLOAD子程序;定義溫度場邊界的UTEMP子程序。

  3. 用戶定義的材料特性和本構關系
    利用此類子程序可以定義各種本構模型,如各向異性或正交各向異性的彈性應力-應變關系,各種非線性彈塑性本構關系、也可以定義蠕變應變率演化方程、定義非線性應力-應變關系,定義加工硬化或應變硬化曲線等。例如:采用UMAT子程序可以定義各類本構模型,包括非線性彈性、彈塑性以及蠕變等模型;例如采用CREEP子程序可以定義各類蠕變或膨脹演化方程;關于材料的熱力學特性可以采用UMATHT子程序;定義粘彈性材料或超彈性材料可以采用UHYPEL和UHYPER子程序;Mullins材料模型的損傷特性定義可以采用UMULLINS用戶子程序。

  4. 用戶定義的單元
    對于特殊類型的單元,可采用UEL子程序進行定義。

  5. 用戶定義的狀態(tài)變量
    狀態(tài)變量主要包括定義場變量、與求解過程相關的狀態(tài)變量,以后重新定義材料點的狀態(tài)變量,主要有UFIELD子程序、SDVINI子程序和USDFLD子程序。此外還包括定義摩擦接觸屬性的子程序,如定義摩擦接觸行為的FRIC子程序,以及接觸面行為定義的UINTER子程序等。

  6. 定義輸出量的用戶子程序
    此類用戶子程序可以定義提取單元結果,將單元量輸出,寫到后處理結果文件中,如UVARM子程序;此外,讀取結果文件可采用URDFIL子程序。

  7. 其他用戶子程序
    此外,還包括特殊類型用途的子程序,如定義多點約束的子程序MPC,定義局部坐標的ORIENT子程序等。上述子程序的分類僅限于在巖土工程領域,其他領域有不同的分類方法。


常用用戶子程序介紹

  • 1.DLOAD子程序

  • 2.DISP子程序

  • 3.CREEP子程序

  • 4.FLOW子程序

  • 5.DFLOW子程序

  • 6.SIGINI子程序

  • 7.USDFLD子程序

  • 8.UPOREP子程序

  • 9.VOIDRI子程序

  • 10.UEXTERNALDB子程序

  • 11.URDFIL子程序


Refence

  • 1.《基于ABAQUS的有限元分析和應用》,莊茁、由小川等 , 清華大學出版社

  • 2.《ABAQUSA有限元分析–從入門到精通》, 劉展、錢英莉 ,人民郵電出版社

  • 3.《淺談ABAQUS用戶子程序》,李青 清華大學工程力學系

  • 4.《ABAQUS_Fortran二次開發(fā)》,百度文庫xueni408上傳文章(找不到原文出處,在此備注)

  • 5.《Abaqus二次開發(fā)高級專題》,百度文庫54yiwei上傳

  • 6.《ABAQUS二次開發(fā)基礎》,百度文庫千山暮雪婷上傳

文章轉來自

小小xiao呆

博客


開放分享:優(yōu)質(zhì)有限元技術文章,助你自學成才

相關標簽搜索:【轉載】abaqus二次開發(fā)概述 abaqus分析培訓 abaqus技術教程 abaqus巖土分析 鋼筋混凝土仿真 abaqus分析理論 abaqus軟件下載 abaqus umat用戶子程序編程 Abaqus代做 Abaqus基礎知識 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com