上一講我們介紹了如何使用matrix獲取HyperMesh資料庫中的資料以及如何把修改後的結果(具體而言是component的名稱)用於更新模型。
這一講進一步介紹如何使用Altair Compose對matrix查詢到的資料進行運算並獲得希望的結果。這次中我們圍繞一個問題來演示matrix+Compose的使用方法。
事不宜遲讓我們開始吧~
問題描述
以下模型中的不同結果是因為某種原因把部分單元上壓力載荷施加了多次。我們希望把重複施加的壓力載荷檢查出來並且刪除掉。下圖是有限元模型。

刪除模型中重複載荷後(左)和之前(右)的變形結果對比如下圖所示。

為了刪除重複載荷,首先需要使用matrix把每個載荷的單元資訊提取出來。
step1
打開Tools>matrix,在DataSource=HMdata,Entities=loads

然後選擇query選擇模型中的所有壓力載荷。

得到的結果如下:

step2
點擊loads列選擇所有load id,在DataSource=HMdata,Entities=loads,Datanames=element,然後選擇query選擇載荷對應的單元id號,由於有重複載荷,結果中有的單元id號會重複出現。

查詢結果如下:

接下來點擊右上角的excel按鈕在excel中打開資料

結果如下:

從檔功能表匯出csv檔,假設保存的路徑為D:\Compose\loads.CSV

step3
啟動Compose並在Compose中輸入如下代碼

點擊Start按鈕運行Compose腳本後會在D:\Compose目錄下生成loadid.csv文件。(不把結果輸出到螢幕上是為考慮到實際工程中的大模型可能有百萬單元,輸出命令會花費很長的時間)。
step4
複製loadid.csv檔中的內容(載荷id號)
step5
打開HyperMesh按F2進入刪除面板,類型選擇loads,在擴展面板中先選擇by id,然後ctrl-v把剪切板中的id號複製進去,然後再在擴展面板中選擇reverse進行反選。點擊delete entity刪除。這樣我們就把模型中的重複壓力載荷全部刪除了。

本講對應的軟體操作視頻如下:
課後練習題
1、怎麼刪除id號較小的重複單元(重複單元是指節點完全相同的單元)?
2、怎麼刪除不屬於某個component的重複單元?
接下來介紹一下Compose,畢竟大家都不熟悉,而且以後可能會經常在工作中用到。
Altair Compose能夠讓工程師、科學家和產品開發者有效地進行數值計算、開發演算法以及分析和視覺化各種類型的資料。Altair Compose是一個高層次和基於矩陣的數值計算語言,也是一個交互、統一的程式設計環境,可以用於從求解矩陣、微分方程到進行信號分析和控制設計所有類型的數學運算。Compose有三大亮點。
亮點1:多語言程式設計環境
Altair Compose相容matlab®語法,可以直接運行.m文件。
Altair Compose支援和python聯合程式設計,支援numpy,scipy等高級資料分析包,Compose和python可以進行變數的傳遞,比如用Compose讀取有限元計算結果,然後傳遞給python進行處理。
Altair Compose環境直接支援TCL,具有語法高亮等功能。

亮點2:高級繪圖功能

2D曲線圖

立體曲面圖

歐拉螺線

散點圖(分形蕨)
亮點3:與HyperWorks其它模組緊密集成
具有全套CAE資料介面
Altair Compose直接使用了HyperGraph的CAE資料介面,這是很重要的一點,因為沒有了資料來源很多事就沒法進行了。Altair Compose編寫的函數可以給HyperGraph和HyperStudy使用。
Altair Compose安裝程式下載連結:
https://solidthinking.com/RequestATrial/
如果想要申請Compose試用,請發送郵件至info@altair.com.tw或直接聯繫本地銷售經理洽詢。