工業CAE軟體的底層「黑科技」——CFD求解器技術

2020-12-05 Supreium適創科技

自主工業CAE軟體,關鍵在於「自主」二字。

真正掌握了核心算法技術,才算是「子彈上膛」,

從而在國際賽場上佔有一席競爭之地。

若是僅僅打著「自主技術」的幌子,

卻沒有應對技術洪流和市場危機的自主能力,

那就是對企業,甚至社會的不負責。

本文作者郭志鵬先生,會從求解器的開發過程開始,詳細講解適創科技是如何基於LBM算法開發了超快速、大尺度的流體力學求解器,從而完成了壓鑄領域模擬仿真雲計算平臺的研發。

我們的自主化技術,就是最核心的國際競爭力。

以下正文:

對於工業CAE軟體來講,其最核心的技術不是人-機交互界面、不是圖形展示、不是資料庫,而是其最底層的物理、數學算法架構,也就是我們一般稱作的求解器。

所謂求解器,指的是針對特定場景(比如液體流動、溫度傳播以及結構變形),用程序編碼的方式實現的對物理規律、數學原理的客觀還原。

圖1、工業軟體底層技術圖譜[1]

求解器在很大程度上類似於我們生活中使用的計算器,當我們在其屏幕上輸入若干數字和運算符後,計算器會自動計算並輸出結果。所有和計算相關的內部運算操作都集成在計算器的內部,使用者無法直觀地獲得對運算過程的觀察和監控——就像個「黑盒子」一樣。可以這麼認為,生活中計算器涉及到的運算實際上是廣義求解器的一個基礎和組成部分。與計算器相比,CAE軟體內部的求解器往往運算量更大,輸入參數更多,對問題的還原更為全面。

求解器的開發過程

以流體力學求解器為例,其計算結果往往是一個三維區域內部的流體特性,包括速度、壓力、形態等,隨著時間的演化過程,每一個小的局部位置在特定時間點上都涉及到大量的代數運算,而這些代數運算其實就是我們生活計算器的主要工作。與實際人手操作計算器進行計算不同,CAE軟體求解器可以根據物理規律演化的特點自動匹配當前涉及到的代數運算,這個就是我們俗稱的「求解過程」。

圖2、流體計算的核心變量:壓力,速度,溫度(熱流體)[2]

從計算器-求解器的關聯上看,開發求解器最主要的工作是把求解器的物理規律、數學算法通過編碼的方式實現。這個過程看似清晰、簡單,但卻充滿了挑戰。

依然以流體力學求解器為例,我們來看一下這個開發的過程。

首先,我們需要深入理解描述流動過程的物理原理。對於液體來說,主導或者說決定其流動的底層物理規律是動量、質量守恆(不考慮熱傳導引起的能量耗散),而通過人類幾個世紀的研究和總結,我們可以將整個流動過程用兩個核心方程來描述,一個是Navier-Stokes方程(NS方程),描述動量守恆;一個是連續性方程,描述質量守恆。人們對於物理世界的理解往往是基於三維空間的,因此,將NS方程對笛卡爾坐標系進行拆分,將速度矢量沿著每一個坐標軸(X、Y、Z)進行分解,我們就會得到三個速度變量(U、V、W),這樣的話一個NS方程就會變成針對離散速度變量的三個偏微分方程,再加上連續性方程,我們就可以形成一套完備的方程組來描述真實世界中不可壓縮流體(水、金屬液)的流動過程。

圖3、頂驅方箱流速度矢量場和標量雲圖分布[3]

有了描述流體流動過程的方程組,下一步就是用數學的方法來求解這個方程組。數學方法一般分為兩大類,一類是通過理論推導直接獲得精確的方程組的解,另一類則是通過數值算法,「近似」地獲得方程組的解。在現有的數學、物理框架下,或者說基於人類現有的科學發展狀態,絕大多數的問題是無法獲得精確解的,而解決實際問題的最主要途徑是數值計算。

數值計算一般分為三個環節:模型離散、條件設定和求解過程本身。

