2009/01/18

fluid dynamics in CG 流體力學講座



前言
腦動畫精益求精 日新月異 逼近真實的物理運算特效越來越重要.在這其中除了全局照明 (Global Illumination) 渲染算圖所需要大量計算外,流體物理運算也是耗費大量電腦資源 原因是流體運動複雜 要求逼真的特效的話,粒子數目往往必需要要達到上萬顆的數目. 在3ds max平台上的流體物理運算軟體有SitniSati FumeFX3Daliens Glu3D, Nextlimits Realflow以及即將推出的XFlow. FumeFX是氣體/火焰的物理模擬 廣義來說氣體也是一種流體 只是跟我們一般認知”水”這種流體相比 氣體是可以壓縮的 因此粒子間碰撞問題不像”水”流體那樣嚴苛. 另外氣體的效果可以用晶格 Voxel體積像素的方式搭配shader進行渲染,Voxel的解析度可大可小,自然運算速度會比水流體要快些. 即使有這樣的差異 SitniSati FumeFX, Glu3D, 與Realflow之間還是有許多共通點,還是有共通的流體力學方程式必須要求解. 

透過了解每個物理參數的意義 比方說渦度 黏度 流速 以及流體力學的發展歷史 科學家所遭遇的瓶頸 這樣在實際使用軟體 看著FumeFX在SIMULATE的時候也比較能體會 FumeFX程式在背後為你做了什麼事 也知道怎樣最佳化模擬參數.

流體動力學
流體動力學是流體物理學的一個學門:也就是研究流體運動的一個門學問(液體和氣體)。它包括空氣動力學(研究氣體的運動)和流體動力學(研究液體的運動) 。流體動力學有廣泛的應用,包括計算飛機的受力與動量,計算石油通過管道的流速,預測的天氣模式,了解太空的星際星雲,還有模擬裂變核武器引爆。流體力學甚至應用到交通流量研究,因為交通可被視為連續的流體。 

流體動力學提供了一系列的實用原理,這些原理是根據實際測量流體所推導出的經驗與半經驗法則, 用來解決實際問題。解決流體動力學問題通常涉及計算各種液體的參數,如速度,壓力,密度和溫度,這些都與時間/空間的函數有關。

流體力學的公式
流體動力學的基本公理是---守恆定律,特別是質量守恆,線性動量守恆(也稱為牛頓第二定律的運動) ,能源守衡(也稱為熱力學第一定律) 。這些是根據古典力學和量子力學和廣義相對論修改來的。這些公式是以雷諾傳送定理(Reynolds Transport Theorem)表示的。除上述外,液體被假定為遵守連續性的條件。那就是是由液體分子所組成的,相互碰撞與固體物體碰撞。但是,連續性假設認為流體是連續的,而不是離散。因此,密度,壓力,溫度和速度等屬性被視為無限小的點所構成的,且假定由一點到另外一點是連續性變化的。事實上,流體其實是有離散性質的(discrete), 而上述公式忽視了這點。只要液體有足夠的密度構成一個連續體,且不包含游離分子,且運動速度遠小於光速,它就能夠以牛頓流體與Navier - Stokes方程,這類由非線性的微分方程組來描述流體所受到的外界壓力與速度。而非簡化的方程式就沒有ㄧ套通用的解法(general closed-form solution),所以這類方程式只被應用在電腦運算流體(Computational Fluid Dynamics)否則就必須面臨必要的簡化。流體方程式可以用各種方程式來簡化,簡化的方程式可以更容易求解。其中一些允許適當的流體動力學問題在封閉的形式中(in closed form)求解。除了質量,動量和能量守恆方程以外,熱力學狀態中給予固定壓力的變因才能更完整地解決流體所遇到的問題。

可壓縮與不可壓縮的流体
所有液體在某些程度上都是可壓縮的,在壓力與溫度改變時密度就會改變。然而,在大部分的狀況下,壓力和溫度對密度造成的影響很小, 可以忽略不計。在這種情況下,流體可以視為不可壓縮的。否則,就必須要用更廣義的可壓縮流體方程式來表示流體了。從數學上來說,不可壓縮的流體就是假設流體包的密度是ρ, 這個流體包通過流體場時ρ不會改變. 其中D / dt是一個重要的相關參數,這是區域與對流的數值總和。這個限制條件主宰了方程式的簡化, 當流體具有均質的密度時。對於氣體而言,決定是否要用可壓縮或不可壓縮來描述的話,是以流體的馬赫數(Mach number)來評估。以下是比較粗略指標,當馬赫數低於大約0.3時, 氣體的可壓縮性質可以忽略不計算。對於液體來說,決定是否要用壓縮的方程式描述必須取決於流體本身的性質.(關鍵是液體的壓力和溫度)和水流條件(水流會影響流體是否接近臨界壓力) 。聲音的傳遞解法則是ㄧ定要考慮可壓縮性,因為聲波就是靠介質的可壓縮性來傳遞的。

