流場(向量場)臨界點的檢測與分類

 

         幫實驗室做流場的事情,因此臨時在做畢設的同時穿插着看了幾篇流場的論文。感慨就是英文太差、數學基礎不夠,C++不熟悉。總之,自己距離目標很遙遠。今後努力的目標是,回顧高等代數、微分幾何等知識。學習C++OpenGlMFCSTL。總之,很多要學習跟看的東西。需要加油的。

         然後記錄一下看了幾篇論文總結的臨界點的檢查與分類知識。

         定義1  (臨界點,Critical Points) :如果流場中某點P0 的三個速度分量均爲零,而且存在一個包圍P0 的鄰域,該鄰域內除P0 外任意點處的速度矢量均不爲零,P0 爲該流場中的一個臨界點,記爲CP0

         首先是檢測。現有的臨界點檢測方法包括MC 方法(Marching Cube ,MC)和基於幾何代數的方法 MC 方法是構造三維標量數據場中等值面的經典算法,把流場數據網格頂點的三個速度分量u v ,w 都分別當作標量來看待,就可以直接應用MC 方法得到v = 0 的點,MC 方法只適合於六面體單元構成的規則而密集的數據場,不適用於稀疏的、不規則的數據場。Stephen Mann 等通過幾何代數(Geometric Algebra) 的方法求出網格單元的poincare 指數ind ( c) ,如果ind ( c) 0 ,則該網格單元(cell) 必然存在臨界點,這種

方法雖然可以準確地檢測出臨界點,但是算法難以理解而且計算量大。本文將Sperner 引理引入到臨界點檢測中,給出了臨界點檢測的新算法。

         根據定義可知,如果網格上的點是臨界點,則可以很容易的判定,因爲它的速度矢量均爲0,下面講解如果臨界點不在網格邊緣上而是在區域內如何判定。

簡單理解就是看右圖,向量的方向落在四個象限中分別給點標記成1234.如果在一個區域內,如左圖,即邊界點包含1234.則稱爲是Sperner 完全標號的,這樣的區域內部必然包含至少一個臨界點。

 

然後是將臨界點分類。臨界點分類是根據它的Jacobian矩陣的特徵值決定的。首先來解釋Jacobian矩陣。Jacobian矩陣是一個向量在另一個向量上的導數:

求解特徵值的Jacobian矩陣

式子中的u,v是向量在xy方向上的兩個分量。這兩個分量分別是用函數表示,分別是關於xy的函數。因此,矩陣內部的值分別是uv關於xy的偏導數。

各種臨界點的分類

圖中的R1R2Jacobian矩陣的特徵值的實部,I1I2是虛部。

如何計算特徵值呢?

矩陣的特徵值就是它的特徵多項式的根。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章