「模型離散」指的是將真實的物理模型打碎成一個個的網格點,模型和網格點的關係特別像人體和細胞的關係;「條件設定」一般指的是正確地設定計算的輸入參數,包括材料熱物性參數、初始條件和邊界條件等,正確的邊界條件設定對於產生準確的計算結果是極其關鍵的,要不然就是「垃圾進-垃圾出(Trash in,trash out)」了;「求解過程本身」則是編碼的數值算法在計算機硬體上的逐步、系統地運行。

數值計算的三個環節中,只有條件設定是完全依託於使用者的,模型離散和求解過程都可以且應該實現自動化。

我們把以上兩個過程(描述物理規律的偏微分方程和數值算法)聯繫起來,通過計算機編碼(高效算法編程一般使用C、C++以及fortran語言)實現成計算機可以識別的語言,也即電腦程式,最終通過特定計算機硬體平臺和作業系統就可以實現對物理問題的求解了。

值得注意的是,描述物理問題的方程組經過離散之後的維度會急劇增加,這是因為這些偏微分方程組不僅需要建立在整體物理模型上,而且必須要在每一個網格單元上都得滿足。因此,如果說一個物理模型經過網格離散獲得了1000萬個網格單元,那麼相應的描述物理現象的方程組就得有1000萬套,也就是說在每一個演化步中(一般是指時間步),我們要同時求解1000萬套方程組。仍然以流動過程為例,對於每一個單元,在每一個時間步中,我們需要求解4個核心方程,包括描述U、V和W的三個速度變量的控制方程(NS方程)和描述質量守恆的連續性方程。從這個角度上講,精確求解NS方程和連續性方程就是流動求解器需要解決的最關鍵問題。

現有的大多數工程應用涉及到的氣體、水以及金屬液等的流動都屬於粘性不可壓縮流動,針對這種流動,現有的流動求解器通常使用兩種方法來實現對控制方程組的求解:基於壓力迭代的算法和基於人造壓縮特性的算法。這兩種算法同時也是現有絕大部分商業軟體採用的方法。

圖4、基於壓力迭代的SIMPLE算法[4]

基於壓力迭代的算法又可以細分為MAC算法和分裂算子算法,詳細的算法原理可以參考相關的計算流體力學的書籍和文獻,這裡就不再贅述。MAC和分裂算子算法都可以通過數學變換最終轉換成一個聚焦於求解泊松方程的算法,而求解泊松方程本身則需要採用所謂的隱式算法不斷迭代才能完成。

事實上,求解泊松方程是近幾十年來所有流體力學求解器最難啃的「骨頭」。從數學上講,泊松方程屬於橢圓方程,每一個網格單元中心的壓力項會直接和其周圍的「鄰居」單元中心的壓力項形成關係,也即方程組,因此,對每一個單元來說,這個方程都會至少含有7個變量(當前單元自己的壓力和周圍單元的六個壓力)。採用線性方程來進行描述就是:AX = b,其中,A是一個N行和N列的係數矩陣,X是含有N個壓力項的變量,而b則是一個含有N個常量的向量。所以求解泊松方程就轉換成了求解這個方程組。事實上,A是一個稀疏矩陣,因為其組元大部分都為零,在每一行中,只有7個(或多個,取決於採用的離散格式)位置的值不為零,可以想像,如果N=10,000,000,也即含有10^7個網格,那麼這個矩陣就是一個極其稀疏的矩陣了。求解大型稀疏矩陣線性方程組是數值分析的主要任務,也是當代應用數學正在攻克的難點之一。

對於求解大型稀疏矩陣線性方程組,有興趣的讀者可以閱讀一些和數值分析或者高等數值分析相關的一些書籍,經典的算法在其中都有提及,包括共軛梯度、SVD分解、冪指數迭代等等,我這裡不做一一贅述。我想提兩個算法,一個是公認的現有最強的矢量算法,叫GMRES,另一個則是多重網格(Multigrid)算法。

GMRES算法的核心在於建立正交坐標系,然後採用坐標系的坐標來表達最終的解。用一個小維度的例子來說明一下GMRES算法,比如我們之前AX=b的方程組,如果N=10的話,那麼A就是一個10x10的係數矩陣,如果這個方程組有解的話,其解X必將是一個10x1的向量。從數學的角度理解AX=b的意思就是採用一個10維的系統將X映射到b,而這個過程其實是等效於建立正交坐標系。

