fluent批量處理——連續計算以及批量后處理
瀏覽:64468 評論:3 收藏:3
上一次,已經提到了采用journal文件進行計算前的模型參數設置,想必大家覺得很過癮吧!根據本人自身經歷來說的話,面對每次上千的工況,采用此種方法還是減少了很大的工作量。
本次,將繼續介紹journal的另外一些別的用途:連續計算以及批量后處理。
1、連續計算
上千的工況case文件寫好了,那就得計算,想想按照以往肯定是投一個計算,等著時間差不多了,或者計算完了再接著投計算,但是很多時候會遇到計算結束的時候是在晚上或者是在節假日,這時的話,如果第二天不來計算機房的話,那么寶貴的時間就浪費了,來機房的話,為了幾個計算又顯得不太值得。因此,本節將再次利用 fluent中的journal文件實現連續計算。
開始的步驟見帖子” http://forums.caenet.cn/showtopic-532623.aspx“
以下是投計算的journal文件:
(cx-gui-do cx-activate-item "MenuBar*ReadSubMenu*Case & Data...")
(cx-gui-do cx-activate-item "Warning*OK")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent1.cas")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "MenuBar*InitializeSubMenu*Initialize...")
(cx-gui-do cx-set-list-selections "Solution Initialization*DropDownList1(Compute From)" '( 6))
(cx-gui-do cx-activate-item "Solution Initialization*DropDownList1(Compute From)")
(cx-gui-do cx-activate-item "Solution Initialization*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "Solution Initialization*PanelButtons*PushButton2(Cancel)")
(cx-gui-do cx-activate-item "MenuBar*SolveMenu*Iterate...")
(cx-gui-do cx-set-integer-entry "Iterate*Table1*Frame2(Iteration)*Table2(Iteration)*IntegerEntry1(Number of Iterations)" 3000)
(cx-gui-do cx-activate-item "MenuBar*SolveMenu*Iterate...")
(cx-gui-do cx-activate-item "Iterate*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "MenuBar*WriteSubMenu*Case & Data...")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent1.cas ")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Warning*OK")
(cx-gui-do cx-activate-item "MenuBar*ReadSubMenu*Case & Data...")
(cx-gui-do cx-activate-item "Warning*OK")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent2.cas")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "MenuBar*InitializeSubMenu*Initialize...")
(cx-gui-do cx-set-list-selections "Solution Initialization*DropDownList1(Compute From)" '( 6))
(cx-gui-do cx-activate-item "Solution Initialization*DropDownList1(Compute From)")
(cx-gui-do cx-activate-item "Solution Initialization*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "Solution Initialization*PanelButtons*PushButton2(Cancel)")
(cx-gui-do cx-activate-item "MenuBar*SolveMenu*Iterate...")
(cx-gui-do cx-set-integer-entry "Iterate*Table1*Frame2(Iteration)*Table2(Iteration)*IntegerEntry1(Number of Iterations)" 3000)
(cx-gui-do cx-activate-item "MenuBar*SolveMenu*Iterate...")
(cx-gui-do cx-activate-item "Iterate*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "MenuBar*WriteSubMenu*Case & Data...")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent2.cas ")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Warning*OK")
OK,不管你有多少個計算工況,統統按照這樣編寫就OK。不要要注意的是,確保你設置的步數”Iterate“下,計算結果能夠收斂,這個很重要。
一個美好的夜晚或者周末就這樣被你很好的利用起來了!覺得不錯吧!
2、批量后處理
其實,思路還是和上面一樣,所以直接上GUI代碼:
(cx-gui-do cx-activate-item "MenuBar*ReadSubMenu*Case & Data...")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.cas")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "MenuBar*ReportMenu*Forces...")
(cx-gui-do cx-set-toggle-button "Force Reports*Frame1*Frame1(Options)*ToggleBox1(Options)*Forces" #f)
(cx-gui-do cx-activate-item "Force Reports*Frame1*Frame1(Options)*ToggleBox1(Options)*Forces")
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry1(X)" '( 1))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry2(Y)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry3(Z)" '( 0))
(cx-gui-do cx-set-list-selections "Force Reports*Frame2*List2(Wall Zones)" '())
(cx-gui-do cx-activate-item "Force Reports*Frame2*List2(Wall Zones)")
(cx-gui-do cx-activate-item "Force Reports*Frame2*PushButton3(DeselectAll)")
(cx-gui-do cx-set-list-selections "Force Reports*Frame2*List2(Wall Zones)" '( 1 2 3 5))
(cx-gui-do cx-activate-item "Force Reports*Frame2*List2(Wall Zones)")
(cx-gui-do cx-activate-item "Force Reports*PanelButtons*PushButton1(Write)")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry1(X)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry2(Y)" '( 1))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry3(Z)" '( 0))
(cx-gui-do cx-activate-item "Force Reports*PanelButtons*PushButton1(Write)")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Question*OK")
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry1(X)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry2(Y)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry3(Z)" '( 1))
(cx-gui-do cx-activate-item "Force Reports*PanelButtons*PushButton1(Write)")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Question*OK")
(cx-gui-do cx-set-toggle-button "Force Reports*Frame1*Frame1(Options)*ToggleBox1(Options)*Moments" #f)
(cx-gui-do cx-activate-item "Force Reports*Frame1*Frame1(Options)*ToggleBox1(Options)*Moments")
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry1(X)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry2(Y)" '( -2))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry3(Z)" '( 0))
(cx-gui-do cx-activate-item "Force Reports*PanelButtons*PushButton1(Write)")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Question*OK")
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry1(X)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry2(Y)" '( -1))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry3(Z)" '( 0))
(cx-gui-do cx-activate-item "Force Reports*PanelButtons*PushButton1(Write)")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Question*OK")
后面的接著同樣的方式寫就是了,很方便的。
其中”(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")“這一步的后綴名,你也可以設置成別的,不過最好是txt。
本次,將繼續介紹journal的另外一些別的用途:連續計算以及批量后處理。
1、連續計算
上千的工況case文件寫好了,那就得計算,想想按照以往肯定是投一個計算,等著時間差不多了,或者計算完了再接著投計算,但是很多時候會遇到計算結束的時候是在晚上或者是在節假日,這時的話,如果第二天不來計算機房的話,那么寶貴的時間就浪費了,來機房的話,為了幾個計算又顯得不太值得。因此,本節將再次利用 fluent中的journal文件實現連續計算。
開始的步驟見帖子” http://forums.caenet.cn/showtopic-532623.aspx“
以下是投計算的journal文件:
(cx-gui-do cx-activate-item "MenuBar*ReadSubMenu*Case & Data...")
(cx-gui-do cx-activate-item "Warning*OK")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent1.cas")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "MenuBar*InitializeSubMenu*Initialize...")
(cx-gui-do cx-set-list-selections "Solution Initialization*DropDownList1(Compute From)" '( 6))
(cx-gui-do cx-activate-item "Solution Initialization*DropDownList1(Compute From)")
(cx-gui-do cx-activate-item "Solution Initialization*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "Solution Initialization*PanelButtons*PushButton2(Cancel)")
(cx-gui-do cx-activate-item "MenuBar*SolveMenu*Iterate...")
(cx-gui-do cx-set-integer-entry "Iterate*Table1*Frame2(Iteration)*Table2(Iteration)*IntegerEntry1(Number of Iterations)" 3000)
(cx-gui-do cx-activate-item "MenuBar*SolveMenu*Iterate...")
(cx-gui-do cx-activate-item "Iterate*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "MenuBar*WriteSubMenu*Case & Data...")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent1.cas ")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Warning*OK")
(cx-gui-do cx-activate-item "MenuBar*ReadSubMenu*Case & Data...")
(cx-gui-do cx-activate-item "Warning*OK")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent2.cas")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "MenuBar*InitializeSubMenu*Initialize...")
(cx-gui-do cx-set-list-selections "Solution Initialization*DropDownList1(Compute From)" '( 6))
(cx-gui-do cx-activate-item "Solution Initialization*DropDownList1(Compute From)")
(cx-gui-do cx-activate-item "Solution Initialization*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "Solution Initialization*PanelButtons*PushButton2(Cancel)")
(cx-gui-do cx-activate-item "MenuBar*SolveMenu*Iterate...")
(cx-gui-do cx-set-integer-entry "Iterate*Table1*Frame2(Iteration)*Table2(Iteration)*IntegerEntry1(Number of Iterations)" 3000)
(cx-gui-do cx-activate-item "MenuBar*SolveMenu*Iterate...")
(cx-gui-do cx-activate-item "Iterate*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "MenuBar*WriteSubMenu*Case & Data...")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent2.cas ")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Warning*OK")
OK,不管你有多少個計算工況,統統按照這樣編寫就OK。不要要注意的是,確保你設置的步數”Iterate“下,計算結果能夠收斂,這個很重要。
一個美好的夜晚或者周末就這樣被你很好的利用起來了!覺得不錯吧!
2、批量后處理
其實,思路還是和上面一樣,所以直接上GUI代碼:
(cx-gui-do cx-activate-item "MenuBar*ReadSubMenu*Case & Data...")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.cas")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "MenuBar*ReportMenu*Forces...")
(cx-gui-do cx-set-toggle-button "Force Reports*Frame1*Frame1(Options)*ToggleBox1(Options)*Forces" #f)
(cx-gui-do cx-activate-item "Force Reports*Frame1*Frame1(Options)*ToggleBox1(Options)*Forces")
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry1(X)" '( 1))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry2(Y)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry3(Z)" '( 0))
(cx-gui-do cx-set-list-selections "Force Reports*Frame2*List2(Wall Zones)" '())
(cx-gui-do cx-activate-item "Force Reports*Frame2*List2(Wall Zones)")
(cx-gui-do cx-activate-item "Force Reports*Frame2*PushButton3(DeselectAll)")
(cx-gui-do cx-set-list-selections "Force Reports*Frame2*List2(Wall Zones)" '( 1 2 3 5))
(cx-gui-do cx-activate-item "Force Reports*Frame2*List2(Wall Zones)")
(cx-gui-do cx-activate-item "Force Reports*PanelButtons*PushButton1(Write)")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry1(X)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry2(Y)" '( 1))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry3(Z)" '( 0))
(cx-gui-do cx-activate-item "Force Reports*PanelButtons*PushButton1(Write)")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Question*OK")
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry1(X)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry2(Y)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry3(Z)" '( 1))
(cx-gui-do cx-activate-item "Force Reports*PanelButtons*PushButton1(Write)")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Question*OK")
(cx-gui-do cx-set-toggle-button "Force Reports*Frame1*Frame1(Options)*ToggleBox1(Options)*Moments" #f)
(cx-gui-do cx-activate-item "Force Reports*Frame1*Frame1(Options)*ToggleBox1(Options)*Moments")
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry1(X)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry2(Y)" '( -2))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry3(Z)" '( 0))
(cx-gui-do cx-activate-item "Force Reports*PanelButtons*PushButton1(Write)")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Question*OK")
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry1(X)" '( 0))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry2(Y)" '( -1))
(cx-gui-do cx-set-real-entry-list "Force Reports*Frame1*Frame2*Frame1(Vector)*RealEntry3(Z)" '( 0))
(cx-gui-do cx-activate-item "Force Reports*PanelButtons*PushButton1(Write)")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "Question*OK")
后面的接著同樣的方式寫就是了,很方便的。
其中”(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.txt")“這一步的后綴名,你也可以設置成別的,不過最好是txt。
技術鄰APP
工程師必備
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP
3
3




















