流場計算的軟體中,關於層流轉捩計算的軟體或者開源軟體有哪些?
層流轉捩計算或者層流流動穩定性的計算是現代計算流體力學在飛行器等領域非常重要的方面。那麼有沒有相關的計算軟體呢?
目前主流的轉捩方法有:1)基於RANS湍流模式的gamma-theta和KLKT轉捩判斷模型。gamma-theta和KLKT模型,從根本上考慮,就是從物質守恆的角度來思考,認為任何流動量都滿足生成、耗散、對流、擴散這四種模式,通過建立與湍流方程類似的輸運方程來模擬轉捩過程中某些量的變化(如gamma-theta模擬間歇因子的輸運變化,KLKT模擬層流脈動的輸運變化),這樣的話就會使這些方法與湍流模式的編程方式相似,容易編程(只需要多一個子函數、湍流模型源項上加一個係數、數據結構中給每個點多一個turbulent_laminar的flag標誌變數,就ok了),所以目前主流的求解器中均會包含這種方法。如Fluent中包含gamma-theta和KLKT,CFX中包含gamma-theta。一些in-house的code,如德國宇航院(DLR)的結構網格求解器FLOWer和非結構求解器TAU、法國宇航院(ONERA)的結構求解器elsA、瑞典國防研究院(FOI)的非結構求解器Edge、美國航空航天中心(NASA)的結構求解器CFL3D以及非結構求解器FUN3D中均包含gamma-theta轉捩判斷模型。國內很多單位自己的求解器中也包含這些代碼,公開文獻中可看到:西北工業大學的結構代碼TEAM(低、跨聲速,gamma-theta)、北京航空航天大學李春萱院士那邊的代碼(高超聲速,gamma-theta,KLKT)、北航閆超老師(高超,gamma-theta)、清華王亮老師(高超聲速,gamma-theta)、中航工業計算所得非結構求解器WiseManPlus(低、跨聲速,gamma-theta)、中航工業空氣動力研究院(低、跨聲速,gamma-theta)。其中,有原創性工作的單位包括:北航李春萱老師、清華王亮老師。
2)第二種是基於穩定性方程的eN轉捩判斷方法。這種方法的思路是:通過假設各種不同擾動頻率的擾動波已經進入邊界層內(該方法不解決擾動是如何進入邊界層內的問題),通過線性穩定性方程(Orr-Sommerfeld方程,O-S方程)來判斷各個擾動波在不同邊界層站位的速度型內,擾動波振幅是放大還是衰減,通過累積擾動波在沿流向方向的放大率,繪製各個不同頻率的擾動幅值放大率,同時求出這些不同擾動波幅值放大率的包絡線,通過判斷幅值是否達到指定放大率來判斷轉捩是否生。可以看出:這種判斷方法基本上與現代CFD求解器的輸運方程思路不同,這是一種基於幾何思路的研究方法,技巧性更強,同時由於臨界幅值放大因子N是通過人為指定的一個數值,這就會讓嚴謹的CFDers們難以接受。但是由於該方法對翼型和機翼構型的轉捩位置有較為精確的判斷方式,且可以很容易地將多種誘發轉捩發生的不穩定性因素考慮到模型中,因此該方法在航空界得到了長足的發展。如美國NASA的COSAL(http://ntrs.nasa.gov/search.jsp?R=19840019933,三維可壓流eN轉捩判斷方法的代碼,開源,1981),LASTRAC(一個神奇的轉捩判斷軟體,基本上包含了目前能考慮到的所有基於穩定性理論的轉捩判斷方法,如eN、LPSE、NPSE等。且加入了多種引發轉捩的不穩定性機制,同時還建立了擾動進入邊界層這個過程的模型)。求解過穩定性方程的童鞋會知道,O-S方程的求解過程是一個特徵值求解的過程,這個特徵值求解過程需要迭代求解,而且求解過程不易收斂(這點最讓人頭疼),於是又有一批大神們想出了一個辦法,他們通過事先精確求解一系列常用的速度型在不同馬赫數下的邊界層擾動問題,建立了一套基於不同速度型(H)、不同馬赫數下,不同擾動衰減頻率的擾動波的幅值放大率,在穩定性判斷過程中,只需要查找該資料庫即可得到擾動放大率,這就大大減少了計算量,同時提高了穩定性問題的魯棒性。這方面做的工作較多的是ONERA的D. Arnal (The French Aeropace Lab ONERA, Palaiseau) on ResearchGate等人,
eN轉捩判斷方法方面,從公開發表資料中可知道國內外有如下機構有相應的方法:歐盟成員國下的各位大大們部分或直接使用了Arnal的研究成果來完善他們的in-house代碼,DLR的DLR-TAU Code、FLOWer,FOI的Edge -- CFD-Wiki, the free CFD reference。國外大大公開的可供學習的代碼有:MIT Mark Drela | MIT AeroAstro大神的自研軟體XFOIL中添加了標準的eN轉捩判斷方法,並將其代碼公開(這是不可壓eN轉捩判斷代碼);eN方法創始人之一Van Ingen教授有公開了自己的一套eN資料庫轉捩判斷方法的Matlab代碼。在這裡特別誇獎一下van ingen教授,在本人剛開始進入轉捩判斷行業時,木有人指導,當時抱著試試看的態度聯繫了下van ingen教授,結果van ingen教授從荷蘭寄了一張光碟,包括van ingen教授的所有研究內容,同時還給我做了一些研究方向的指導,並在渦隨後的研究過程中,通過email給我做了很多建設性的指導,相當友好的教授。 https://vsv.tudelft.nl/society/members/members_of_honour/prof-dr-ir-jl-van-ingen。此外,波音的Tencer Cebeci教授的Computational Fluid Dynamics for Engineers書中詳細講解了eN轉捩判斷方法的實現過程,後面還有幾個小代碼,適合初學者學習。商業軟體目前還未發現有基於eN模型的轉捩判斷方法。國內方面,天津大學的周恆院士初期在做eN,後來對我的感覺,他們應該更關注於用PSE方法來研究轉捩的機理,且主要集中在高超聲速方面。中科院力學所的李新亮老師,主要在用DNS來研究轉捩。中國航空工業空氣動力研究院在eN-資料庫方法的大型工程應用方面做了很多工作,公開發表的文獻來看,有做過二、三維高升力構型轉捩計算,且均是在大型並行環境下來完成的,其計算結果與實驗吻合較好,他們主要在做低、跨聲速民機的轉捩判斷。西北工業大學的宋文萍教授的教研室做了一些eN方法的轉捩判斷在三維機翼上的應用研究。相比之下,eN方法的代碼就沒有基於RANS方法的好編寫。打哪指哪貌似商業軟體裡面有了一些以menter工作為代表的轉捩rans模式,fluent,cfx之類的都有。國內清華符松老師那邊為首,也有一些rans的轉捩代碼。然而我個人覺得也就是打哪指哪了,使用局限性頗大。好在這不是學術雜誌,可以直接表達個人看法。
en效果好一些,至少不是簡單的指哪打哪了,雖然也得用實驗去標定n值,但是基本上轉捩輪廓等可以事前給出,受制約略小適用性略高一些,然而問題在於沒現成的開源代碼。我說說我所了解的基於en的能算三維複雜外形的in house代碼主要是lastrac2.0,e_malik(這倆nasa 蘭利的,前面是chang c-l 寫的,後面malik寫的),歐洲貌似en用的不多,中國的話主要是天大有相應代碼。不過這種代碼由於其應用目的,基本上很難開源的,連課題組內部都是限制傳播的。只是為了學習,搞個翼型優化設計的話,我知道西工大也有類似的en代碼程序。自己出於學習目的看看書用matlab,以eigs為核心寫一個二維邊界層的en程序難度也不是太大,就是效率略低而已。再有就是用判據準則 re/ma,Rcf之類的,其實效果也不錯。不過這個都用不著代碼了。
另外就是手機打字,大小寫下標之類的問題請見諒。
推薦閱讀:
※編寫基於機器學習的程序,有哪些編寫和調試的經驗和竅門?
※大公司招Python程序員具體是幹什麼?
※在MATLAB入門之後,平時應該怎麼練習,才能了解,掌握更多更加方便的函數,編程技巧?
※如何形象的描述反應式編程中的背壓(Backpressure)機制?