CAE軟件研發(fā)的一些思考(3)--CAE軟件架構(gòu)設(shè)計(jì)

2016-09-03  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

這里的CAE是廣義的,包含了傳統(tǒng)意義上的 CAD/CFD/EDA/CAE/CAPP等
本文的設(shè)計(jì)主要覆蓋軟件工程流程中的概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。因?yàn)榭陀^原因,CAE軟件與軟件標(biāo)準(zhǔn)開發(fā)流程有所不同,設(shè)計(jì)文檔更傾向基于可快速實(shí)現(xiàn)的原型開發(fā)。
設(shè)計(jì)中并不強(qiáng)調(diào)某一模塊的功能,也不追求某一方面的性能效率,而是基于軟件工程,著重搭建一個(gè)通用性,可靠性,穩(wěn)定性,擴(kuò)展性,可測試性,維護(hù)性優(yōu)秀的CAE軟件平臺。基于此平臺,既可以開發(fā)大型通用有限元軟件,也可以快速開發(fā)出行業(yè)CAE軟件產(chǎn)品。

第一部分:模塊劃分
根據(jù)功能分以下幾大模塊:
1. 輸入輸出(Input/Output或 I/O)
2. 幾何
3. 有限元模型
4. 后處理器
5. 求解器
6. 圖形
------------------------------------------------------
7. 公共模塊
8. 高性能計(jì)算(HPC)
9. 參數(shù)優(yōu)化設(shè)計(jì)

用例圖(略)

第二部分:詳細(xì)設(shè)計(jì)
1.  輸入輸出模塊(Input/Output)
1.1.文件的讀入與寫出。文件類型包括:
1>. 軟件自定義的工程文件
2>. 標(biāo)準(zhǔn)的CAD文件(DWG/Step/IGS/SAT/X_T/STL/Model/等)
3>. 標(biāo)準(zhǔn)有限元模型文件(bdf/cdb/inp/k/NEU/ModelFlow/I-deas/Ansa/Mar/Admin等)
4>. 標(biāo)準(zhǔn)的行業(yè)CAD文件 (制衣CAD格式,PCB板CAD格式等)
需要說明的是第四種文件,該文件的格式數(shù)據(jù)通常包含了幾何描述信息和屬性,幾何描述信息是指無幾何的拓?fù)湫畔?比如一個(gè)長方體,幾何描述信息是用初始點(diǎn)坐標(biāo)和長,寬,高四個(gè)參數(shù)來表示,而沒有實(shí)際的點(diǎn)線面體拓?fù)湫畔?,讀入該類文件后,需要用CAD內(nèi)核重新建立模型。
類圖

1.2. 外部接口
通常CAE軟件能夠供其他軟件調(diào)用,或者作為其中一個(gè)模塊,也能夠?qū)崿F(xiàn)參數(shù)化命令行調(diào)用。
CAE軟件研發(fā)的一些思考(3)--CAE軟件架構(gòu)設(shè)計(jì)


2. 幾何模塊(Geometry)
這里的幾何指廣義上的CAD,包含了幾何的創(chuàng)建,編輯,管理等。一般的商業(yè)CAE軟件提供了CAD功能,都比較簡單。對于復(fù)雜的實(shí)際工程,很少在CAE軟件中建模,而是在專業(yè)CAD軟件(Catia/UG/ProE/Inventor等)或者行業(yè)CAD軟件中建立幾何模型,然后導(dǎo)入到CAE軟件中。所以CAD不是CAE軟件的重點(diǎn),但是好的CAD模塊能提高CAE仿真的效率,避免外部CAD數(shù)據(jù)與CAE接口之間的損耗(最典型的就是CAD數(shù)據(jù)修補(bǔ))。CAD建模本身也是一項(xiàng)技術(shù)含量很高的工作(參數(shù)建模,約束建模),而且Catia/UG/ProE/Inventor這些產(chǎn)品在CAD方面已經(jīng)做的非常好了。CAD與解方程組數(shù)值算法一樣,也是基礎(chǔ)性學(xué)科領(lǐng)域。

