有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結

(原創,轉載請注明出處)

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖1有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖2==概述==

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖3本系列文章研究成熟的有限元理論基礎及在商用有限元軟件的實現方式。有限元的理論發展了幾十年已經相當成熟,商用有限元軟件同樣也是采用這些成熟的有限元理論,只是在實際應用過程中,商用CAE軟件在傳統的理論基礎上會做相應的修正以解決工程中遇到的不同問題,且各家軟件的修正方法都不一樣,每個主流商用軟件手冊中都會注明各個單元的理論采用了哪種理論公式,但都只是提一下用什么方法修正,很多沒有具體的實現公式。商用軟件對外就是一個黑盒子,除了開發人員,使用人員只能在黑盒子外猜測內部實現方式。

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖4有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖5

一方面我們查閱各個主流商用軟件的理論手冊并通過進行大量的資料查閱猜測內部修正方法,另一方面我們自己編程實現結構有限元求解器,通過自研求解器和商軟的結果比較來驗證我們的猜測,如同管中窺豹一般來研究的修正方法,從而猜測商用有限元軟件的內部計算方法。我們關注CAE中的結構有限元,所以主要選擇了商用結構有限元軟件中文檔相對較完備的Abaqus來研究內部實現方式,同時對某些問題也會涉及其它的Nastran/Ansys等商軟。為了理解方便有很多問題在數學上其實并不嚴謹,同時由于水平有限可能有許多的理論錯誤,歡迎交流討論,也期待有更多的合作機會。

iSolver介紹視頻:

http://www.yqgqt.org.cn/college/video/c12884

==第21篇:自主CAE開發實戰經驗第二階段總結==

有限元基礎理論和Abaqus內部實現方式研究系列的文章已經完成了20篇,我們每十篇將寫一篇自主CAE的總結,網上分析自主CAE的得失的文章已經很多了,我們站的角度不同,不是從國家戰略的層面上來呼吁自主CAE的重要性,這邊的總結僅僅結合結構有限元求解器iSolver的開發具體談談實現自主CAE過程中的切身經驗和體會。上一次的總結文章有興趣的可以看下面的鏈接:

第十一篇:自主CAE開發實戰經驗第一階段總結。介紹了iSolver開發以來的階段性總結,從整體角度上介紹一下自主CAE的一些實戰經驗,包括開發時間預估、框架設計、編程語言選擇、測試、未來發展方向等。

                                          http://www.yqgqt.org.cn/content/post/532475

本文主要是第二階段的開發經驗總結,iSolver上一階段主要是技術功能的開發研究,而第二階段在開發新功能的同時,在推廣和工程化應用的過程中有了更深的體會。

1.1 十年實現自主CAE很難,那要是一百年呢?

自主CAE軟件,無論是理論水平還是軟件開發能力,國內比我們做的好的比比皆是,有些不愿意公開宣傳,有些在滿頭練內功。我們更希望和大家交流,得到大家的反饋,深入的討論具體怎么實現自主CAE的方案和實踐。也許我們這一代永遠替換不了商軟CAE,但至少我們可以一起策劃未來怎么替代,替代過程中有哪些雷區我們可以先嘗試一下,節約后來者的研究時間,并且可以留下個樣板房,大家可以從中看到自主CAE不是那么遙不可及,還可以像愚公移山一樣留給下一代人去解決。iSolver的目標也是希望做一個求解器的開發平臺,大家可以在這個平臺上更加快捷和深入的學習有限元知識,對國內做自主CAE的人也可以降低編程難度,當效率提高了,才可能省下時間來專心研究算法和后面的商業化推廣,很多時候開發自主CAE的同行并不缺少技術和推廣的能力,也能找到些自由支配的時間,但可惜很多時候被開發效率和協同而白白浪費了,而且很難積累。自主CAE需要的是百花齊放百家爭鳴,現在用戶對國內的CAE基本不相信,無論你是做什么行業什么專業的,當大家都花時間在潛心研究自主CAE時,才可能把自主CAE真正做到實處,給客戶信心,新的自主CAE也更容易被客戶接受。

                                             

1.png

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖7

現在的國外CAE一套動輒數百萬,這個定價明顯虛高,小企業根本承擔不起,很大程度是壟斷造成的,只有中國國內有了可替代的方案,國外的CAE軟件的價格才會主動降下來,這對我們每個企業來說可以省掉一大筆經費。而且國外CAE還有各種限制措施,國防關鍵工程不能用,license節點數目受限,內部計算方式不公開,這些都需要國內自主CAE成長起來才有談判資格。

