fluent計算錯誤分析
2017-01-11 by:CAE仿真在線 來源:互聯網
1. FlUENT
1.1 求解方面
1.1.1 floating point error是什么意思?怎樣避免它?
Floating point error已經提過很多次了并且也已經對它討論了許多。下面是在Fluent論壇上的一些答案:
從數值計算方面看,計算機所執行的運算在計算機內是以浮點數(floating point number)來表示的。那些由于用戶的非法數值計算或者所用計算機的限制所引起的錯誤稱為floating point error。
1)非法運算:最簡單的例子是使用Newton Raphson方法來求解f(x)=0的根時,如果執行第N次迭代時有,x=x(N),f’(x(N))=0,那么根據公式x(N+1)=x(N)-f(x(N))/ f’(x(N))進行下一次迭代時就會出現被0除的錯誤。
2)上溢或下溢:這種錯誤是數據太大或太小造成的,數據太大稱為上溢,太小稱為下溢。這樣的數據在計算機中不能被處理器的算術運算單元進行計算。
3)舍入錯誤:當對數據進行舍入時,一些重的數字會被丟失并且不可再恢復。例如,如果對0.1進行舍入取整,得到的值為0,如果再對它又進行計算就會導致錯誤。
避免方法
計算和迭代 我認為設一個比較小的時間步長會比較好的。或者改成小的欠松馳因子也會比較好。從我的經驗來看,我把欠松馳因子設為默認值的1/3;降低欠松馳因子或使用耦合隱式求解;改變欠松馳因子,如果是非穩態問題可能是時間步長太大;改善solver-control-limits比例或許會有幫助;你需要降低Courant數;如果仍然有錯誤,不選擇compute from初始化求解域,然后單擊init。再選擇你想從哪個面初始化并迭代,這樣應該會起作用。另外一個原因可能是courant數太大,就樣就是說兩次迭代之間的時間步太大并且計算結果變化也較大(殘差高)。
網格問題 當我開始縮放網格時就會發生這個錯誤。在Gambit中,所有的尺寸都是以mm為單位,在fluent按scale按鈕把它轉換成m,然后迭代幾百次時就會發生這種錯誤。但是當我不把網格縮放到m時,讓它和在Gambit中一樣,迭代就會成功;我認為你應當檢查網格,你的網格數太多了,使用較少的網格問題就會解決;網格太多,計算機資源不夠用,使使比較粗的網格。
邊界條件 在我的分析中,我設了一個wall邊界條件來代迭axis邊界條件,結果fluent拒絕計算并告訴我floating point error。你的邊界條件不能代表真實的物理現象;錯誤的邊界條件定義可能會導致floating point error。例如把內邊界設成interior;一次我使用對稱邊界條件模擬2D區間時也遇到這種問題,我把symmetry設為axe symmetric,就發生了floating point error;檢查你設的湍流參數,減小湍流強度,先進行50次迭代。
多處理器問題 我近來在進行多處理器模擬時也遇到相似的問題。問題的解決方法是在單個處理器上運行,這樣就運算得很好。
錯誤迭代 以錯誤的條件來初始化,在開始迭代時就會發生floating point error。
1.1.2 coupled和segregated求解有什么區別?
Coupled會同時求解所有的方程(質量守恒方程、動量守恒方程和能量守恒方 程)而不是單個方程求解(方程互相分離)。當速度和壓力高度耦合(高壓和高速)時應該使用耦合求解,但這樣會需要較長的計算時間。
在耦合求解中,能量方程中總是包含組分擴散(Species Diffusion Term)項。
相關標簽搜索:fluent計算錯誤分析 Fluent培訓 Fluent流體培訓 Fluent軟件培訓 fluent技術教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學反應 fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析