這里不涉及通用的CAD建模,重點(diǎn)在建立CAD模板。所謂的模板是指可反復(fù)使用,用戶輸入?yún)?shù)或者導(dǎo)入模板參數(shù)文件,即可建立所需的CAD模型,不需要用戶手工去生成。(比如用戶定義了一架飛機(jī)模型參數(shù),參數(shù)可以保存為文件,生成實(shí)體幾何后,修改機(jī)翼長度的參數(shù),可再次生成模型而不用做其他修改)。這也是專業(yè)CAD軟件的優(yōu)勢所在。

CAD建模,首先需要內(nèi)核,目前商業(yè)的3D CAD內(nèi)核有Parasolid和ACIS,Granite,開源的OCC。國內(nèi)的CAD軟件長期沒有自主核心技術(shù),在CAD內(nèi)核方面也鮮有成熟產(chǎn)品。

3. 有限元模型(FE Model)
3.1. 單元CAE軟件研發(fā)的一些思考(3)--CAE軟件架構(gòu)設(shè)計(jì)
面向?qū)ο蠓椒ê苓m合構(gòu)造有限元中的單元,ElementType為所有單元的基類。主要方法有:點(diǎn)的集合,材料,分析類型,階次。根據(jù)單元的空間維數(shù)將單元劃分為 0/1/2/3D單元。如需擴(kuò)充新單元類型,在相應(yīng)的單元類型上派生即可。

3.2. CAD和CAD屬性(邊界條件)
這里邊界條件泛指任何在幾何(點(diǎn),線,面,體)上的屬性(位移/荷載/溫度/吸收邊界/約束。。。)
CAE軟件研發(fā)的一些思考(3)--CAE軟件架構(gòu)設(shè)計(jì)

CYCAD_Controller 負(fù)責(zé)獲得幾何數(shù)據(jù)和附加在幾何上的屬性(邊界條件)。CYCAD_Data存儲幾何數(shù)據(jù),CYCAD_Attribute存儲與幾何對應(yīng)的屬性。CYCAD_Engine是CAD內(nèi)核的接口,通過接口也可以調(diào)用自己開發(fā)CAD內(nèi)核?;谠摻Y(jié)構(gòu),實(shí)現(xiàn)了CAD與MESH的解耦,對于已經(jīng)有的CAD/Mesh接口,能實(shí)現(xiàn)最小限度的修改。

3.3. 網(wǎng)格劃分
CAE軟件研發(fā)的一些思考(3)--CAE軟件架構(gòu)設(shè)計(jì)
從名稱可以看出采用了Factory和Facade模式,CYMesh_Facade負(fù)責(zé)與外部的接口,主要是設(shè)置1. CAD數(shù)據(jù),2. CAD屬性(材料,荷載,溫度,邊界等),3.網(wǎng)格劃分參數(shù)和策略。Controller主要負(fù)責(zé)Mesh流程,CYMesh_Engine 是執(zhí)行Mesh引擎的接口,可以根據(jù)實(shí)際需要選用網(wǎng)格引擎,以上選取了Gmsh,NetGen,Distene,VKI等,在此結(jié)構(gòu)上,開發(fā)人員可以方便的對網(wǎng)格劃分流程和網(wǎng)格引擎進(jìn)行擴(kuò)展。

3.4.網(wǎng)格屬性
網(wǎng)格劃分完成后,通常做法是把網(wǎng)格數(shù)據(jù)保存為規(guī)定的文件格式以供求解器調(diào)用。也有直接在內(nèi)存中供求解器調(diào)用的,雖然提高了效率,但是不利于調(diào)試。對于自主開發(fā)的求解器,可以把網(wǎng)格導(dǎo)出為Ansys/Nastran等求解器的格式,以方便做Benchmark。
網(wǎng)格的數(shù)據(jù)包含了如下信息:
1. 節(jié)點(diǎn)信息: 索引和坐標(biāo)(Vertex)
2. 邊信息:索引和點(diǎn)索引(Edge)
3. 面片信息:索引和邊索引(Face)
4. 單元信息:索引和節(jié)點(diǎn)索引(Element)
通常以上信息只需得到 點(diǎn)和單元的信息,其它都可以求出。
5. 屬性標(biāo)簽:加在幾何上的屬性會分配在相應(yīng)的網(wǎng)格單元或者節(jié)點(diǎn)上。(邊界條件/荷載/材料 等)

