ABAQUS程序化建模教程(一)——Python基礎(chǔ)

2016-12-10  by:CAE仿真在線  來(lái)源:互聯(lián)網(wǎng)





太長(zhǎng)不想看

1.Python是提高你Abaqus建模和后處理的利器。學(xué)好Python會(huì)嚴(yán)重提升逼格;


2.CAE中三種數(shù)據(jù)結(jié)構(gòu),需要了解;


3.建模的三種方式:點(diǎn)鼠標(biāo)到手抽筋式;命令行強(qiáng)擼python裝逼式;腳本文件沒(méi)朋友式;


4.懶漢可以通過(guò)jnl文件學(xué)習(xí)每一步操作所對(duì)應(yīng)的Python命令。



程序化建模這個(gè)系列,小胖很猶豫要不要開(kāi)。因?yàn)樾∨肿约阂彩前肫看?基本都是碰到問(wèn)題上網(wǎng)搜,python學(xué)習(xí)得也并不系統(tǒng)。記得做第二個(gè)模擬項(xiàng)目的時(shí)候,整個(gè)模型有186個(gè)施工步,每一步都需要對(duì)荷載、單元生死、瞬態(tài)分析步等進(jìn)行調(diào)整,光是set就大幾百個(gè)。開(kāi)始的時(shí)候小胖很誠(chéng)心的一個(gè)個(gè)操作,玩了一天,右手中指抽筋(是真的抽筋,劇痛)。第二天不敢繼續(xù)了,迫不得已拾起腦子,開(kāi)始尋找能讓我飛的方法。從那時(shí)開(kāi)始接觸python,到現(xiàn)在也有六七年了,總體感覺(jué)就是這是一個(gè)很人性化的語(yǔ)言和工具,前途不可限量(雖然現(xiàn)在已然是主流)。


Abaqus采用Python作為接口語(yǔ)言進(jìn)行計(jì)算的前、后處理。采用Fortran進(jìn)行設(shè)計(jì)計(jì)算過(guò)程的二次開(kāi)發(fā)。所以,一般我們說(shuō)Abaqus的二次開(kāi)發(fā),是指通過(guò)Fortran編制子程序?qū)崿F(xiàn)對(duì)Abaqus自身計(jì)算功能的拓展。而采用Python進(jìn)行的程序化建模,小胖認(rèn)為并不能算是二次開(kāi)發(fā),只是一種比較高效的用戶自定義建模方法。


廢話少說(shuō)了。今天先簡(jiǎn)單介紹一下Python吧,算是這個(gè)系列的一個(gè)開(kāi)頭。


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元技術(shù)圖片1
Python的創(chuàng)始

ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元技術(shù)圖片2


Python在英文里是巨蟒的意思(插一句,算盤坊英文名小胖定為Abacus Workshop,abacus就是算盤的意思,所以寶寶們不要再留言提醒我應(yīng)該用abaqus了)。它是一種面向?qū)ο?、直譯式的計(jì)算機(jī)語(yǔ)言。相比于老古董fortran,它甚至有些人類語(yǔ)言的風(fēng)格(當(dāng)然是英文,想什么呢)。


Python由河南(Netherlands)人Guido van Rossum創(chuàng)始。因?yàn)?989年時(shí)的他癡迷BBC一款電視劇Monty Python's Flying Circus(蒙提·派森的飛行馬戲團(tuán)),并且當(dāng)時(shí)想用業(yè)余時(shí)間開(kāi)發(fā)一套新的腳本語(yǔ)言和相應(yīng)的解釋器,于是便“很隨意”地將這款新的腳本語(yǔ)言命名為Python。二十多年過(guò)去了,Python的確發(fā)展成一個(gè)龐然大物,并風(fēng)靡地球上的智人社會(huì)。到現(xiàn)在Guido(60歲了)仍然活躍在Python社區(qū),被稱為“仁慈的獨(dú)裁者”(Benevolent Dictator For Life)。各位有興趣可以訪問(wèn)鏈接

https://gvanrossum.github.io//


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元技術(shù)圖片1
Python的能力

ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元技術(shù)圖片2


1. 我們先來(lái)看看使用python編寫的應(yīng)用(from wiki),寶寶們看看有沒(méi)有你們熟悉的:


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元仿真圖片5


2. Python中和我們數(shù)值計(jì)算相關(guān)的一些庫(kù)(初學(xué)寶寶可以把庫(kù)理解為一個(gè)裝滿特定功能的python函數(shù)的容器,需要的時(shí)候直接調(diào)用即可)。


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元仿真圖片6


