請教關於abaqus inp文件及python參數建模問題?
1.我想像ansys apdl語言那樣可以參數化建模,且包含模型的幾何信息。是不是只有利用python才能實現?
2.哪些情況下修改inp文件會比較方便快捷,能否舉例說明下,我一直都是cae操作。對inp一直感覺食之無味棄之可惜。謝謝說的更直接點:
我之前一直用apdl,但現在碰到的項目,裡面非線性接觸太多。用ansys太難做。所以我想用abaqus試試,但用apdl習慣了所以也想在abaqus中實現類似於ansys中的參數化建模(參數信息包含幾何模型和有限元模型)。但看到inp文件中不包含幾何模型,所以想問下利用python是否可以實現在abaqus中如同apdl在ansys中的效果。
我先為apdl說幾句話....首先,我認為apdl已經稱得上是一門計算機語言了,順序,選擇,循環等等一應俱全,能夠進行計算,也就是說你可以用apdl編程,做GUI等等。而且專門為ansys定製,前後處理,求解控制設計的,用起來真的非常好用。
另外,ansys開發workbench很大程度上是為了推廣多場偶和分析,比如力熱耦合等等,簡化操作,並不是因為ansys經典的問題,特別是workbench結構求解器與經典的完全一樣的,只是後台調用。如果樓主做科研的話,apdl是你不二選擇,參數建模,批量後處理一應俱全!
最後,其他建模軟體倒入模型有時候會出現問題,比如複雜模型可能會丟失面。當然,abaqus和卡剔牙是一個公司了,都歸達索,你可以用卡剔牙建模。。。好了開始回答問題:1. 是有python可以實現。但是abaqus的裡面有一些單元是不用用python或者cae建模的,比如用非線性彈簧,這些單元只能在inp設置。(這點有點坑,,,不過python有強大的文本處理工程,可以批量修改生成的inp文件)。就這點來說,apdl比abaqus的python強大很多了。。2. inp文件完全沒有編程功能,裡面包含的都是有限元信息,如node和element,建議你用python(或者其他語言)批量修改inp。相信我,APDL如果好用的話,ANSYS就不會去開發workbench了。我計算過最大的模型有130W個單元,這還只是個中機身的模型,如果用APDL的話,那畫面太美我不敢看。ABAQUS的CAE只是個基礎工具,有一些高級操作也是不支持的,況且現在有ANSA,hypermesh。為啥一定要用CAE呢。
我想題主的需求可能是建立一個參數化的有限元模型來進行相關的計算。常用的建模軟體Hyperworks可以採用Morph實現一定的參數化。更複雜的可以採用更專業的軟體如SFE。採用Python開發可能會比較複雜,重新寫輪子。
用python建模是完全可以的,參數化也不在話下。如果你的模型是可以通過cae直接建立出來的,那麼python腳本只是把你的cae操作轉換成了代碼操作,要知道,幾乎每一步cae操作都對應著一句腳本語言,包括轉視角這種不是很重要的功能都對應有腳本語句(當你看一個模型的jnl文件時,大部分都是轉視角的語句,都有點煩人了)。
也就是說,只要cae支持的建模手段(拉伸,切除,旋轉,提取表面等等),都可以用python來實現。
python操作inp的,和操作字元串是一樣的,所以難點是掌握inp的語法規則,keywords的用法(有的keywords是CAE不支持的)。
我個人是很看好用腳本語言來做參數化建模的(以及提交分析,後處理),腳本方便快捷,改動容易。比CAE操作不知道高到那裡去了。其實abaqus對非線性問題建模和求解能力是很強的。
這個要看你的需求了,如果僅僅是使用現有本構模型和有限元計算,python+abaqus夠用了,如果要實現優化,結合其他演算法,也可以實現,或者python+abaqus+matlab聯合使用,有點編程能力,這些編程語言的問題都是容易解決的。如果要自己開發模型,如材料本構模型,邊界條件等等,就要用fortran語言了。
可以參考一下這個博客:Matlab-python修改ABAQUS的inp計算文件 - 機器人,無人機,編程等學習交流 - 博客頻道 - CSDN.NET
(個人想法)inp文件當中最開始都是節點坐標,然後是單元,再然後是所有的邊界條件、接觸、材料屬性什麼各種。如果參數化建模,你的所有模型的修改都只是節點編號的改變,這樣就可以把問題重點放在人為的根據參數來確定這些節點坐標了。寫個python小程序,自己把節點坐標都寫下來,然後後面一部分完全複製粘貼,就是一個完整的inp文件了,再寫點程序實現自動提交,自動提取想要的結果,就可以實現自行計算了~(這個只能做簡單的結構、規律的結構這種,我自己做過一些螺紋連接的就是這個方法)
正如 @AsAlways 所說,python參數化建模是可以的,但是可能會有一些限制,當然這取決於你模型,至少我至今為止遇到的都能夠解決。 我用python寫過好幾個完全繞過GUI建模,畫網格,定義contact,connector,邊界條件等等的例子,是完全沒有的問題的。實際操作起來的問題在於,Abaqus提供的資料和網上能有的參考資料太少。正因為如此,Abaqus可以和Isight和tosca互相兼容。
推薦閱讀:
※單元剛度矩陣一定是不可逆的嗎?請舉例並說明理由。
※使用軟體進行有限元計算時,保證計算結果精度的具體措施和方法是什麼?
※一個機構的裝配體在solidworks下的simulation中如何做受力分析?