上一期中,我們詳細介紹了nanoFluidX中的四種粒子類型的前三種,分別是WALL,MOVINGWALL和FLUID,以及它們對應的基本設置。
今天,我們來深度挖掘神秘的第四種粒子 – MASSFLOW。
什麼是MASSFLOW粒子?
MASSFLOW粒子之所以與眾不同,是因為它是唯一一類不參與計算的粒子。它存在的意義正如它的名字所揭示的那樣,是為了統計某個區域的流量。既然不參加計算,那麼它也不需要遵守不能與其他種類的粒子重疊的限制。所以在建模的過程中,它是唯一一類可以與任何粒子重疊的粒子。
MASSFLOW粒子如何統計流量?
每個MASSFLOW粒子會在以dx為邊長的立方體內查找被標記為FLUID類型的粒子,然後計算這個立方體內所有粒子的速度總和。這個速度乘以所覆蓋的面積(dx*dx)和密度,得到的就是一個MASSFLOW粒子所探測到的品質流量。而某個區域內所有MASSFLOW粒子的總品質流量,是通過將每個粒子對應的流量值進行求和運算得到的。讓我們通過下面這個簡單的例子來加深體會。
在這個測試算例中,一共有5種不同的phase,分別為:楔形(藍色)、球形(青色)、立方體(綠色)、離散點(黃色)的FLUID粒子,以及紅色的MASSFLOW粒子。我們想像一下左邊這些流體粒子以恒定的速度向右移動並依次通過紅色的MASSFLOW平面,根據上一段中解釋的演算法,將會得到怎樣的流量統計曲線呢?
答案揭曉,每個FLUID Phase對應的流量統計曲線如下,大家是不是猜對了呢?
可能對圖片中的橙色曲線,大家都能猜個八九不離十,但是藍色的曲線究竟代表什麼呢?其實從名字上來判斷,橙色曲線(RUNNING_AVG_MASSFLOW)指的是每一個時間步對應的平均流量,可以認為是一個瞬態值;藍色曲線(TOTAL_AVG_MASSFLOW)代表的則是從當前時間步一直追溯到初始時刻的所有流量值的平均值。
原則上來說,只要有橙色曲線,我們通過簡單的數學計算就能得到藍色曲線。
如何生成MASSFLOW粒子?
流量的定義是指在單位時間內流經某個有效截面的流量體,因此nanoFluidX中接受的MASSFLOW粒子是在預定義的平面中生成的。目前版本中,支持任意形狀的平面作為流量監測面。我們以一個長方形的平面為例,介紹一下在HyperMesh中如何生成MASSFLOW粒子。
這裡有兩點需要特別注意!
首先,統計流量只需要一層粒子,因此人為拉伸出來的填充粒子的封閉空間的厚度只需要等於粒子間距dx即可。
其次,這裡提到了一個很重要的概念:局部座標。一般來說,如果監測面與全域坐標系的軸是垂直或平行的關係,我們就沒有必要建立局部座標了;而這個例子中的平面與全域坐標系的坐標軸是形成一定角度的,這種情況下如果不建立局部座標,就會出現下圖右側的粒子排布方式。nanoFluidX規定MASSFLOW粒子必須在平面內,而不能以沿平面上下交錯的方式排布。
為了避免出現這種不允許的情況,就要在建模時建立local coordinate system,並且在mesh orientation中選擇這個局部坐標系。
至於MASSFLOW平面的形狀和大小,要根據統計需求來確定。我們需要知道的是,這個統計流量的平面可以和壁面有干涉,甚至穿透壁面(如下圖所示),因為只有被標記為FLUID的粒子才會被統計,屬於WALL或者MOVINGWALL的粒子會被自動忽略。如此智慧的MASSFLOW粒子是不是把前處理的難度降低了許多?
值得一提的是,如果是氣液兩相流的問題,那麼會有不止一個FLUID Phase出現在計算域中,那麼nanoFluidX又是如何統計多相流的流量的呢?
大家不用擔心需要額外的操作或定義,屬於不同Phase的流體粒子的流量會被分別統計,並記錄在txt檔的不同資料列中,大家可以一目了然不同的氣體或液體通過某個監測面的流量分別為多少。是不是很方便呢?
如何定義MASSFLOW粒子?
在cfg檔的phase definition中,我們需要對每一個MASSFLOW Phase做以下定義:
其中,gridVecMassFlow vector指的是在流量監測平面中的任意一個向量;而normVecMassFlow vector指的是垂直於監測面的向量,他的指向定義了流量統計的正方向,也因此決定了統計值的正負號。值得一提的是,無論是gridVecMassFlow vector還是normVecMassFlow vector,我們都不需要對輸入的向量做歸一化處理。換句話說,向量方向的定義比向量大小的定義更重要。除此之外,在最新版本中,多了一個massOrVolume的選項,我們可以預先選擇究竟是統計品質流量還是體積流量。
如何對MASSFLOW粒子的統計資料進行後處理?
這也是大家比較困惑的問題。計算完成後,我們會得到某個預定義的流量監測面對應的txt檔,所有的統計資料都在檔中。由於瞬態計算的初始階段都會經歷一段數值震盪,所以我們建議觀察一下流量曲線從哪個時刻開始趨於收斂或者只在小範圍內波動,那麼就以這個時刻為起點,忽略之前的統計資料。一般的經驗是選取後60%的資料做進一步統計,當然不同的算例會有不同的判斷。
另外一個問題是關於流量統計中出現的正負號應該怎樣處理。
前面提到了,前處理中我們會定義一個流量統計的正方向,與這個方向一致的為正流量,相反的則為負流量。那麼在計算平均值的時候,是要全部取正,還是保留正負號直接求和呢?
這個取決於統計流量的目的。如果這個流量監測面用來判斷這個區域的流體粒子通過率,比如齒輪箱中某個部件的潤滑情況,那麼應該將流量值取正後再相加,因為這一類的統計是不需要考慮流動的方向性的,不管從哪個方向來的流體粒子,都會起到潤滑效果。如果流量監測的目的是統計進入或流出某個區域的流量,比如判斷某個區域的積油情況,那麼這樣的統計的是具有方向性的,應該在資料處理中保留正負號。
最後提一句,nanoFluidX對MASSFLOW粒子的Phase數量沒有限制,也就是說,我們可以在不同的位置建立多個MASSFLOW監測面,唯一需要注意的是,每個監測面需要分配一個Phase ID,並在cfg檔中分別定義。而有多少個不同的MASSFLOW Phase,就會在計算結束後得到相應數量的txt檔。
nanoFluidX中的四種粒子就都講完啦,小夥伴們有沒有學會呢?
留言列表