上期介紹了Radioss的二次開發的準備工作,本期我們將繼續深入,為大家帶來Radioss 材料本構的二次開發。本講我們將主要圍繞二次開發簡介、材料二次開發介紹、材料本構二次開發的starter、材料本構二次開發的engine這四點展開

 

 

上一期我們主要講了:二次開發背景知識,安裝Fortran編譯器,設置環境變數,編譯二次開發的程式,使用二次開發的程式。錯過上一期的小夥伴,可以點擊下方按鈕查看文章:

 

Radioss二次開發 - 準備工作

 

 

【Radioss技巧】Radioss 材料本構的二次開發 2020-01

 

No.1

 二次開發介紹

 

 

 
 

 二次開發的内容 

 
 

 

我們先用一張圖形象的說明一下Radioss的二次開發能開發哪一些內容:

 

Radioss支援單元屬性、實體單元、殼單元、SPH、材料本構、失效模型及狀態方程的二次開發,這些都需要和Radioss主程序協同工作。

 

 
 

 Starter 和 Engine

 
 

 

Radioss的二次開發主要分為兩塊:StarterEngine

 

點擊圖片可查看大圖

 

Starter主要用於資料的讀取,例如讀取材料的參數等。圖中Starter Input file其實就是000.rad檔,Starter可以讀取其中定義的一些參數之後,形成Restart file,傳遞給EngineStarterEngine是通過一些參數進行資訊交換的。

Engine主要用於計算,Engine Input file就是0001.rad文件。Engine讀取Engine中的一些設置以及Starter檔當中的Restart file資訊進行計算,最後輸出結果檔。

 

Starter讀取用戶輸入然後通過UPARAM傳遞給EngineStarter還可用於用戶輸入的列印,以便後期校驗。

Engine對於材料本構的二次開發來說,實際上就是計算每個單元中的應力,所以每個單元都需要迴圈。

和上一期一樣,我們會以視頻的形式對這一部分進行詳細講解,更方便大家學習~

 

 

 

No.2

材料二次開發介紹

 

 

 
 

 二次開發本構卡片 

 
 

 

 

例如,本講我們要開發一個材料本構的卡片,在什麼地方放上什麼參數,放幾行都可以自己定義。

需要注意的是,二次開發本構卡片必須名為:

USER1 LAW29

USER2 LAW30

USER3 LAW31

不能是其他名字,比如USER01,會出錯。

 
 
 

編寫兩個副程式的名字必須為:

LECMnn starter副程式

SIGEPSnnengine副程式

如下圖所示: 

 

如果是實體單元,副程式名字後直接接對應編號,如果是殼體的話,在編號後會有“c”

LAW29-31做的材料本構開發可以用於2D3D的單元,但是不可以用於彈簧(spring)或杆(Truss)單元。

 

 
 

 SUBROUTINE 

 
 

 

我們以 LAW29 為例,看一下材料本構的二次開發中的starterengine分別有那些SUBROUTINE

 
 
 

Starter(LECM29.f)

點擊圖片可查看大圖

如上圖所示,Starter中有LECMnnSUBROUTINE,以LAW29為例,就是LECM29

 
 
 

同樣,EngineSIGEPSnnSUBROUTINE,以LAW29為例,就是SIGEPS29Starterengine中的LECMSIGEPS名稱都不能更改,下圖中用於實體單元和殼單元的參數名稱也都不可更改。

 

用於實體單元

 

用於殼單元

 

No.3

材料本構二次開發的starter

 

 

接下來我們來詳細分析一下Starter的每一個參數分別起到什麼作用。

首先,副程式中的參數名稱不要改變,他們是用於和Radioss其他內部程式進行交流的。

 

IIN:讀取資料的參數

 

例如:

 
 

IOUT:輸出資料的參數

 

例如:

 

1100處定義的格式輸出ENU這兩個資料。

 

NUVAR

 

NUVAR:用於engine副程式的許多內部變數的存儲。

 

IFUNC

 

IFUNC:用於存儲材料模型中所用到的曲線(function)的陣列。