其中小胖最喜歡第一個(gè)Matplotlib庫(kù)。可惜它的創(chuàng)始人在2012年英年早逝。大家可以欣賞一下Matplotlib的作圖效果(from official site: http://matplotlib.org/)。這些圖都有相關(guān)代碼可以復(fù)制粘貼哦。


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元仿真圖片7


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元技術(shù)圖片1
Abaqus與Python

ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元技術(shù)圖片2


寶寶們看到Abaqus的CAE及ODB,可能感覺(jué)像個(gè)黑匣子,不知道也沒(méi)興趣知道里面到底是啥。但了解一下Abaqus模型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),對(duì)你更高效地利用Abaqus會(huì)大有裨益。還是那句話,有事問(wèn)幫助文件,學(xué)會(huì)自學(xué)。


我們先看下Abaqus Scripting User's Manual怎么說(shuō)的:


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元圖片10


從這張圖可以很清楚地看到Abaqus/CAE和Python的關(guān)系。有三種方式可以溝通你和CAE的關(guān)系:

(1)GUI;也就是你鼠標(biāo)在CAE界面的操作,也就是那個(gè)把小胖累得中指抽筋的方法;

(2)命令行接口(CLI);見(jiàn)下圖,箭頭所指示的地方就是;


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元圖片11

(3)script;即編寫的獨(dú)立的python腳本文件。事實(shí)上,第2條所輸入的命令完全可以放到一個(gè)python腳本文件中(.py文件)單獨(dú)運(yùn)行,所以這兩者沒(méi)有本質(zhì)的區(qū)別。腳本文件的運(yùn)行方法如下,選擇Run script,然后選擇你要運(yùn)行的腳本(.py文件)即可。


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元培訓(xùn)教程圖片12


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元技術(shù)圖片1
Abaqus前后處理的數(shù)據(jù)結(jié)構(gòu)

ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元技術(shù)圖片2


數(shù)據(jù)需要有一定的結(jié)構(gòu)才能進(jìn)行高效的存儲(chǔ)、傳輸和調(diào)用。Abaqus/CAE中有三種不同的存儲(chǔ)數(shù)據(jù)的對(duì)象,分別為:session、mdb和odb。其中,session可以理解為定義一些界面內(nèi)即時(shí)顯示的命令、函數(shù)的集合,比如定義視角等命令;mdb就包含一些實(shí)質(zhì)的內(nèi)容了,比如模型本身的數(shù)據(jù)如part、section、material等相關(guān)命令,以及job相關(guān)的命令和函數(shù);odb顧名思義就是結(jié)果文件的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。我們可以參考下圖:


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元培訓(xùn)資料圖片15


其中,container(容器)指的是包含多個(gè)同類對(duì)象的對(duì)象,有點(diǎn)拗口。比如,step這個(gè)container就包含了你模型中所有的step信息,你可以通過(guò)step進(jìn)行調(diào)用。singular object就是一個(gè)單一類型的對(duì)象,如session、mdb等。


各個(gè)對(duì)象具體的結(jié)構(gòu),寶寶們可以參考Abaqus Scripting User's Manual 6.1,一目了然。


大概了解CAE的數(shù)據(jù)結(jié)構(gòu)之后,各位就可以在文件ABAQUS SCRIPTING REFERENCE GUIDE中按圖索驥,找到自己所需要的命令了。


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元技術(shù)圖片1
如何快速上手

ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元技術(shù)圖片2


其實(shí)也沒(méi)有特別好的辦法。你在CAE中的每個(gè)操作,Abaqus都會(huì)做記錄,并生成相應(yīng)的jnl文件。見(jiàn)下圖:


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元仿真圖片18


推薦各位寶寶用ultraedit、editplus之類的專業(yè)編輯器打開(kāi),結(jié)構(gòu)形式很明顯,非常有美感。我們打開(kāi)一個(gè)來(lái)瞅瞅。


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元仿真圖片19


熟悉Python的寶寶都知道“from xxx import *”的含義。類似于c/cpp里面的include(暫時(shí)可以這么理解吧)。如果寶寶們?cè)谳斎朊钸^(guò)程中出現(xiàn)以下錯(cuò)誤:


ABAQUS程序化建模教程(一)——Python基礎(chǔ)abaqus有限元資料圖片20


各位就應(yīng)該及時(shí)想到是否落掉了一些庫(kù)沒(méi)有import。事實(shí)上,為了保險(xiǎn)起見(jiàn),建議各位每次在命令窗口運(yùn)行命令之前都先把所有的庫(kù)import一遍(XD)。


好了,各位上班第一天,就不多說(shuō),以免給各位添堵。下次小胖先給各位整幾個(gè)建模過(guò)程中常用的命令,比如批量修改step、model change之類的。不著急,慢慢來(lái)。


(完)


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

相關(guān)標(biāo)簽搜索:ABAQUS程序化建模教程(一)——Python基礎(chǔ) 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