網(wǎng)格活動圖:
CAE軟件研發(fā)的一些思考(3)--CAE軟件架構(gòu)設(shè)計(jì)
說明:
1. Mesh Data為 網(wǎng)格數(shù)據(jù)
2. Validate Mesh quality 驗(yàn)證網(wǎng)格的質(zhì)量,網(wǎng)格質(zhì)量指單元的形狀的好壞,有通用的公式計(jì)算(比如最大角度,長寬比,Aspect ratio/Skew 等)。網(wǎng)格質(zhì)量的好壞直接影響到求解精度
3. Output to Mesh file導(dǎo)出為網(wǎng)格文件
4. Run Solver 調(diào)用求解器
5. Need refine:根據(jù)求解器反饋的結(jié)果和預(yù)定義的收斂準(zhǔn)則,判斷是否需要加密網(wǎng)格
6. Refine Mesh: 加密網(wǎng)格

4. 后處理
后處理是對仿真結(jié)果的處理,包括可視化,歸納分析,導(dǎo)出報(bào)告,與實(shí)驗(yàn)數(shù)據(jù)對比等。技術(shù)上來講沒有太多瓶頸,主要是數(shù)據(jù)的組織,再就是大數(shù)據(jù)顯示的效率。
3.1. 可視化主要包括等值線,云圖,XYplot,動畫等,
3.2. 歸納分析,是指對仿真的原始數(shù)據(jù)進(jìn)行加工,得到所需要的參數(shù),比如VonMises應(yīng)力,S參數(shù)等。
3.3. 與實(shí)驗(yàn)數(shù)據(jù)對比,這個(gè)也是以后CAE仿真的一個(gè)發(fā)展方向:即如何將仿真得出的數(shù)據(jù)與實(shí)驗(yàn)數(shù)據(jù),保證仿真數(shù)據(jù)具有實(shí)際參考價(jià)值。
后處理主要用到圖形顯示模塊。
目前市場上比較通用的商業(yè)后處理器:Ensight,HyperView,Femap。

5. 求解器
求解器核心是求解偏微分方程(PDE),有限差分/有限元/有限體積等數(shù)值方法二三十年前就已經(jīng)很成熟,功能上沒有太多難點(diǎn)。開發(fā)求解器主要在穩(wěn)定性,擴(kuò)展性,效率以及定制化等方面還有很多改進(jìn)余地。開發(fā)求解器面臨的主要問題是非技術(shù)問題,就跟鍵盤布局一樣,大家用習(xí)慣了,再出來新的除非特別優(yōu)秀或者有足夠多的亮點(diǎn),否則用戶很難認(rèn)可。拿求解器Radioss來說,Altair聲稱兼容Nastran,但是行業(yè)認(rèn)可度并不高。另一個(gè)例子是Comsol,Comsol在求解器,前后處理上并無太多亮點(diǎn),但打出了多物理場的旗號,并且在多物理場建模方面也確實(shí)提供了一些便利。
CAE軟件研發(fā)的一些思考(3)--CAE軟件架構(gòu)設(shè)計(jì)
求解器涉及的領(lǐng)域有結(jié)構(gòu),電磁,熱,聲,光,流體等領(lǐng)域,可參考附件。

6. 圖形
該模塊包括以下幾部分:
1. 幾何模型,有限元模型,結(jié)果的可視化
2. 幾何有限元模型的圖形化編輯
3 GUI設(shè)計(jì)

1. 幾何模型,有限元模型,結(jié)果的可視化
可視化開發(fā)工具首選OpengGL,使用OpenGL需要較深的圖形學(xué)功底。目前絕大部分可視化工具都是基于OpengL。也有些公司在OpengGL之上做了封裝,提供了更高層次的調(diào)用接口。
開源可視化工具VTK,ParaView。
也有提供商業(yè)可視化工具的(VKI/HOOPS/Gravies/),價(jià)格不便宜。