1.2 撥開重重的迷霧,商業CAE軟件開發還是有跡可循的

1.2.1 商業化的思維

很多做技術的人都看不起商業化,那是不是可能因為恰恰是我們商業化做的不好或者根本無力做商業化推廣呢?我們以前一直從事技術方面的開發工作,以前覺得技術是最重要的,但在自主CAE商業化推廣摸索一段時間后,才發現技術是最次要的,商業化推廣更重要,當你商業化做的好的話技術是可以用商業搞定的,看看最近幾年大廠商在不斷的合并就知道了。

在以前,商業化肯定只能是靠金錢才能堆出來,但現在網絡資源很多,傳播途徑和范圍也可能現象級的,同時有些成本都可以忽略,這也給了大家更多的機會方便的宣傳自己的產品,使得自主CAE的宣傳有可能和商軟在同一個舞臺了,就像現在的技術鄰一樣。

2.jpg

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖9

1.2.2 學會取舍

幾乎所有的工程師都會夢想提出一套方案解決所有問題,并為之付諸半生的努力奮斗,最終毫無意外地折戟沉沙。需求是無限的,軟件能力是有限的,明確的定位和務實的發展計劃是自主CAE軟件一開始就需要考慮的。國內許多高校和研究機構曾經研發出了優秀的CAE軟件,卻沒有能夠堅持下來,除了受國外商軟的沖擊外,很大一部分源于自身的定位迷失和不合理的發展計劃,在某些項目中成功實施后,膽大的全線鋪開大踏步前進,死在追求“通用”的路上;膽小的猶猶豫豫原地徘徊,迷失在尋找“通用”的路上。“通用”似乎是一個有魔力的詞,是所有軟件都繞不開的坑。直至目前為止,國內的大多數研究機構和高校仍然沉迷于通用數據格式、通用數據接口、通用功能等字眼,卻不知若干年前有一種詞叫“中性”。取舍是這個階段最重要的能力和品質,對需求進行取舍,在取舍的過程中把握住行業的動向,看清楚自身的能力和特點,明確自身定位,制定切實可行的發展計劃。

3.jpg

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖11

1.2.3 應用為王

應用有兩種:

第一種是深度:做個超大工程證明自主CAE的求解能力,千萬網格量級以上,多少p以上級別的超算資源,而且還要連續算個幾天幾夜以上,這種高檔飯店的應用一個完整的例子就能測出程序的計算速度和內存,優化你的程序結構。優點是展示度好,領導們重視,缺點是一個項目做完,很難推廣到另一個項目,再重來一遍,從另一方面來說,這也是優點,一次做完了,后面哪還有項目。

第二種是廣度:就是大眾化的誰都可以拿來直接算算的小問題,這種問題一般幾萬個網格就夠了,普通pc機上都可以運行,時間差不多5分鐘也就運行完了。如果你的目標是產品開發,那么對程序開發起到更大作用的是這種路邊大排檔的應用,這種應用才能給自主CAE快速的反饋,形成批量的改進意見,指引我們產品的開發方向,然后產品版本不斷的迭代。

4.jpg

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖13

現在國內自主CAE基本都是第一種大工程的應用,第二種普通的應用難做、沒展示效果,而且也沒法考核。所以現在的課題等基本都是以XX大型項目為示范驗證,導致很多做自主CAE為了完成項目更是只能花大把時間去做前面點上的應用,而沒有精力去做后者面上的應用。

第二種普通的應用難做,我們覺得相對技術來說,另兩個問題更突出:

(1)   用戶對商軟的深度依賴。也許有一天國外斷供,打開軟件發現無法啟動然后又要完成以前的任務時,可能才能意識到自己對商軟是何等的依賴。

(2)   用戶對國內自主CAE軟件的不信任。不僅是結果的正確性,還有軟件的用戶體驗和發展前景等,轉換平臺是要花費成本的,不光是時間,還有對未來的投資。

