【轉(zhuǎn)載】abaqus二次開(kāi)發(fā)概述

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

說(shuō)明

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


abaqus二次開(kāi)發(fā)概述


導(dǎo)語(yǔ)

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

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

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


用戶子程序特點(diǎn)


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

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

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

    4. 由于他們沒(méi)有儲(chǔ)存在restart文件中,如果需要的話,可以在重新開(kāi)始運(yùn)行時(shí)修改。

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


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

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

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(jìn)行編譯和鏈接。當(dāng)控制遇到RETURN語(yǔ)句時(shí)便返回到引用程序單元中去,END語(yǔ)句是用戶子程序結(jié)束的標(biāo)志。

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

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

編制用戶子程序時(shí)應(yīng)注意:

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

  2. 當(dāng)用戶在用戶子程序中利用 OPEN 打開(kāi)外部文件時(shí),要注意以下兩點(diǎn):一是設(shè)備號(hào)的選擇是有限制的,只能取 15~18 和大于 100 的設(shè)備號(hào),其余的都已被ABAQUS 占用;二是用戶需提供外部文件的絕對(duì)路徑而不是相對(duì)路徑。

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

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


abaqus用戶子程序分類

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

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

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

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

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

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

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

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


常用用戶子程序介紹

  • 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的有限元分析和應(yīng)用》,莊茁、由小川等 , 清華大學(xué)出版社

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

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

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

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

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

文章轉(zhuǎn)來(lái)自

小小xiao呆

博客


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

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

編輯
在線報(bào)名:
  • 客服在線請(qǐng)直接聯(lián)系我們的客服,您也可以通過(guò)下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國(guó)服務(wù)熱線

1358-032-9919

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