GMRES在計算的過程中,絕大部分時間其實是在建立正交坐標系,因此,建立正交坐標系的時間也就最能反應GMRES算法的計算效率。在實際的工程問題上,我們發現,當計算維度不太大的時候,比方說百萬、千萬網格,GMRES算法的計算效率是非常高效的,但是當網格數量繼續增加的時候,其效率就會急劇下降,這其實是受限於計算機浮點數本身的精度的,一個正交坐標系,如果每一個向量的值都有些許誤差的話,到最後整個所謂的正交坐標系就不那么正交了,也就是相互之間不再垂直了。

而多重網格算法則沒有這個問題,所謂的多重網格指的是這個算法在求解實際問題的時候採用的是不同尺寸的網格系,而非單層的網格結構。為什麼要這麼做呢,那是因為不同尺寸的網格對於消除「計算缺陷」的貢獻是不同的,大尺寸網格消除較為粗糙的缺陷,而小尺寸網格消除的缺陷則更為「精細」,這有點像電視屏幕解析度的感覺,當電視像素解析度較低時,我們只能看到粗糙的圖像,反之則可以看到更加清晰的畫面。多重網格算法非常巧妙地利用了這點,在求解線性方程組的時候以更加高效、精準的方式來濾除計算誤差,從而極大地加快了算法本身的求解速度。

圖5、2D多重網格算法粗細層格點結構[5]

雖然GMRES和多重網格算法是極其高效的,但是在求解實際工程問題中仍然面臨極大的挑戰。首先,不管是GMRES、多重網格還是其他各種算法,其本身對方程組的奇異性非常敏感,當係數矩陣A存在一定奇異性的時候,這些方法就會很快失效。什麼是方程組的奇異性呢,其實就是矩陣A的特徵值差異太大,我們大可以不用去理會什麼是特徵值,可以這麼認為:矩陣的特徵值反應了矩陣本身的「強度」,一個係數矩陣,當其某一個特徵值在絕對值上遠遠小於其他特徵值的時候,那麼這個矩陣就是奇異的。

造成奇異的因素很多,可能是因為我們對實際問題的描述有誤,也有可能是因為邊界條件設定的不對,還有可能是這個問題本身就存在奇異性,比方說激波(shock wave)的存在就打亂了其兩側物理的連續性。那麼,當這些奇異性存在時,採用這些所謂的「隱式」迭代算法就會存在收斂性的問題,甚至在某些時候就會計算中斷,也就是我們俗稱的「發散」了。現有商業軟體開展流動過程模擬,出現計算不收斂的情況是非常常見的,當然,造成發散本身的原因也是多種多樣,有操作者自身的問題,但絕大多數其實是求解器本身沒有那麼強大,或者說魯棒性沒那麼好。

開發一個「完美」的流動求解器是極其困難的,而精確地求解Navier-Stokes方程也是當今世界7大數學難題之一(現在是6大,其中的黎曼猜想已經證實被解決了?)。這其實就是為什麼我國之前並沒有能夠開發出一款具有世界競爭力的流體力學軟體的本質原因。開發流動求解器,模擬真實自然界的各種跟流動相關的物理現象,實現真正的對工業乃至對宇宙的認識(星系爆炸、遷移和演變都涉及到流動)是現在絕大多數做應用數學、力學研究人員的終身夢想。

在真實的自然界中,跟流動相關的物理現象是非常複雜的。比如我們見到的絕大多數流動過程是涉及到多個流體的多相流,同時,當雷諾數超過2000左右的時候,流動會從層流變為紊流。多相紊流其實是自然界的常態,而真正從物理、算法的角度解決這類流動問題是極其困難的。現有商業軟體在流動求解過程中都做過大量的假設和簡化,所開發的求解器也只有在某些特定的場合才能產生相對有價值的計算和模擬結果,但是這些都不是使用者能夠確切知道的,這其實也是模擬誤差,或者說模擬精度不高的主要原因。

圖6、基於LBM算法的Xflow軟體模擬的腔體潤滑劑流動過程[6]

適創科技的自主求解器

