在利用Fluent + System Coupling + Mechanical處理雙向流固耦合問題時,通常需要了解幾個迭代概念。雙向流固耦合問題計算量很大,若搞不清楚這些迭代數量的問題,胡亂設置一通的話,可能會導致整個計算量暴增。本文描述在FSI設置過程中涉及到的這些與計算量相關的迭代次數問題。
1 雙向流固耦合中的迭代如下圖所示,雙向流固耦合計算包含三層迭代:瞬態時間迭代、耦合迭代以及物理場的內迭代。
Time Loop:瞬態時間迭代。該參數在System Coupling中進行設置。
Coupling Loop:耦合迭代。指定在一個時間步長內流體求解器與固體求解器的數據交換次數。該參數在System Coupling中指定
Field Loop:物理場迭代。在流體求解器和瞬態結構求解器中分別指定。
2 Time迭代兩個參數來控制時間迭代:
End Time:指定總的計算時間。
Step Size:指定時間步長。
總時間迭代次數為:
要計算的時間長度與計算需求有關,一般情況下不能隨意設置。
時間步長與收斂性有關,還會影響到流體計算中的動網格更新,一般不能設置得過大。
註:當雙向耦合計算提示流體計算出現負體積時,一方面可以檢查動網格參數設置是否合理,另一方面可以在這裡嘗試減小時間步長。
3 Coupling迭代Coupling迭代用於控制在一個時間步內流體求解器與結構求解器之間的數據交換次數。可在System Coupling中設置。
上圖中Step Controls參數下設置Minimum Iterations與Maximum Iterations。
設置最小迭代次數與最大迭代次數,實際Coupling迭代次數由流體求解器與固體求解器的收斂性來決定,但最小迭代次數必須滿足。
真實的流體迭代次數等於Coupling迭代次數與內迭代次數的乘積。
如設置耦合迭代次數為2~5,在Fluent中Run Calculation節點下設置Max Iterations/Time Step為20,若在一次耦合迭代中流體求解器未達到收斂,則會進入下一個耦合迭代接著計算,直至達到收斂。假如在第三次耦合迭代中達到收斂,則會停止流體計算,進入下一個時間迭代;若在第5次耦合迭代完畢後流體求解器仍未達到收斂,則依然會進入下一個時間迭代,但會在消息窗口中給出不收斂的警告信息。
友情提示:當流體求解器和結構求解器收斂性較好時,可適當降低耦合迭代的下限,比如將其設置為1,有助於縮短計算時間。
4 流體迭代流體計算中與迭代次數相關的參數在模型樹節點Run Calculation下。雙擊該節點,右側設置面板中參數如圖所示。
其中參數Time Step Size與Number of Time Steps並不起作用,真正雙向耦合計算的時間步長和時間步數,是在System Coupling中指定的。
參數Max Iterations/Time Step用於控制在每一個耦合迭代中Fluent求解器迭代次數。
考慮到計算量的問題,Fluent單純迭代的計算量遠小於耦合步計算量,因此適當增大參數Max Iterations/Time Step以降低耦合步迭代次數,有利於縮短整個耦合計算時間。
註:耦合步迭代不僅涉及到流體計算,還涉及到結構計算,同時還包含數據交換過程,該時間消耗遠大於單純的流體計算迭代。
5 結構求解器迭代結構求解器收斂控制通過參數Substeps來控制,如下圖所示,有時還配合參數Auto Time Stepping一起控制。多數情況下,結構求解器收斂性不存在問題,通常關閉自動時間步長,並將子步數量設置為1,以減少計算時間消耗。當計算過程中出現結構求解器不收斂時,可適當增大參數Substeps,該參數的含義與流體求解器中的Max Iterations/Time Step類似。
結構求解器中的Step End Time參數通常設置為大於等於真實計算時間,雖然該參數並無太大實際意義,但在System Coupling中設置的計算時間值只能小於該參數。
6 迭代次數估算例如:
在Fluent設置Max Iterations/Time Step參數為20
System Coupling中設置Minimum Iterations為1,設置Maximum Iterations為5
System Coupling中設置End Time為2,設Step Size為0.01
結構求解器設置Substeps為1
則估算:
註:當網格數量較多時,數據交換消耗的時間會很長。為節省計算時間,適當減少耦合迭代次數,可選擇增加Field迭代次數。
本來計劃更新雙向耦合實例的,結果不小心網格搞多了點,算了十幾個小時才到70%,等明後天吧。