曲線的數目必須儲存在這個陣列中,同樣這個陣列的維數是定義在NFUNC中,維數的上限是定義在MAXFUNC

 

PARMAT

 

PARMAT:用於存儲用於計算接觸剛度的材料模量。比如E-模量,G-模量,這些也用於在Starter中計算時間步長。

 

UPARAM

 

UPARAM:用於存儲材料參數的雙精度陣列,用於engine副程式

例如存儲讀取的材料資料E-模量,泊松比,最大應變值,屈服應力,內部計算得到的G-模量等資料。陣列的維數是定義在NUPARAM中,陣列的維數的上限是定義在MAXUPARAM中。

 

文字表達可能有點複雜,建議大家看視頻學習哈~

 

 

No.4

材料本構二次開發的engine

 

 

在詳細介紹engine之前,因為在材料本構中engine就是計算每個單元中的應力,所以我們以實體單元線彈性各向同性材料本構來講一下演算法:

 

 
 

公式

 
 

 

實體單元中的應力應變:

 

線彈性各向同性材料本構:

 
 
 

放大看一下:

 
 
 

 

 
 

ENGINE參數

 
 

Engine(SIGEPS29.f)

第1-3行參數:

Engine的前三行用於存儲基本材料資料

用於實體單元

 

NEL

 

NEL:需要計算的模型中的單元個數。

 

UPARAM

 

UPARAM:在Starter中讀取並存儲材料參數的雙精度陣列,陣列的維數是定義在NUPARAM中。

 

NUVAR

 

NUVAR:用於engine副程式的許多內部變數的存儲。

 

IFUNC

 

IFUNC:用於存儲材料模型中所用到的曲線(function)的陣列。曲線的數目必須儲存在這個陣列中,同樣這個陣列的維數是定義在NFUNC中。

 

NPF,TF

 

NPF,TF:用於FINTER的陣列參數。FINTERRadioss讀取曲線以後用內插法再次表述。

 

NPT,IPT

 

NPT:積分點的數目,IPT是指當前的積分點。

 

TIME,TIMESTEP

 

TIME,TIMESTEP:當前時間和時間步長。

 

RHO0,RHO

 

RHO0,RHO:初始和當前的密度。

 

VOLUME,AREA

 

VOLUME,AREA:單元體積(用於實體單元solid),單元的面積(用於殼單元shell)。

 

EINT

 

EINT:總內能

 
 
 

第4-9行參數:

 
 
 
 

最後一行參數:

最後一行參數用於內部參數的計算存儲

 
 

SOUNDSP

 

SOUNDSP:聲速,一般是可以在副程式中如下描述,實體單元solid

 
 

VISCMAX

 

VISCMAX:最大阻尼,比如對viscous材料,他是用於穩定計算步長的

 

OFF

 

OFF:用於指示單元刪除的參數,單元不刪除為1,刪除就位0

 
 
 

如果是殼單元還有如下參數:

 

THK

 

THK:單元的厚度

 

PLA

 

PLA:用於存儲塑性應變的陣列

 

 
 

函数

 
 

 

除了參數以外,還可以在engine副程式中調特定用函數用於比如曲線讀取等。

 

這一部分內容比較多而且相對複雜,視頻講解學起來可能更輕鬆喲~

 

【Radioss技巧】Radioss 材料本構的二次開發 2020-02

 

 

幫助手冊

 

關於材料本構的二次開發,大家可以查看幫助手冊:User Subroutineschapter2,手冊中有更多的詳細資訊供大家查閱學習

https://altairhyperworks.com/hwhelp/Altair/hw14.0/help/hwsolvers/hwsolvers.htm?user_subroutines_radioss.htm

 

課後練習

 

因為本講內容較多,材料本構的實例介紹就留作大家的課後練習供大家學習鞏固。實例講解除了文檔也有視頻的介紹供大家學習~

 

本講所有材料及實例介紹下載:

 

材料及實例下載

 

 

 

我們下期再見啦~

 

 

arrow
arrow
    創作者介紹
    創作者 Altair Taiwan 的頭像
    Altair Taiwan

    Altair Taiwan Blog

    Altair Taiwan 發表在 痞客邦 留言(0) 人氣()