面對這些困難,適創科技只能採用一種新的算法架構來開發流動求解器。這種新的算法就是LBM(算法本身並不新,只是相較於現有的流動求解算法來說,大規模有效使用LBM算法的時間並不長),也即格子-玻爾茲曼算法,同時採用大渦模型描述大雷諾數紊流。這兩種算法的結合可以非常有效地規避現有流動求解器遇到的核心問題(迭代求解泊松方程這一環節)。

LBM方法其實結合了有網格和無網格方法的特點。

第一,LBM採用粒子碰撞的方法從微觀來描繪基本的流動碰撞,但是這個方法不直接採用粒子碰撞來對流動狀態做描繪,而是採用密度函數的方法將粒子碰撞進行積分,在相空間裡對流態進行描述。採用密度函數的方法(而不直接採用粒子碰撞的方法)來連接微觀碰撞和宏觀流動是現代物理學的一個很重大的發現,這也是統計力學的基礎。

從這個角度講,LBM方法在基礎微觀層面採用粒子碰撞,而在宏觀流動方面採用密度函數法,其計算精度(或者說對實際物理現象的描繪)要比現有的有、無網格方法更加準確。

「有網格方法」指的是數值計算中採用網格的概念開展的算法,常見的如FDM、FEM和FVM等;而「無網格方法」則是計算中沒有採用網格這一概念,常見的如SPH、MLPG、RBF以及FPM。

但不論是哪種方法,其計算精度都依賴於「解析度」,仍然像咱們電視的像素。對於有網格的計算方法,這個解析度就是網格類型和大小,而對於無網格方法,這個解析度則是粒子的數量。顯然,我們絕對不可能用一個網格或一個粒子就把流體的流動狀態描繪出來,因此它們都有「解析度」的限制。

圖7、ARES噴射流波形幹涉模擬,4億網格,20小時

同時,為了提高計算效率,我們在數值算法上採用並行計算。LBM這種算法天生就具有極強的並行計算能力,非常適合於現有的並行計算集群,這樣的話就很好地把算法本身的優勢和現有的計算資源巧妙地結合了在一塊。值得慶幸的是,用於並行計算的集群資源越來越多,國家在這方面的投入也越來越多,因此可以極大地把計算成本壓低。

不同於大多數現有商業軟體的算法架構,適創科技開發的流動求解器,是基於LBM算法、大渦模型和並行計算為主要特點的新一代流體力學求解器,本身代表了流動計算算法的最高水平,其計算效率和解決複雜問題的能力也遠遠超越了絕大多數現有的商業軟體。

而這個求解器的誕生,也為後期適創科技拓展到其他計算應用領域奠定下了堅實的基礎,這也是我們一直引以為豪並樂以提及的:

「自主化技術,世界競爭力。」

[1] 圖片來源:

公眾號「知識自動化」:《工業軟體為什麼這麼難?》

[2] 圖片來源:

https://www.autodesk.com/solutions/simulation/cfd-fluid-flow

[3] 圖片來源:

https://www.mathworks.com/matlabcentral/fileexchange/74483-cfd101-2d-lid-driven-cavity-flow

[4] 圖片來源:

https://web.stanford.edu/class/me469b/handouts/incompressible.pdf

[5] 圖片來源:

http://web.utk.edu/~wfeng1/research.html

[6] 圖片來源:

https://scanscot.com/web/wp-content/uploads/2019/01/Media9_cropped.gif

作者:郭志鵬

畢業於清華大學(本、博),牛津大學、英國皇家學會研究會員,長期從事數位化工業方面的研究,包括高性能算法、高能X射線檢測、圖像處理以及相關工業領域的材料和核心工藝開發等,立志創造有國際競爭力的自主化CAE軟體,擺脫國際壟斷,提升和振興民族工業水平。