黏性流與非黏性流
粘性對於流體的摩擦性會有重大影響。雷諾數(Reynolds number)可以用來評估是要用粘性方程式或是非黏性方程式來求解。斯托克斯流流量(Stokes flow)是具有非常低雷諾數的流體,因此跟黏性流體比起來他的慣性力可以忽略不計的。相反,高雷諾數表示慣性力比粘性(摩擦)更強。因此,我們可以假設的流體是非黏性的,所以跟慣性條件相比, 它的黏度我們完全不考慮進去。這種作法在雷諾數高的時候一般來說是很適用的。然而,在某些情況下,例如涉及固體邊界時,可能就必須要把年度參數考慮進來。當液體在固體邊界附近時, 其粘度往往不能忽略不計,因為無滑移(no-slip)條件下會產生一種很薄的高應變率區域(稱為邊界層)(strain rate (known as Boundary layer) ) ,即使是在黏度很小的狀態下也會因此產生漩渦(vorticity)。因此,在計算物體的淨力時(例如機翼)我們應該要以粘性流體方程式來求解。就如同d'Alembert'悖論所陳述,在無黏性的液體中的物體不會受到任何阻力(drag force)。求解無黏性流的標準方程式是Euler方程式。這是另一種常用的數學模型,特別在計算流體力學中常用到,它被用來計算距離物體比較遠的流體與邊界層,這個方程式會把邊界層的黏性參數考慮進去。Euler方程式可以整合到伯努利方程式(Bernoulli's equation)當中。當流體完全不具有旋轉與粘性時,伯努利方程式可用於整個流場。這種流體被稱為潛流(potential flows)。

穩定與不穩定流
流體力學(Hydrodynamics)能夠模擬Rayleigh - Taylor不穩定性. 當任何時間流場消失時,這樣的流体就被視為穩定流。否則,就是不穩定流。要決定某個流體是穩定或不穩定流,必須取決於參考的框架(frame of reference)。例如,在球體上的水流(laminar flow)如果是以球體做為參考物的話就被視為穩定流。如果你的參考物是固定的話, 所需用到的方程式就與是否穩定的水流場也沒有差別了。雖然嚴格定義的不穩定流,時間週期的問題往往可以用穩定流的方程式來求解。為此,他們的性質可以被認為是介於穩定和不穩定流之間。

層流(Laminar)與湍流(turbulent flow)
湍流是以回流,漩渦,和明顯的隨機性所構成的水流。沒有湍流的流體被稱為層流(laminar)。要注意的是,漩渦或回流並不一定只發生在湍流中-這些現象也可能出現在層流中。湍流是用雷諾分解的數學式(Reynolds decomposition)表示的,其中流體是穩定元件與擾動元件兩個部份的總和。一般認為湍流會遵守Navier - Stokes方程式。直接數值模擬( DNS )是以不可壓縮的Navier - Stokes方程式為基礎,可以模擬湍流並帶有適當的雷諾數值(求解受到電腦運算力與演算法的效率所影響) 。的DNS的結果是與實驗數據相符合的。大部分我們感興趣的流體其雷諾數高到DNS沒辦法去計算了,即使是用未來十多年的電腦也不可能計算出來。任何飛行器體積比人體大(長大於公尺) ,移動速度超過72公里/小時( 20公尺/秒)就會是遠遠超出了目前以電腦模擬運算的限制(雷諾數= 4萬) 。民航機的機翼(如在空中客車A300或波音747 )的雷諾數為40億. 為了解決這些現實生活中流體力學難題,湍流數學模型將是未來流體計算的主流。雷諾平均Navier - Stokes方程( RANS )(Reynolds-Averaged Navier-Stokes equations )結合湍流模型提供了計算湍流流動的模式,以別的公式來描述。

亞音速與跨音速,超聲速和高超聲速流體
雖然許多陸地流動(如水流通過管道)具有低的馬赫數,但許多研究題材(如空氣動力學)發生在高分數的馬赫數= 1或是更高(超音速流) 。當流體速度達到這種高馬赫數的境界時很多特別的現象就會發生(如超音速產生的衝擊波,馬赫數接近於1產生的不穩定現象 ,超音速流當中的離子化非平衡化學行為) ,這時候, 研究者必須要用別的方法處理流體計算。

非相對論與相對論流體 
古典流體力學是以牛頓力學推導出來的,這適用於大部分的情況。然而,當速度接近於光速時,牛頓力學是不準確的, 所以你就必須要考慮到參考座標與相對論。

流體力學
流體力學(Fluid mechanics(是研究流體如何運動與其受力。 (流體包括液體和氣體。 )流體力學可分為流體靜力學,這是靜態的流體,和流體動力學,這是研究動態的流體。流體力學是連續介質力學(continuum mechanics)的分支,這門研究部考慮物體是由原子所構成的。流體力學,特別是流體動力學,是很熱門的研究領域, 目前還有有許多尚未解決或部分解決的難題。

流體力學的數學計算非常複雜。有時,必須要以數值計算方法(numerical methods)才能解決,通常要借由電腦的幫助。電腦計算流體動力學( CFD ) 是一個新學門,是專門利用電腦來解決流體力學問題。透過電腦可以利用流體粒子視覺化的優勢----稱為粒子圖像測速(Particle Image Velocimetry)---這是ㄧ種實驗技巧用來視覺化與分析流體。流體力學是物理學的一個分支, 用來研究流體的特性,即液體和氣體,還有研究它們之間的交互作用力。

流體力學的研究可以追溯到古希時代,當時阿基米德(Archimedes)曾研究流體靜力學和浮力。中世紀波斯自然哲學家,其中包括Abū Rayhān al-Bīrūnī 與 Al-Khazini,他們結合了先前的動力學研究, 預示了未來的流體動力學發展。流體力學的快速發展是由達文西(觀察和實驗) ,托里切利(晴雨表),牛頓(粘度)和布萊茲巴斯卡(流體靜力學)等人開始的 ,並由丹尼爾白努力在Hydrodynamica引入流體動力學數學公式 ( 1738年) 。

後來 數學家(歐拉,達朗貝爾,拉格朗日,拉普拉斯,泊松))更近ㄧ步分析無黏性流體; 粘性流動則是由工程師包括泊肅和Gotthilf海因里希路德哈根等人所研究。隨後Claude-Louis Navier and George Gabriel Stokes等人提出了Navier – Stokes數學方程式,Ludwig Prandtl則是研究了邊界層,Osborne Reynolds, Andrey Kolmogorov, Geoffrey Ingram Taylor等科學家則是對流體粘度和亂流做了更近一步的研究。

流體力學的假設
就如同任何模擬現實世界的數學模型一樣,流體力學必須提出依些幾本假設。這些假設必須要先成立才能讓方程式的結果為真。例如,假定流體是在三度空間不可壓縮的流體。質量守恆的意思是任何固定的封閉表面(例如球)從外面流到裡面的速率ㄧ定要等於由裡面流到外面的速率。 (另外一種說法是,裡面的質量維持不變,外面也ㄧ樣) 。這個概念可以轉成表面的積分方程式。流體力學假定每一個流體服從如下:質量守恆,動量守恆的連續性假設。此外,假定流體是不可壓縮的, 這樣流體的密度就不會改變。液體常常可以被假定不可壓縮,但是氣體就不行這樣了。同樣,我們有時候也會假設流體的粘度是零。氣體往往可以假設為無。如果流體具有黏性的話,當它通過水管時,在流體邊界的地方速度會變成零。粘性流體,如果邊界不是多孔的話, .流體與邊界之間的剪力也會等於零。這就是所謂的無滑移條件(no-slip condition)。如果是多孔介質則不會無滑移狀況,在船頭,滑移條件不是零速度,在流體與多孔介質之間具有不連續的速度場(這是Beavers 與Joseph條件有關) 。

連續性假設
流體是由分子組成的,他們會相互碰撞或是與剛體碰撞。然而連續性假設卻認為流體是連續的。也就是說,密度,壓力,溫度和速度都定義在“無限小”的點上面,用來定義REV(Reference Element of Volume) ,定義在兩個分子之間的幾何順序裡。這些屬性被假定由一點到另外ㄧ點的連續變化,而且相當於REV的平均。因此,流體是由離散的分子所構成的這件事實是被忽略的。 這個連續性假設可以讓我們得到近似值的結果,就好像在天體力學中科學家會假設星球只是一個點一樣。因此,連續性假設可能導致不精確的結果。也就是說,在適當的條件下,連續假設還是有機會產生精確的結果。

我們可以透過統計力學來解決連續假設不準確的缺點。要用常規流體動力學或統計力學來計算, 就要靠克努森數來評估暸。克努森數的定義是分子平均自由路徑與已知的物理尺度之間的比值。這個物理尺度可以是,例如,流體的半徑。 (更簡單的說, 克努森數就是ㄧ個分子會撞到另外ㄧ個分子的距離相對於流體的總半徑的比值子) 。當克努森數數等於會大於1時, 想要求得正確的流體結果就必須用統計力學來解算。

Navier - Stokes方程式
Navier - Stokes方程式(這是根據Claude-Louis Navier 與 George Gabriel Stokes兩人所命名的)這是ㄧ組方程式用來描述流體(如液體和氣體)的運動。這方程式說流體粒子的動量變化只受到外部壓力與內部黏度力對流體產生影響。因此, Navier - Stokes方程式描述了施加在流體任意區域的利之間的平衡。Navier - Stokes方程式是一個微分方程式, 用來描述流體的運動。這個方程式可以計算我們感興趣的變數的變動率。例如, Navier - Stokes方程式對於黏度為零的流體, 它的加速度正好與外部的壓力成正比。這意味著,要解算Navier-Stokes方程式就必須要透過微積分計算。在現實應用中, 只有很少數簡單的狀況可以直接用原始的算式來算。這些簡單的例子通常是沒有湍流,水流穩定,且雷諾數很小。 為更複雜的情況下,如全球氣候系統的聖嬰現象(El Niño),或是機翼上的昇力計算, Navier - Stokes方程式的解答,目前就只能靠電腦才有可能算的出來了。這也就是所謂的電腦計算流體動力學的領域。

空氣動力學
空氣動力學是動力學的分支---他是研究空氣如何運動的一門學問,特別是空氣與物體之間的交互作用。空氣動力學與流體動力學和氣體動力學有密切關係,許多理論是共通的。空氣動力學意思與氣體動力學相當類似,只是說氣體動力學適用於所有氣體。了解空氣的運動方式(或稱為流場)就可以計算物體周圍由氣體施加的外力。流場常常要計算速度,壓力,密度和溫度等屬性, 這些是時間與位置的函數。經由定義流場的固定體積,質量守恆定律, 動量和能量守衡可以讓我們計算出以上屬性。通過數學分析, 實證逼近和風洞試驗空氣動力學。空氣動力學有幾個面向需要探討。流體所在的環境是第一個要探討的因素。外部空氣動力學是研究圍繞在物體外圍的流體。分析飛機的升力與阻力,在火箭前端或是硬盤磁頭形成的衝擊波就必須要以外部空氣動力學來研究。內部空氣動力學是研究流經固體物體內部的氣流。例如,內部空氣動力學研究的氣流通過噴射引擎或空調管線的氣流。流體本身的速度與音速的比值則是研究空氣流體的第二個重要因素。這個因素可以如此分類----亞音速,就是流體速度低於音速,跨音速指的是流體的某些速度低於因素 某些又高過音速(通常你會看到這時候的流體速度大約等於音速) ,超音速時流速大於音速,高超聲速流體的速度則遠遠大於音速。用數字來嚴格定義空氣動力學的話,高超聲速流必須要達到至少3-12的馬赫數 。粘度則是流體分類的第三個因子。某些狀況下流體的黏度對流體本身只有微不足道的影響,在這種情況下,粘度可以被忽略。我們稱為無黏性流體(inviscid flows)。不能忽略黏性的流體稱為粘性流體。

整個飛行記錄的歷史上留下許多畫面與故事,如Icarus與Daedalus的故事,Yuan Huangtou發明的載人風箏和降落傘飛行,Abbas Ibn所發明的可控制靈活的機翼。雖然空氣動力學的效應例如風的阻力(又名拖力)早就被亞里士多德,Avicenna,達文西和伽利略所研究,在17世紀前很少關於這方面的科學定理。在1505年,達文西描述了鳥類飛行的法典,這是最早的空氣動力學論文。達文西注意到飛行中的小鳥它的重心不位在身體的中心,他說明了機器鳥(ornithopter)的製作方法,機器鳥的拍打方式類似鳥類。牛頓爵士是第一位研究空氣阻力的科學家,他是第一位空氣動力學家。這個理論,牛頓認為,阻力跟物體的尺度,流體的密度,而與流體速度成倍數相關。在低流速時, 這個理論都被證明是正確的。牛頓還發明了一個定律: 描述了平面上的拖曳力會隨著流體流動的方向降低。不幸的是,這個方程式無法計算出正確的拖曳力(除非流體速度是超音速) 。

雷諾茲運輸定理
雷諾茲運輸定理是一個用在制定基本流體守恆動力學的基本定理。這些守恆定律(質量守恆定律,線性的動能守恆定律,能量守恆定律)是根據經典力學和熱力學推導出的。流體力學中,將流體視為固定體積往往更方便計算,因為追蹤個別流體粒子很不容易。因此,就必須要有能系統地控制體積的方程式。這個方程式就是雷諾運輸定理(Reynolds Transport Theorem)。 
想像一下,有個系統同時控制體積與流體的表面積。雷諾茲運輸定理指出,對於一個延伸的性質N它的變化率等於在固定體積的流體通過其表面流量。這個方程式的另一個寫法就是Navier - Stokes方程式。只是Navier - Stokes方程式還多了牛頓粘度法和傅立葉傳導法的概念。

Navier - Stokes方程式
Navier - Stokes方程式,是以Claude-Louis Navier 與 George Gabriel Stokes兩人所命名的,描述不可壓縮流體物質的黏性運動。當初是因為將牛頓第二定律套用到流體運動才產生這個方程式的,加上假定流體所受的壓力等於所有黏性參數的總和,再加上壓力系數。這是ㄧ個很有用的方程式,因為它們描述了很多跟學術研究與經濟利益有關的物理現象。它們可用於模擬天氣,海流,管道中的水流,機翼周圍的氣流 ,星系內的星球運動。因此,這些方程式通常都有簡化的和完整的版本,可以應用到飛機和汽車的設計,血流量的研究,設計發電站,分析污染造成的影響等如果再與Maxwell方程式一起計算,便可以應用在研究磁流體力學模型。 Navier - Stokes方程式也被應用到純數學中。有些令人驚訝的是,除了前面說明的廣泛用途外,數學家還沒辦法,在3d解法確實存在 ,或者,如果他們確實存在,他們不包含任何無限性(infinities) ,奇異或間斷(平滑) 。這個難題被稱為Navier - Stokes存在和平滑問題。克萊數學研究所稱這個是數學界最難解的七大問題,並提供美金壹百萬作為破解獎金。

Navier - Stokes方程式是一種微分方程式,不像代數方程那樣,並沒有與變量(如速度和壓力)之間有一個明確關係。相反地,它們之間的關係是一種變動率的關係。例如, Navier - Stokes方程式在簡單的情況下,理想流體(無黏度且不可壓縮)可以說,加速度是與壓力的梯度成成正比。 與固體力學相反的是, Navier - Stokes方程式往往不是決定位置而是速度。Navier - Stokes方程式解出來後就會得到速度場和流場,這是一個描述流體在某一特定點在空間和時間的速度。一旦速度場得到解決的,其他大量資料(如流速,拖曳力,流體粒子的運動路徑)就可以找到。

馬赫數

馬赫數是物體在空氣中運動的速度與聲音在空氣中的速度之間的比值。馬赫數常被用來表示物體的速度(飛機或導彈),當它的飛行速度接近(或倍數)音速的時候。

雷諾數

在流體力學和傳熱導學中 ,雷諾數是一個沒有單位的數值, 是用來表示慣性力與黏度力的比值,因此,這個參數能夠描述流體受到這兩種外力的影響。雷諾數時常常在分析流體動力學和傳熱時會增加,因此常被用來衡量實驗動態條件的標準。雷諾數也常被用在描述流體不同部位的特徵, 如平層流或湍流:平層流發生在低雷諾數,而粘性力佔主導地位,這是平滑,不斷流動的流體的特徵,而湍流發生在高雷諾數, 它的慣性力高,往往產生隨機漩渦,亂流和其他流量波動。 

Euler方程式

在流體動力學中,Euler方程式描述無黏性的流體。Euler方程式就相當於Navier-Stokes方程式, 只是完全沒有黏性與熱傳導。這個方程式通常是以守衡的方式表示,它直接代表的質量,動量和能量的守衡。該方程式是以Leonhard Euler所命名的。Euler方程式可應用於可壓縮以及不可壓縮的流體---只要用適當的狀態來套用或是流體力場的速度為零也可。

伯努利原理

在流體動力學中,伯努利原理用來描述無黏性的流體,當它增加速度,同時也會減少流體的壓力與潛在能量。 伯努利是位荷蘭-瑞士數學家, 他在1783年發表的Hydrodynamica書中發表了這個原理. 伯努利的原則可以適用於各種類型的流體流動,所以很多狀況都可以套用伯努利方程。但事實上,不同類型的流體有不同形式的伯努利方程式。最簡單的伯努利的定理可以用在可壓縮或不可壓縮的流體。更為複雜的伯努利的定理可以用在高馬赫數的可壓縮流體 。伯努利的原理其實就是ㄧ種能量守恆定理。這個定理說,在穩定流的ㄧ切機械能總和等於這流體的流體粒子相佳的結果。這就表示動能與勢能的總和必須保持不變。比方說流出水庫的水的能量總和必須要與水庫中每單位的水的能量相當

湍流或紊流
在流體動力學,湍流或紊流是具有混亂,隨機屬性的流體。這包括低動量擴散,高動量的對流,時間和空間上快速變化的壓力。沒有湍流的流體稱為平層流(laminar flow)的. 雷諾數會決定流體是否會產生平層流或是湍流;例如:水管裡面的水,如果雷諾數高於4000 (雷諾數介於2100--4000被稱為過渡流)將會產生紊流。雷諾數非常低的化是呈現速度是平層流,即是平順的流體. 
當流體的的速度增長,過渡期間會產生湍流。在湍流中,出現不穩定的大小不一的渦流且相互交流。而因為邊界層摩嚓而產生的阻力。邊界層的結構和位置經常變化,導致總體阻力減小。由於雷諾數會主宰平流—湍流的轉換程度,如果物體增大, 流體年度增加或流體密度增加, 這個轉換就會增大。

湍流會產生不同尺度的漩渦。大多數動能會存在於比較大尺度的結構中。能源由從這些大型結構到規模較小結構的的傳遞是由慣性和無黏性的機制所產生的。這種傳遞,會產生更小的結構,也就產生不同層次的漩渦。這個過程最終會產生很小的結構 這時候分子的擴散變的很重要, 且會造成粘性耗散能量。這麼小的尺度被稱為Kolmogorov尺度。

2D紊流(如可近似在大氣層或海洋) ,它的能量最終會發生在大尺度。這種現象被稱為能量傳遞反比, 並且在功率譜上具有k − (5 / 3)的特點。這就是為什麼在大尺度時會發生颶風這類的現象。

湍流擴散通常以湍流擴散係數表示。湍流擴散係數只是在現象學上的意義,跟分子擴散的意義很像,但是這並沒有真正的物理意義,它不跟流動的條件有關,也不是流體的屬性。此外,湍流擴散率的概念湍流通量和梯度平均變化的比率和分子的通量和梯度的比例很類似。

在大部分的情況下,這種假設只是近似值。然而,湍流擴散率是分析湍流流動最簡單的方法,而且已經有很多模型可以用來計算湍流擴散率。例如,在大型水體如海洋可以用湍流擴散率表示, 這係數與Richardson 的3/4倍定律一樣 而且受到隨機走動定律(random walk principle)所影響。在河流和大型洋流中,湍流擴散率可以用Elder公式的變化率還表示。

在設計水管系統,湍流要比平流消耗更高的馬達(幫浦)能量。但是對於應用在換熱器,反應器,湍流可以幫助傳熱和混合。 雖然在Navier - Stokes方程式中可以找到依些特殊解法,但是這些解法在高雷諾數的狀況都會變的不穩定. 敏感度受到初始狀態和邊界條件所影響 這會使流體時間/空間呈現不規則狀態,所以統計描述是必要的。俄羅斯數學家Andrey Kolmogorov提出了第一個描述湍流統計理論的基礎,根據能源梯級(這個想法最早是由Richardson所提出的)的概念與自我相似性。所以,著名的Kolmogorov microscales就是以他為命名的。

如果自我相似性被破壞了,統計的描述也必須修改 。儘管如此,完整的完整湍流描述仍是物理學上未解的謎題。根據關於海森堡的傳聞,如果他有機會問上帝一個問題,它會問什麼。海森堡說他會: “當我跟上帝見面,我要問他兩個問題:為什麼有相對論?為什麼有湍流?我相信第一個問題會比較容易一點。 ” Horace Lamb也有類似的傳聞(這位科學家曾經寫過ㄧ本流體力學的書) ,他想要問上帝量子力學和湍流。Horace Lamb在一次向英國科學進步協會的演講中說道, “我老了,當我死後,我希望在天堂能啟發我兩件事。其一是量子電動力學(quantum electrodynamics),另一個是流體的湍流運動。我相信在天堂我ㄧ定能找到量子電動力學的答案。 

Reynolds-averaged Navier–Stokes 方程式
Reynolds-averaged Navier–Stokes (RANS)方程式,是時間平均的流體運動方程式。這個方程式主要就是要來處理湍流。這個方程式是根據湍流特性為基礎, 它產生的結果近似Navier–Stokes方程式。對於一個固定,不可壓縮的牛頓流體,這個方程可寫成:方程式的左邊表示流體的平均動量變化, 這個變化是因為平均流的不穩定性與平均流的對流。這個變化是由平均流體力來平衡的, 由平均力場所產生的不同方向的力, 黏性壓力, 由力場波動所產生的表面壓力,這類通常稱為一般稱為雷諾應力(Reynolds stresses)。

Rayleigh - Taylor不穩定性 

Rayleigh - Taylor不穩定性,或RT不穩定(是以Lord Rayleigh 與 G. I. Taylor兩人所命名的) ,是指兩個不同密度的流體之間的介面會有不穩定的現象,在介面會發生較輕的流體推向較重的流體。 這跟interstellar cloud與 shock system所發生的現象一樣。或者是當重力施加於兩個不同密度的流體時, 當較輕的流體在較重的流體之上,例如當由浮在水上面的時候。


上圖為Rayleigh勳爵發明的實驗

考慮兩個完全平面平行的流體擺在一起,較重的那個在較輕的之上,兩者都受到重力影響。這樣的平衡是不穩定的且受到某些干擾或紊流。這個不穩定的狀態會越來越強,並導致潛能的釋放,較重的流體受到重力影響往下移動。這樣的實驗法是由Rayleigh勳爵發明的。重要見解的胃腸泰勒說,他意識到這種情況,就等於將局勢時流體加速(不含重力) ,與較輕的流體加速進入重液體。 這可能是經驗豐富,為例如,加速了一杯水下降的速度超過了地球引力加速。 隨著不穩定的變化, 往下流動的流体會很快速地產生所謂的相互交錯的”Rayleigh–Taylor手指”。因此, Rayleigh - Taylor不穩定性,有時是以這種現象(手指)來做定性的。 較輕的流體向上移動,看起來像是蕈狀。 這種現象不僅可以在地面上發現,從鹽丘到天氣轉換,甚至天體物理學和電子流體動力學都可以發現 。我們可以蟹狀星雲發現RT手指,蟹狀星雲是超新星在一千多年前爆炸產生的星雲脈衝波推擠了蟹狀星雲的的星雲脈衝波星。


請注意,Rayleigh - Taylor不穩定性與Rayleigh不穩定性是不一樣的。後者,有時被稱為水管不穩定性,它出現的原因是表面張力造成的,當圓柱水柱被噴成水滴時, 水流具有相同體積,但較少的表面面積。

大渦模擬Large eddy simulation
大渦模擬Large eddy simulation(LES)是一種計算法用來解決湍流流體計算偏微分方程式. 這個計算法在1960年代末期廣為流行. 最早是由Joseph Smagorinsky用這套方程式來模擬大氣氣流,所以在當時它的主要被使用在氣象計算和預測。在80年代和90年代它成為廣泛使用在工程領域。
由Kolmogorov's( 1941年)著名的理論做出的ㄧ個推導,這個推導的結論是大渦的流動是與流體的幾何有關,相對大漩渦而言, 較小的漩渦會有比較整體的特色。基於以上推導,直接去計算大漩渦,但是大漩渦是用較小的漩渦來進行數學模式化來推導大漩渦的。因此,LES的大規模流體會被計算,但是較小規模的(即所謂的亞網格尺度)會用網格尺度來模擬出來( SGS)。實用的作法是,必須要多ㄧ項次網格壓力數值(sub-grid scale stress term)才能解出過濾的Navier - Stokes方程式。最常用的SGS模式是Smagorinsky模式與其動態變數。這些數值補償了未解出的湍流維度,經由 在方程式中添加“渦粘度”(eddy viscosity)。

LES比DNS需要更少的計算,但當要求解Reynolds-averaged Navier-Stokes equations (RANS)時卻需要更多的計算力。當計算邊界附近時所需要的電腦效能則是急遽增加,這類的計算已經超出當今超級電腦所能計算的了 ,這就是為什麼我們稱LES---“兩全其美” 。出於這個原因,區域處理的方法常常被採用, 在邊界附近的計算就改由RANS或實驗為基礎的模型來處理, 而不使用LES。

跟計算便宜RANS比較起來, LES的主要優點是增加結果的細節。RANS只能提供“平均”的結果,LES的計算可以預測瞬時流量特徵與解算湍流結構。這一點在模擬化學反應時尤其重要,如燃燒的引擎的燃料。 “平均”濃度的化學物質可能還太低不至於引發反應,瞬間的局部高濃度就有可能讓反應會發生。LES還比RANS提供更精確的結果,特別是涉及流體分離或或聲學預測上。

直接數值模擬( DNS )
直接數值模擬( DNS )是計算流體力學的ㄧ種模擬方式 其中會求解Navier - Stokes方程式 但是不會計算湍流模型。這表示,空間上與時間上各種尺度的湍流都必須解算。在尺度內的空間, 即使是最細微的尺度((Kolmogorov microscales))都必須要計算,最大含有最大部份動能的L尺度。

Detached eddy simulation
分離的渦模擬是RANS模式的修改版,其中DES將整個流體模型轉換成次網格的尺度來計算 因此它的細緻度足以計算LES。但是在邊界的區域紊流的尺度比網格的尺度還要小, 所以在邊界的區域要用RANS計算。2當紊流尺度超過了網格尺度, 該區域就用LES模式計算。所以,電腦在計算的時候並不是去計算完全是LES2的網格細密度,因此從而大大降低計算成本。雖然DES最早是寫成Spalart - Allmaras模型 ,藉由通過適當修改RANS 模型的尺度, 它也可以用其他RANS模型來實行( Strelets , 2001年) ,。因此,Spalart - Allmaras模型是以DES為根基但是是含有邊界模型的ㄧ種LES,以其他DES為基礎的用起來其實就是RANS-LES混合的模型。如果是RANS-LES混合模型 它的網格生成會比單純的RANS 或LES還要複雜。DES是一個沒有邊界的計算法, 這種演算法提供單一個介於RANS與LES 區域之間的速度向量。

結語
解這些物理公式的背景 對於使用FumeFX, Glu3D或Realflow是否有幫助能? 答案可能因人而異. 很顯然黏度對於流体的運動是有影響的 特別是在流体的邊界處. 有沒有想過用FumeFX做核爆特效呢? 蕈狀雲就跟Rayleigh - Taylor不穩定性有關. 如果你要真的模擬蕈狀雲, 其實就必須要在3DS MAX中製作兩種流体 ㄧ個是爆炸體本身的流体 另一個是大氣 才有可能以物理的方式產生那種效果. 只是FumeFX的參數設定讓你不在考慮空氣的情況下就有可能達成核彈特效. 由此可知所謂的科學模擬和視覺化特效還是不同的.

FumeFX, Glu3D與Realflow的軟體介面, 都有共通的物理屬性參數

我們從這個角度來看, Realflow就是一個流體視覺化的軟體, XFlow則是科學分析軟體. XFlow重視turbulence亂流這塊. 兩位偉大的科學家都認為turbulence是比相對論還困難的學問 可見它有多複雜. 馬赫數(Mach number), 雷諾數(Reynolds number), 佛路德數(Froude number)這三個數值是流體力學最重要的數字 如果能透過電腦與軟體將流體模擬出來還能同時吻合這三個數值 虛擬的風洞實驗就不再是夢想. Glu3D到Realflow再到XFlow這三套流體軟體 我們可以看到Glu3D在流體邊界的地方模擬的不夠精確 Glu3D沒有很明顯的尺度造成的模擬差異, 再到Realflow這個中階的流體力學模擬軟體 有很棒的流體運動模擬效果 產生的mesh也很逼真 但是在流體與流體間的混合介面卻不夠寫實 最後到了XFlow這類軟體有了Rayleigh - Taylor不穩定性模擬的能力. CG軟體的發展在這幾年年年都讓使用者享受到創造更寫實的虛擬世界的快感.

參考與翻譯的資料:
http://en.wikipedia.org/wiki/Fluid_dynamics
http://en.wikipedia.org/wiki/Fluid_mechanics
http://en.wikipedia.org/wiki/Aerodynamics
http://en.wikipedia.org/wiki/Reynolds_transport_theorem
http://en.wikipedia.org/wiki/Navier-Stokes_equations
http://en.wikipedia.org/wiki/Mach_number
http://en.wikipedia.org/wiki/Reynolds_number
http://en.wikipedia.org/wiki/Euler_equations_(fluid_dynamics)
http://en.wikipedia.org/wiki/Bernoulli's_equation
http://en.wikipedia.org/wiki/Turbulence
http://en.wikipedia.org/wiki/Reynolds-averaged_Navier-Stokes_equations
http://en.wikipedia.org/wiki/Rayleigh–Taylor_instability
http://en.wikipedia.org/wiki/Large_eddy_simulation
http://en.wikipedia.org/wiki/Direct_numerical_simulation
http://en.wikipedia.org/wiki/Detached_eddy_simulation

[更多文章]

7 comments:

aomay said...

謝謝你的翻譯
雖然閱讀起來對我來說有點吃力
(畢竟這又是另外一個故事)
但是仍然對許多流體的發展與故事
有了些基本的概念
~~也期待更多更好的文章出現

hammerbchen said...

感謝AOMAY大的支持

翻譯到後來其實我有偷工減料啦 沒有每段都翻譯


翻玩後才比較知道1.速度2.尺度3.粘度 對於流體的性質影響很大

還有就是Turbulence是一個很複雜的東西 也是流體模擬逼真的關鍵. 還有就是Turbulence比相對論還複雜....XD


下一篇應該會出Glu3D教學影片了 在這裡預告一下

Sai said...

這也意味 xflow 會算的更久嗎??

很棒的文章...雖然即使是中文我仍然看不太懂...

hammerbchen said...

很棒的文章...雖然即使是中文我仍然看不太懂...--->我自己也翻的不是很懂


有點心虛....XD

Anonymous said...

流體力學的物理式以偏微分(P.D.E)居多,盡量拿筆去算一下,至少可以預估結果,少花一點大量的運算時間!

Turbulence在真實世界是隨機產生的運動形式,超級電腦目前只能假設狀況,不斷的運算模擬,提供給一些不可預測的高風險作業環境做為參考!

例如航太領域、海洋領域等等

OldMonkey老猴 said...

請問這是那一位的講稿?聽眾對象是誰?非常ambitious. 我是波音退休的計算流體力學研究經理, 文中DES是我團隊研究出來。
計算流體力學不但能模擬流場。 在飛機設計上更可以用反問題Inverse Problem, 將數學題改成“怎樣的飛機外型可以達到最省燃料” 來算出飛機的形狀。 現在波音的新飛機全部都是這樣設計出來的。 這是風洞實驗無法做的。

hammerbchen said...

Dear 老猴

很高興有像你這樣業界的專家能閱讀這篇文章. 這不是演講稿 這只是整理的資料與原文翻譯的整理. 整理這些資料的原因是因為Nextlimit公司即將推出XFlow這套流體軟體 我在為將來demo軟體作準備

有任何錯誤請多多指教

我的mail: hammerbchen@gmail.com

我也有在畫素描 水彩 認識一下吧!