LS-DYNA用戶關鍵字的二次開發(fā)

  摘自:上海仿坤(LS-DYNA  China)官網(wǎng)

http://lsdyna-china.com/display/247706.html

LS-DYNA用戶關鍵字二次開發(fā)

Zhidong Han, Brian Wainscott

Livermore Software Technology Corp.

 

摘要

在前面兩期中我們分別介紹了LS-DYNA新二次開發(fā)環(huán)境的特點和兼容性,以及相關動態(tài)連接庫的開發(fā)和調試全過程。本文將繼續(xù)介紹其另外一個新功能: *USER_KEYWORD (用戶關鍵字),用戶可以定義自己的關鍵字,并在用戶子程序中實現(xiàn),讓自己開發(fā)的用戶模塊的輸入更有效,功能更豐富。

 

引言

LS-DYNA在實際工程中得到了非常廣泛的應用,成功地解決了很多大規(guī)模非線性問題。用戶在幾十年的應用過程中積累了非常多的模型數(shù)據(jù),比如各個部件的有效模型,各個機構的建模方法,各種材料的參數(shù)庫,以及各種求解控制參數(shù)等等。這些數(shù)據(jù)都是經(jīng)過長期應用反復驗證的,在實際應用中也非常有效。如何把這些數(shù)據(jù)準確可靠地應用到新的數(shù)值分析中,很多用戶都根據(jù)自己的模型特點建立一套管理方法來盡量避免模型差錯。目前LS-DYNA的模型輸入文件是主要是靜態(tài)模型文件(關鍵字文件),對于腳本的語言缺乏良好的支持。在新的二次開發(fā)環(huán)境下,用戶可以通過用戶子程序來實現(xiàn)動態(tài)的模型生成功能,實現(xiàn)建模自動化,比如:

l  對同一個標準部件,在不同的網(wǎng)格尺寸下,實現(xiàn)不同的劃分方式;

l  對同一個材料模型,在不同的單位制下,實現(xiàn)參數(shù)自動轉換,避免手工差錯;

l  對同一個連接機構,在不同的分析中,實現(xiàn)不同的建模方式。 

我們在前兩期已經(jīng)介紹了LS-DYNA新的二次開發(fā)環(huán)境支持用戶子程序與LS-DYNA的主程序完全分開,在運行時無需連接。在以前的模式下,用戶子程序必須與LS-DYNA的具體執(zhí)行程序相關聯(lián),不同的執(zhí)行程序往往需要重新編譯連接才能執(zhí)行。當模型還需要別的用戶子程序時,往往會產生沖突。因此,當這種限制被突破以后,用戶開發(fā)的動態(tài)建模的用戶子程序就成為了模型的一部分,與LS-DYNA的執(zhí)行程序是完全分開,只有在該模型被讀入的時候該子程序才被動態(tài)調用。這種新的開發(fā)模式導致了用戶子程序在概念上有一個比較大的改變,即把用戶子程序和用戶數(shù)據(jù)綁定在一起,而與LS-DYNA的執(zhí)行程序無關,提高了用戶子程序的一致性和可維護性。

我們以兩個簡單的例子來介紹在新的開發(fā)環(huán)境下,如何利用用戶子程序來動態(tài)產生用戶關鍵字,實現(xiàn)模型輸入上的自動化。

 

模型自動建模

1)長方塊生成程序

這是一個簡單的例子,用來演示如何在現(xiàn)有的模型中生成一個長方塊(假定為某個部件)。這個長方塊的網(wǎng)格生成程序非常簡單,但演示了開發(fā)的全過程。其源程序已經(jīng)包含在LS-DYNA用戶子程序開發(fā)包里面,用戶可以根據(jù)需要開發(fā)出一個實用的部件生成子程序。

如圖一所示,先建立一個簡單的常規(guī)靜態(tài)模型,由三塊板組成的?,F(xiàn)在通過以下幾個步驟利用新的用戶關鍵字功能來實現(xiàn)長方塊的動態(tài)生成:

1)編輯源程序dyn21.f,將其中子程序rdusrkwd的第一行

isexample=0

改為

isexample=1

這個自帶的動態(tài)網(wǎng)格生成功能就能使用了。參閱前面兩篇文章,將用戶子程序編譯連接為動態(tài)連接庫就可以。假定該動態(tài)連接庫的名字為libdemo.so

 

2)調用動態(tài)連接庫,在模型文件中加入

*MODULE_LOAD

mydemo

libdemo.so

3) 加入新的用戶關鍵字,及其參數(shù)

*USER_KEYWORD

100., 20., 30., 10, 2, 3

這個簡單演示程序是生成一個長方塊,先讀入6個參數(shù),分別是X,Y,Z方向的長度,及其相應的單元劃分單元個數(shù)。此例中輸入為X方向長為100,劃分10個單元。運行LS-DYNA則在初始的靜態(tài)模型中動態(tài)添加了一個新的長方塊,如圖二所示。

1.png

圖一 三塊板組成的一個簡單模型

 

2.png

LS-DYNA用戶關鍵字的二次開發(fā)的圖3

圖二 含有動態(tài)生成長方塊的模型

 

 