而現在應用國外商軟占壟斷地位的情況下,如何在普通的應用上推廣自主CAE呢?我們覺得必須和商軟結合,接口按商軟標準開發,和商軟對接轉換數據,甚至在商軟平臺上做二次開發和集成,做那些只是修修補補、搞個界面看起來毫無技術含量的定制,在商軟的世界中摸爬滾打,一個項目也許你99%的工作都獻給了商軟,但至少還有1%的經驗留給了自己,那么等你做到100個仿真二次開發和商軟集成的項目時,你也可以第一線理解商軟的應用場景,理解客戶的業務流程,從而基本了解自主CAE往后怎么應用了。這也是商軟的核心,只是大部分人都認為二次開發就是搞個界面最沒有技術含量,領導不重視,也沒經費,更不能發文章。黑貓白貓,抓到老鼠就是好貓,對客戶來說,只要能滿足我的業務需求就行,至于底下是不是商軟還是自主的,不重要,等到了你能編出上層的業務界面后,那么底層才有機會用自主CAE來替代商軟。

1.2.4 不缺技術,但缺平臺

國內做有限元理論和算法研究出色的不在少數,在有限元的技術方面國內并不缺少,況且有限元軟件總是滯后于最新的有限元理論技術的。但技術好和將技術轉化為代碼形成產品是兩回事,可能是兩批人,兩個公司,兩個領域。整合這些有限元技術,讓軟件在不斷吸收外部技術的同時還能往前發展,需要的是一個技術積累的平臺。這個平臺我們認為應該具備兩個最基本的特點:

(1)   可擴展。這個平臺首先要求是架構完善,可擴展性很強,已經考慮了對未來的技術方面的積累,新功能在平臺中能找到位置。這個需要花費大量的時間去調研,甚至在你編第一行代碼前,如果你做的CAE軟件有對標軟件的話,那么就對標商軟的架構研究是一個好途徑,商軟是個黑盒子,但很多情況在外面的表現也可以猜到內部是怎么實現的,然后再找開源代碼或者編寫小程序去證明一下。同時開源代碼的架構也是不錯的研究對象(如果是研究開源的算法,還是要謹慎的,商軟一般都會修正)。

(2)   易維護。這個平臺的快速迭代和維護應該也是在你的團隊能力之內的。在國內,除開個別國家單位,自主CAE在實現商業化應用前都是純投入,而且沒有個幾年時間基本不會出成果,上面的領導和一起作戰的兄弟們都需要養家糊口完成經濟指標,只能擠時間開發,那么平臺的可維護性就極其重要。在外人看來,只要技術上可行,時間不是問題,可以加人、可以加班。要是協同和加班能搞定的都是小問題,平臺有些技術上的缺陷很可能是人數越多開發越慢,團隊所有人7X24小時還完不成的。現在很多都基于開源代碼開發,這個要分情況的,如果你不準備修改開源代碼,那么沒問題,集成個初步版本看到效果是很快的,后面開源軟件升級時還能一塊升級。但如果你后面還需要維護和功能的添加,那就很考驗團隊消化能力了,不是自己編的代碼理解是要花大量時間的,在整個可能超過10年的CAE開發過程中,基于開源代碼花費的時間不一定比從零開發少,而且,還沒有知識產權,有時還不如自己開發,就當是一場馬拉松,不在乎起跑,只在乎終點。

平臺的優劣直接決定了積木壘起來的高度,決定你的技術轉換為軟件代碼所能達到的高度。平臺沒做好,現有的代碼就如同建立在流沙上的房子一般,總有一天會被沖垮,甚至是現有代碼越多,反而為了兼容以前的代碼更是難以發展,只能帶著腳鏈前行,前面的坑還沒填好,后面又在坑上建房子了。

5.jpg

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖15

1.3 前面依然是商軟CAE的崇山峻嶺,但至少我們找到了一個上山的平臺

在研究商軟實現方式的過程中,很多次發現商軟都比我們預想的復雜,譬如殼單元的剛度矩陣,我們以為研究清楚了Abaqus中S4R、Nastran的Quad4等的修正方式,然后編程在iSolver中實現,結果卻發現商軟后面有更多的修正,再譬如雖然我們現在做的是求解器,但我們知道后面還有“前后處理”更麻煩,遠比我們做求解器花的時間更多。商軟后臺的有限元大師和軟件架構工程師們就像一個個絕世的高手,編寫了絕妙的解決工程問題的算法,在一個我們現在都無法測量高度的山峰上等待著別人去探尋,同時設置了無數的小山坡消耗你的體力。高手們可以騰云駕霧,但我等資質平庸之輩只能老老實實一個一個山坡努力的往上爬,希望有朝一日領略到最后的山峰有多高,多雄偉。

我們并不是什么理論大牛,可能理論水平還沒有讀文章的你高,這么多年來一直在發展進步僅僅是我們有一個還算完善的有限元開發平臺iSolver。這個平臺還有很多不足之處,但起碼滿足了前面我們所說的兩個特點:

