在abaqus中生成voronoi多面體的方法

這篇小文旨在介紹在abaqus中生成Voronoi凸多面體的方法,在模擬晶體或類似結構時,經常需要生成許多相互連接的Voronoi多面體,如1所示。通常方法是利用MATLAB或是其他軟件生成多面體的空間結構,然后導入abaqus進一步處理。此外還有國外學者開發的neper及其衍生軟件可以使用,不過該軟件目前僅支持Linux操作系統,而且往往需要用戶做進一步的開發才能滿足該用戶特定的需求,對于使用者的編程能力要求較高。

1.png


1 Voronoi多邊形示意圖

其實生成Voronoi多面體這一過程不需借助第三方軟件,在abaqus中合理利用腳本也可以實現。Abaqus常用的腳本語言是PythonPython是一種簡單易學的編程語言,而且abaqus腳本學習起來也很輕松,因為用戶在abaqus的圖形界面里每做一個操作,rpy文件就會記錄下對應的腳本命令(一些特殊的操作除外),再配合上help文檔的詳細說明,很多新手也可以在短時間內運用腳本來解決一些仿真中比較繁瑣的問題。

PythonScipy提供了現成的Voronoi類,和MATLAB里的函數一樣,可以提供voronoi各個單元的空間點坐標,有了voronoi類后,我們就可以愉快地使用它了,在使用之前,首先需要生成voronoi多面體的種子點,通常種子點是空間上隨機分布的點,不過如果我們對種子點施加一定的控制,可以生成很多有趣的空間形狀,比如蜂窩狀的空間結構。生成種子點后,將種子點坐標代入類中,就可以建立一個voronoi類了。隨后就可以把這個voronoi類的信息轉化為幾何信息,利用abaqus的建模功能,生成voronoi多面體實體(也就是軟件腳本語言中的cell對象)。

Abaqus提供了從點到線到面到體的生成過程,生成voronoi多面體的過程就很好地體現了這一點:

1. 通過voronoi,可以獲知一個面上的頂點坐標(貼心的是,頂點是按照點的相連順序排布的,而不是亂序,這一點非常重要)

2. 由此就可以生成voronoi某個多面體中的一個面的各條邊:使用腳本命令將該面的各點順次連接生成一個空間上的多邊形線框。

3. 使用geometry editcover edges功能將線框圍住的區域生成1shell,這個shell就是多面體中的一個面了。

4. 對于該多面體中的其他表面,也可以如法炮制,直到生成這個多面體的全部外表面。然后再使用creat solid—>from shell功能,即可生成該多面體。這就是點—>—>—>體生成voronoi多面體的過程。


下面我用一個配圖例子來說明一下以上過程:

首先,在空間內建立一個面上的頂點—邊線關系,為了盡可能簡單,我們采用三角形線框來構成一個面,生成三角形線框步驟如下:

1.使用creat wire功能,輸入各個點的坐標,首尾相連(選擇chained wires)形成一個三角形,點擊ok即可生成線框:                                             

2.png

2 由點生成線框

2.再將另外三條棱邊輸入,獲得四面體的各條棱邊:

3.png

補全四面體的全部棱邊

3.使用Geometry edit工具中的Cover Edges功能,依次封閉各個線框:

4.png

4 封閉線框為殼體

封閉后的殼體如下圖所示,為了表示清楚,這里做了一個剖面:

5.png

殼體示意圖

4.使用create solidfrom shell功能,將殼體填充成實體:

6.png

6 由殼體生成實體

填充后的實體如下圖所示,為了顯示方便,下圖依舊使用了一個剖切面:

7.png

7 實體示意圖

至此,由點坐標信息生成實體的過程就結束了,相應的Python腳本請見附件,將該腳本復制后粘貼至下圖的命令行接口中,即可獲得圖示的四面體模型。利用這種思路,我們可以在空間中生成任意的凸多面體。無論一個Voronoi多面體有多么復雜,利用腳本就可以方便地生成它。

在生成過程中,可以利用腳本,將不同的幾何元素添加到set之中,方便后續賦予材料屬性,添加約束或者接觸,撒布種子點等等功能。通過使用set,從理論上說,使用者可以對每一個點,每一條邊,每一個面和體進行控制,這是neper做不到的。

值得注意的是,voronoi類的屬性提供了三種類型的頂點:1) 整個voronoi多面體的全部頂點vertices2) 各個面上的頂點ridge_vertices3) 各個體上的頂點regions并沒有提供哪些面是屬于哪一個體的,這一點需要用腳本對坐標序號進行篩選判斷,把面和體匹配起來,才能實現上述功能。

最后附上成品效果圖和腳本,CAE附件:

8.png

8  Voronoi示意圖,圖中兩種不同的顏色表示兩種不同的材料

9.png

9 8中的Voronoi多面體進行網格劃分

在abaqus中生成voronoi多面體的方法的圖10sample.txt

CAE下載地址:http://pan.baidu.com/s/1kTYC4Fd,適用版本:abaqus6.11-1及以上

視頻課程網址:http://www.yqgqt.org.cn/college/video/c10097

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

TOP

11
37
31