FLUENT為什麼沒有高階精度?
01-15
首先反對這種「二階精度已經很准」的觀點。二階精度相對一階精度是很准,但對於大部分問題而言是不夠的,或者說二階精度要算準需要非常龐大的網格量。打個比方,二階精度和一階精度就像低保戶在流浪漢面前擺闊一樣,不知道算喜劇還是悲劇。Fluent是典型的非結構網格二階有限體積法求解器。限制其精度的本質原因是線性重構假設和積分點數量不夠。
要在有限體積法框架內突破二階精度,至少需要解決以下問題:
1.高精度重構方法。一般採用k-exact重構。缺點是重構模板很大,並行計算和邊界處理非常困難。2.高精度積分方法。有現成的辦法,Gauss Quadrature。缺點是計算通量的代價比二階精度大很多倍,而這恰恰是有限體積法計算的主要部分。剩下的魯棒性之類的問題就更多了。現在有一批搞CFD的人在研究高精度有限體積法,但是好像越來越多的人放棄了。反正我是一開始就沒走有限體積法的路,一門心思撲向有限元了。
普通用戶都是魯棒性優先於準確性的。對一般cfd工程師,準不準天知道,不收斂就完了。如果用雷諾應力模型,一階格式也是經常的。
有限體積法天性使然,達到高階精度FV有以下幾個限制因素:
1. 單元重構更加複雜—對非結構化網格來說,不僅需要提供單元相鄰單元信息(哪幾個單元挨著它,單元編號是什麼),還要有相鄰單元外面相鄰單元信息(二階以上)。比方一維情況中的差分方法,近似導數時用兩個點只能有一階精度,用三個點便能有二階精度。
2. 並行計算交換數據更多—並行計算交換數據更加複雜。網格大了要分塊,並行時交換數據就不能只交換邊界節點數據了,還要把分塊內部一些單元數據也進行交換,因為別的分塊邊界單元計算肯定會用的。
3. 邊界積分更加複雜—二維情況下,2階精度時單元內未知數分布是線性的,因此單元邊界線積分簡直輕鬆加easy,只要用邊界中點處函數值乘以邊界長度就可以,因為在單條邊界上函數也是線性分布。但是高階精度就不行了,你要積分也達到精度要求必須要用高斯積分,因此開邊界節點只計算中點也肯定不行,要計算該精度所有高斯點函數值。
所以說,有限體積三階精度計算量比二階精度高的可不只一個數量級,至今沒見過可用的高階有限體積軟體或源程序。
哦,忘了說,Fluent是用有限體積法,所以跳不出這個框框。要是哪天它也有有限元或間斷有限元格式了,相信任意階精度都沒問題了。
以上,就醬這個問題我不是很清楚,同意以上所有觀點。
它誕生在有限體積的黃金時代.
有限體積法2階精度是天然的,巨方便.非結構的有限體積法高階起來很麻煩.高階以後魯棒性會變差,這是商業軟體大忌.大概如此吧,拋磚引玉.
因為2階已經很准了。。。
推薦閱讀:
※關於漩渦的合理數學描述?
※有沒有學習ansys比較好的書籍或視頻教學推薦?
※流體力學中的歐拉方程並沒有二階偏導項,為什麼還是雙曲型的?
※假如一個風扇的葉尖速度超過音速,它的流場會呈現哪些特點?
※為什麼雷諾數較高的時候會產生湍流?