2. 幾何/有限元模型的圖形化編輯
涉及到編輯幾何,編輯網(wǎng)格。允許用戶通過鼠標(biāo),輸入等方式編輯幾何和網(wǎng)格,支持更復(fù)雜的功能(比如裝配體的網(wǎng)格組合)
CAE軟件通常采用卡片式編輯,即在一個(gè)ListView中按Index顯示所有內(nèi)容,提供編輯,刪除,添加等,在新的窗口中實(shí)現(xiàn)功能。

3. GUI
圖形化用戶接口開發(fā)工具有MFC,QT,WPF等。最近十年QT的發(fā)展已有超過MFC的勢頭。作為GUI開發(fā)工具,QT具有使用簡單,不依賴平臺,開發(fā)資源豐富等特點(diǎn),可作為開發(fā)的首選。

因?yàn)镚UI涉及到軟件的每個(gè)部分,同樣,為了建立兼容的CAE開發(fā)平臺,在開發(fā)之初最好能確定GUI工具,以后就不再改動。

7. 公共模塊
公共模塊沒有太多核心技術(shù),實(shí)現(xiàn)也沒有難點(diǎn),但在CAE開發(fā)中相當(dāng)重要,尤其到開發(fā)的中后期,公共模塊的重要性更加突出。一個(gè)好的公共模塊能大大提高開發(fā)測試效率。
CAE軟件研發(fā)的一些思考(3)--CAE軟件架構(gòu)設(shè)計(jì)
公共庫主要包括 字符操作,數(shù)值計(jì)算,基本數(shù)據(jù)結(jié)構(gòu),錯(cuò)誤返回代碼定義,圖形算法,常用算法,矩陣類等。
CYMatrix_Operator是定義的一個(gè)中間矩陣類,主要是統(tǒng)一矩陣操作的接口??紤]到求解器用的矩陣庫各不相同,通過此接口可以統(tǒng)一,但性能上會有所降低。

8. HPC(High performance computation)
參考 FEM之求解器加速(1)---HPC簡介
9. 參數(shù)優(yōu)化設(shè)計(jì)
參考 FEM之優(yōu)化算法(1)

總結(jié):
1. 本文只是一個(gè)初步的架構(gòu)設(shè)計(jì),其中有很多細(xì)節(jié)很難用文檔來描述。
2. 設(shè)計(jì)中參考了如下軟件:
ANSA/Catia/SolidWork/Patran/Nastran/Ansys/Abaqus/HyperWork/HFSS/FEMAP/LMS/ADMIN/Comsol/Cubit/SimLab

寫文本的目的只想說明,不管是開發(fā)大型通用CAE軟件,還是行業(yè)的CAE軟件,在技術(shù)上都是可行的。
還是那句話:在國內(nèi)開發(fā)一個(gè)Ansys/Nastran 量級的CAE產(chǎn)品,任重而道遠(yuǎn)~
我的更多文章:
  • (2014-11-12 11:47:57)
  • (2014-11-12 10:39:38)
  • (2014-10-30 10:53:00)
  • (2014-10-27 21:57:33)
  • (2014-10-27 09:16:51)
  • (2014-09-29 12:56:12)
  • (2014-09-28 07:36:43)
  • (2014-09-03 20:33:31)
  • (2014-09-03 15:19:08)
  • (2014-08-06 21:50:41)

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

相關(guān)標(biāo)簽搜索:CAE軟件研發(fā)的一些思考(3)--CAE軟件架構(gòu)設(shè)計(jì) 有限元技術(shù)培訓(xùn) 有限元仿真理論研究 有限元基礎(chǔ)理論公式 能量守恒質(zhì)量守恒動量守恒一致性方程 有限體積法 什么是有限元 有限元基礎(chǔ)知識 有限元軟件下載 有限元代做 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) 

編輯
在線報(bào)名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進(jìn)行在線報(bào)名,我們會及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com