CFD高階格式,距離 ‘ 全民普及 ’ 還有多遠?
CFD這面玩高階格式的很多。今天就舉幾個例子。簡單說一下這些高階格式。
一、矩方法高階格式
很多人可能一看標題就蒙了,其實不必,就簡單理解為高階格式就行。我也會把這個東西盡可能說的簡單。
在矩方法領域,矩一般代表著某些變量,比如密度、動量等。那在這塊,咱就假定密度是一種矩。
矩方法要對網格面上的矩進行重組,最簡單的UPWIND格式,大家都非常熟悉。直接網格上游體心的值就等于面心的值。非常簡單、非常straightforward。
當然,Upwind是一階格式。
如果在矩方法中,如果要上二階以上格式,這就費事了。需要某些特殊的算法,傳統central中心格式不能用,會導致震蕩。
目前在矩方法這個非常小非常小的領域,用的一些特殊的格式,這個植入的過程,真是夠喝一壺的。
因為咱植入過這個格式,光是學習,就得學幾個月。代碼量也不少。當然了,這種流弊的東西,發文章可以大大的提升接受率。
然后,也只能實現個二階。。。
大體上就是,為了實現個高階格式,投資了3000萬,到頭來給項目方做項目,合同總價只加了30萬。。。
二、WENO高階格式
WENO高階格式,這個在幼兒園大班大家就開始接觸了。
由于結構網格已經成為過去式,但是在非結構網格植入WENO,喝個4 5壺絕對要的。有些搞不明白的,幼兒園都沒法畢業。
現在對邊看看比如在OpenFOAM里面植入WENO需要做哪些處理。
首先就是非結構網格那個stencil確定,本身咱們非結構網格沒有編號,那么WENO怎么確定stencil?
然后就是做積分,看下面這個圖,直觀來講,central格式,upwind格式,直接插值過來就行。
但是WENO呢,需要做積分,雖然要離散化,但是這明顯要比傳統格式復雜好多。其中還要存儲大量的離散系數,文獻表示,3階WENO每個面上要存儲19個多項式系數!!
然后還涉及到一個并行的問題,WENO在并行的時候,必然會引起效率低下,因為每個主網格,需要到不同的proc上面去通信。
比如下面這個圖,不小心4個CPU都要用到。。。
然后如果看WENO跟傳統TVD之類格式的對比,文獻里面有下面2個圖,我是覺得差別基本可以忽略...
如果看真實的多相流潰壩問題,下面這個圖是WENO格式、傳統TVD格式以及實驗的對比:
照我來說,上面這個數據,個人感覺WENO跟傳統TVD真是沒啥區別哎。
三、最后
其實本文,不說是高階格式不好。但是想說一些普遍性的東西。只不過WENO躺qiang而已..
很多算法上的東西吧,確實是流弊到極致。一個簡單的例子,如果按照精度來看,迎風格式就是60分水平,那TVD格式可以到90分了。
然而一些高階格式,能達到95甚至99分!
當然大家都知道,分數越高,每提高一分,需要付出的努力就越大。本文舉例的一些高階格式,就是在90分的TVD格式的基礎上,花費了上千倍的努力,提升到了95分。
做學術是完全沒問題的。JCP蹭蹭的發。但是另一方面,一個算法的提出,越難,用的人越少。
反而是那些極簡,直擊痛點的文章,雖然精度不高,但是大肆被CFD軟件以及工業界采用。
再次聲明,本文啊,不是說某些算法不好,只是想說一個普適性的原則,這些算法實在是太復雜了,流弊確實流弊!!就是用到工業界,還需要很長一段路要走。
我還發現一個事,之前我寫的某些SCI,可能實在是太復雜了,引用的都少。。某些應用類,引用反而很高,可能因為比較簡單,大家都看得懂吧
本文來自:CFD界
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