2)用戶關鍵字子程序接口

用戶關鍵字的子程序統(tǒng)一入口是定義在dyn21.f中的rdusrkwd子程序。其第一個參數(shù)iphase是控制整個子程序的運行流程,其它參數(shù)見源程序中的說明。在LS-DYNA讀入模型文件的過程中,如果遇到用戶關鍵字*USER_KEYWORD,則設置iphase=1后直接調用該子程序,rdusrkwd。從此之后的輸入完全有該子程序控制,直到該子程序退出。該子程序在iphase=1時主要任務是讀取相應的參數(shù),如上節(jié)示例中的6個參數(shù),然后可以直接在內存里面生成LS-DYNA標準的關鍵字。比如上例中的節(jié)點和單元數(shù)據(jù),以行為單位保存。在子程序退出之前將另外一個參數(shù)設置為iflag=1,表明用戶的關鍵字已經(jīng)處理結束并且相關卡片可以輸出。

LS-DYNA會根據(jù)iflag=1的返回值,會設置iphase=2并重復調用該子程序,rdusrkwd,每次以文本方式返回一行卡片數(shù)據(jù)。當生成的模型卡片讀完后,直接將iflag設置0,表明結束。至此,經(jīng)過這生成和讀入兩個階段后,對應的關鍵字*USER_KEYWORD就處理完畢,LS-DYNA的主程序將繼續(xù)讀入并處理余下的關鍵字。

這個子程序的具體執(zhí)行過程請參閱dyn21.f中的源程序的細節(jié),在此不做詳細介紹。下面補充幾個細節(jié):

· 用戶關鍵字的參數(shù)中可以包含自定義的關鍵字信息,以便生成不同的部件或者不同的關鍵字。

· 如果生成的模型太大,可以在iphase=1階段只進行部分生成,余下的工作也可以在iphase=2時繼續(xù)生成。

· 用戶子程序rdusrkwd不限于用FORTRAN語言實現(xiàn)。

· 用戶子程序rdusrkwd可以實現(xiàn)和數(shù)據(jù)庫等各種外部數(shù)據(jù)源連接,實現(xiàn)數(shù)據(jù)集中管理。

 

材料參數(shù)的自動轉換

1*MAT_096 (*MAT_BRITTLE_DAMAGE)

LS-DYNA中的96號材料兩張輸入卡如圖三所示,除去材料號以外,一共有14個材料參數(shù)。

3.png

從表一可以看到,大多數(shù)的參數(shù)都是應力的單位(Pa, 即M L-1T-2)。但是有兩個特殊的參數(shù),一個是裂紋表面釋放能FTOUGH,其單位是每平方米釋放的能量(J/L-2, 即 M T-2);另一個是粘性系數(shù)VISC,在這個模型里面是有量綱的,在LS-DYNA有些模型中粘性系數(shù)是無量綱的。

LS-DYNA用戶關鍵字的二次開發(fā)的圖5

4.png

圖三 96號材料模型的輸入卡片

2)用戶關鍵字的數(shù)據(jù)安排

確定模型的單位制:模型的單位可以在模型文件里面定義為全局的變量,比如:

*PARAMETER

r M_UNIT 0.001

r L_UNIT 0.001

r T_UNIT 0.001

分別定義質量的單位為克(=0.001公斤),長度單位為毫米(=0.001米),時間單位為毫秒(=0.001秒)

這些變量可以作為數(shù)據(jù)輸入文件的標準設置。

用戶關鍵字的參數(shù):這些參數(shù)可以定義在全局變量的基礎上,無需做局部修改,比如:

5.png

生成材料數(shù)據(jù)卡片:用戶子程序讀入上述數(shù)據(jù)后,自動生成以下卡片:

6.png

此類單位制的轉換工作雖然比較簡單,但手工轉換的出錯機會比較大。如果用戶將常用的材料參數(shù)集中整理好并保存到數(shù)據(jù)庫中,并在用戶子程序中實現(xiàn)數(shù)據(jù)庫接口和自動轉換過程,這對數(shù)據(jù)的準確性和使用的便利性來說都非常重要。

結束語

本文介紹了LS-DYNA二次開發(fā)框架中的一個新關鍵字,*USER_KEYWORD,實現(xiàn)了模型自動化的開發(fā)功能。這個新型關鍵字把用戶的子程序和數(shù)據(jù)綁定在一起,而脫離了與LS-DYNA程序的直接綁定,為用戶實現(xiàn)數(shù)據(jù)集中管理和數(shù)據(jù)庫管理提供了可能。這個關鍵字是在LS-DYNA的開發(fā)版本上新近實現(xiàn)的,功能在進一步完善中。即將發(fā)行的R9版本將支持用戶子程序的動態(tài)調用,但尚未包括該項新功能。有興趣的用戶可以測試LS-DYNA的開發(fā)版并歡迎將建議和需求反饋給我們。

 

作者簡介

*韓志東/Zhidong Han博士1998年畢業(yè)于清華大學計算固體力學專業(yè),于2011年加入LSTC。他目前從事材料損傷斷裂分析及厚殼單元等方面研發(fā)。

 

 

 

 

 

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

18
2
11