(1)   可擴展。整體按增量迭代法的流程實現,功能點的擴展都以子程序的形式單獨添加,子程序的接口按Abaqus標準開發,框架和子程序完全獨立,可由不同的人維護。

(2)   易維護。我們從零開始整套代碼自己編程實現,對內部的技術細節都非常清楚,新功能點開發和老功能的更改可以在相對較短時間內完成。

因此,我們可以在這個平臺上不斷編程研究有限元理論和商軟的算法修正,也能將這種研究后的代碼轉換為程序放到這個平臺中,功能不斷的積累,后面研究新理論時可以站在以前的理論基礎上前進,形成良性循環。同時,有些我們實現不了的部分也可以請專業性更強的單位協作開發。

6.png

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖17

1.4 邀請你一起上山

iSolver不僅是個求解器,同時也是個學習有限元和深入了解商軟內部實現的平臺。光看理論書很多公式都不夠直觀,而光操作商軟無論你花多少時間,總有個天花板在那,只有真正的自己編程才可能將書本理論、商軟操作和內部實現三者融會貫通。而iSolver相對商軟的二次開發編程來說,學習效率和成本也會降低很多,可以讓學習者更多的關注算法本身,而不用花費太多無意義的時間在調試代碼上。我們在往后開發iSolver的過程中,也依然會在這個平臺上一步步的嘗試,如果有了新的功能,也會像現在一樣開發相應的接口,配合視頻和文章,讓后來者在這個平臺上深入理解有限元的基礎理論和商軟的內部實現。

如果有興趣,你可以現在就下載iSolver嘗試一下,照著我們視頻中的例子做做看,紙上得來終覺淺,須知此事要躬行。在學習的同時你也可以開發屬于自己的材料、單元子程序,并形成自己的算法庫,在iSolver平臺上不斷積累,iSolver子程序的接口完全按照Abaqus的標準實現,而Abaqus的子程序接口在近幾年內已經基本不再變化了,同樣的,雖然iSolver在不斷發展,但iSolver子程序接口將維持不變,所有在iSolver上編寫的算法子程序都只要維護自己的算法部分就行,而不是維護整個有限元求解的整個過程。

也希望你像我們一樣有一天突然覺得,原來自主的CAE也不是難于上青天,或許我也可以編程試試,一旦你開始自己編程,那么恭喜你,你將進入另一個世界。也祝愿你有一天也不需要使用iSolver,而是在自己的平臺上摸索發展,國內的CAE的發展需要更多的自主平臺。

(1)自主結構有限元開發框架iSolver下載地址:

http://www.yqgqt.org.cn/content/post/337351

1)      1Mb的Abaqus插件程序

2)      1分鐘的安裝過程

3)      和Abaqus完全一致的使用方式

4)      編程效率遠超Fortran的Matlab子程序開發

(2)邀請你一起學習有限元基礎理論和編寫單元程序:

http://www.yqgqt.org.cn/college/video/c14948

深入淺出有限元:基礎理論->Abaqus操作->matlab編程

7.png

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖19

(3)邀請你一起學習有限元材料理論和編寫材料程序:

http://www.yqgqt.org.cn/college/video/c13034

Abaqus用戶子程序UMat詳解與開發工具

8.png

有限元理論基礎及Abaqus內部實現方式研究系列21: 自主CAE開發實戰經驗第二階段總結的圖21

1.5 特別感謝

(1)   特別感謝技術鄰,給了我們一個自由發揮、展示的平臺

(2)   感謝開發過程中給過我們指導、幫忙一起校核公式、調試程序結果、提供參考代碼的同行。

(3)   感謝線上線下交流、幫我們找問題、給我們反饋意見、指引我們方向的iSolver用戶,也許我們對你沒有多少作用,反而是你的意見對我們促進很大。

(4)   最后,也要感謝強大的CAE商軟和理論大師們。在商軟面前,我們真的微不足道,對有限元的理論發展毫無創新,僅僅只是笨拙的仿制和翻譯。反而是商軟給了我們一個考核的標準和工作上的目標,在深入商軟內部實現方式的一個個征途中,當研究了很久的問題和商軟對上的一剎那帶給我們心靈的滿足是其它東西無法代替的。

共同學習,共同進步。

如果有任何其它疑問,歡迎聯系我們:

SnowWave02 From www.yqgqt.org.cn

email: snowwave02@qq.com

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

TOP

15
5