相關焦點

  • 適創科技完成Pre-A輪數千萬融資,國產CAE軟體大有可為
    2) 智鑄超雲平臺以壓鑄工藝為導向,完全從用戶的使用習慣出發,且網格剖分、結果分析等環節都做到了自動化、智能化,改變了以往傳統軟體難學、難用、難上手的狀況,用戶親切地將其稱為「傻瓜式、高精度的軟體」。3)獨立開發了超高速、大紊流、基於高性能格子波爾茲曼方法的底層流體力學求解器。由於其高穩定性、高效率等技術優勢,可有效擴展至其他流體計算領域。
  • 專注於國產CAE軟體適創科技獲數千萬級Pre-A輪融資
    11月26日消息,適創科技完成數千萬級Pre-A輪融資,本輪投資方為亞傑天使投資管理(北京)有限公司和啟迪之星(北京)投資管理有限公司。據了解,北京適創科技有限公司成立於2016年,為國家高新技術企業,團隊成員來源於清華大學實驗室,在高性能CAE算法、智能算法以及工業軟體研發領域居國際先進水平,公司為GE-貝克休斯、中信戴卡、一汽鑄造、大連亞明、寧波隆源等多家國內外知名企業提供高性能數位化解決方案。
  • 各種CFD軟體大比拼(2)-ANSYS CFX 簡介
    一、發展歷史        CFX是全球第一個通過ISO9001質量認證的大型商業CFD軟體,是英國AEATechnology 公司為解決其在科技諮詢服務中遇到的工業實際問題而開發
  • 打破海外廠商壟斷 中望軟體瞄準高端工業設計軟體CAE領域
    專注工業軟體 中望軟體主要從事CAD/CAM/CAE等研發設計類工業軟體的研發、推廣與銷售業務。經過20年的技術積累和資源整合,公司逐步打破了我國2D CAD軟體領域由歐美企業壟斷的局面,為實現2D CAD軟體產品國產化、自主化作出了較大貢獻。
  • 杉數科技:不走捷徑的「解」題高手
    求解器屬於典型的底層技術領域,技術門檻較高、相關人才又極為稀少,全球求解器市場被IBM、FICO、GUROBI三家美國公司所壟斷,這三家公司構築起極高的市場競爭門檻。與之相比的是,成立四年的杉數科技也僅是中國第一家擁有自主智慧財產權的商用求解器公司,中國求解器才處於起步階段。正因為如此,杉數科技在求解器以及基於求解器的智能決策技術等領域的突破才格外具有意義。
  • 電磁場求解器基本概念及主流PCB仿真EDA軟體解析
    商業化的射頻EDA軟體於上世紀90年代大量的湧現,EDA是計算電磁學和數學分析研究成果計算機化的產物,其集計算電磁學、數學分析、虛擬實驗方法為一體,通過仿真的方法可以預期實驗的結果,得到直接直觀的數據。如何選擇PCB電磁場仿真軟體的問題。那麼,在眾多電磁場EDA軟體中,我們如何「透過現象看本質」,知道每種軟體的優缺點呢?
  • 模具種類及常用模具CAE分析軟體
    五金衝壓模具常用的CAE軟體:A:dynaform是一款板料成形數值模擬的專用軟體,由美國ETA公司和LSTC公司聯合開發,DynaForm是LS-DYNA求解器與ETA/FEMB前後處理器的完美結合,是當今流行的板料成形與模具設計的CAE工具之一。1.dynaform基於有限元方法建立, 被用於模擬鈑金成形工藝。
  • 淺談PCB電磁場求解方法及仿真軟體
    商業化的射頻EDA軟體於上世紀90年代大量的湧現,EDA是計算電磁學和數學分析研究成果計算機化的產物,其集計算電磁學、數學分析、虛擬實驗方 法為一體,通過仿真的方法可以預期實驗的結果,得到直接直觀的數據
  • 阿里達摩院發布自研數學規劃求解器獲國際權威榜單性能測評第一
    8月18日消息,阿里巴巴達摩院研發的數學規劃求解器參加國際權威榜單測評,在單純形法測評中排名第一,打破世界紀錄。這款擁有自主智慧財產權的求解器MindOpt現已用於阿里集團多個業務場景,包括雲計算資源調度、金融資金分配、新零售智能營銷等。
  • 業界點讚國產化新突破,仿真軟體PERA SIM深入洞察物理世界
    Emag電磁仿真三大模塊,具備成熟的軟體架構、圖形界面和完備的前後處理能力。PERA SIM.Mech是通用結構力學仿真分析系統,涵蓋線性、非線性、靜力、動力、熱、熱結構耦合等分析功能。PERA SIM.Fluid是通用流體仿真系統,採用計算流體動力學(CFD)數值模擬技術,包含能夠精確模擬日常遇到的各種工程流動問題的求解器,支持可壓、不可壓計算、傳熱計算、多相流計算。
  • CAE軟體研發商數巧科技Pre-A輪融資數千萬元
    獵雲網近日獲悉,CAE軟體研發商數巧科技完成數千萬級Pre-A輪融資,投資方為北京思特奇信息技術股份有限公司(以下簡稱:思特奇)和方信資本。  據了解,在獲得此輪融資後,數巧科技將會加大雲端CAE相關核心技術的研發力度,包括高性能Web三維渲染、仿真數據輕量化壓縮與傳輸、雲端基礎架構研發、協同仿真平臺研發等,以確保公司在相關方向上繼續保持技術領先;此外在市場與銷售方面,也會加大投入。
  • 工業軟體,除了晶片外的中國又一軟肋
    這就是工業軟體,目前在國內製造業廣泛使用的各種工業軟體幾乎全部都是國外開發進口的。 工業軟體,顧名思義,就是指工業範疇使用的軟體。大致可以分為研發設計類、生產調度和過程控制類,以及業務管理類。
  • 網格技術|近壁區網格處理/Y+網格
    邊界層包括粘性底層、過渡層及對數律層。通常邊界層很薄,一般是毫米、微米級,因此如果直接進行網格加密的話,勢必會大大增加計算量。實驗發現,對數律層處於完全湍流狀態;而在粘性底層及過渡層中,粘性力起主要作用,此時速度分布可以通過經驗公式直接計算得到,因此無需劃分網格。
  • 汽車CAE分析全面介紹
    (二)汽車CAE分析流程(1)前處理-用圖形軟體首先對汽車工程或汽車產品進行實體建模,進而建立有限元分析模型。(2)有限元分析-對有限元模型進行單元分析、有限元系統組裝、有限元系統求解以及有限元結果生成。
  • 浮蓋技術、顆粒捕集器 治霾一線黑科技頻現
    2018-03-10 07:05 | 科技日報圖片來自網絡。為實現「藍天白雲、繁星閃爍」,近年來,圍繞空氣汙染治理湧現出大量環保「黑科技」。它們服務於治霾一線,加速空氣品質改善進程,形成了一個體量超萬億元的巨大新興市場。
  • 工業軟體,「水」有多深?
    但精雕拿到了最有利位置的船票,這是與它多年苦苦打磨的CAM軟體,息息相關。當年黯淡無光看不到前途的時刻,正是每個工業軟體創始人最熟悉的煎熬。然而只要熬過去了,那就會有巨大的回報。當下,工業軟體給機器製造商,正在頻頻帶來捷報。海克斯康也不是孤例,德國蔡司去年收購測量技術的軟硬體供應商3GO,納入旗下。
  • 深不可測 工業軟體之謎
    但精雕拿到了最有利位置的船票,這是與它多年苦苦打磨的CAM軟體,息息相關。當年黯淡無光看不到前途的時刻,正是每個工業軟體創始人最熟悉的煎熬。然而只要熬過去了,那就會有巨大的回報。當下,工業軟體給機器製造商,正在頻頻帶來捷報。海克斯康也不是孤例,德國蔡司去年收購測量技術的軟硬體供應商3GO,納入旗下。
  • 十大「黑科技」創新產品:癌症早篩AI、ET工業大腦等入選
    十大「黑科技」創新產品:癌症早篩AI、ET工業大腦等入選 2018-09-16 06:50 來源:澎湃新聞·澎湃號·政務
  • 工業軟體破局 汽車零部件的內痛
    智鑄超雲就是一種國產CAE軟體的創新嘗試,通過雲計算的模式,可以將計算成本降低90%,讓零部件企業無需購置硬體和仿真軟體;而底層高性能算法技術創新並依託國家超算硬體,將計算速度提升10倍以上。無論是專業知識,還是計算成本和速度,都可以為國內企業的研發設計提供全新的知識助力。