fluent批量處理——模型參數(shù)的設(shè)置

對(duì)于常見的工程應(yīng)用來說,計(jì)算的工況很多,尤其優(yōu)化工作,少則幾百,多則上千,面對(duì)如此之多的case文件要寫,假如按照一個(gè)一個(gè)的讀寫的話,相信你一定會(huì)為這么機(jī)械的工作煩躁,甚至影響今后好幾天的心情,那么有什么簡便一些的方法呢?答案是肯定的。那就是采用 fluent的journal文件。
首先打開fluent軟件,在file/write/start journal,見下圖:
1.png

選擇保存文件名*.journal后(看你自己怎么設(shè)置文件名),我一般按照這一組的類型來命名;
這樣, journal文件就開始記錄你以后的每一步操作。
按照原先設(shè)置模型參數(shù)一樣,一步步來就是了。
等你操作完成后,原先的”start journal“現(xiàn)在已經(jīng)是”stop journal“,所以你只需要選擇”stop journal“就可以了。
此時(shí),用寫字板打開看看就可以看到如下的一些記錄命令。
(cx-gui-do cx-activate-item "MenuBar*ReadSubMenu*Case...")
(cx-gui-do cx-activate-item "Warning*OK")
(cx-gui-do cx-set-text-entry "Select File*Text" "fluent.msh")
(cx-gui-do cx-activate-item "Select File*OK")
(cx-gui-do cx-activate-item "MenuBar*GridMenu*Check")
(cx-gui-do cx-activate-item "MenuBar*GridMenu*Smooth/Swap...")
(cx-gui-do cx-activate-item "Smooth/Swap Grid*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "Smooth/Swap Grid*PanelButtons*PushButton1(Swap)")
(cx-gui-do cx-activate-item "Smooth/Swap Grid*PanelButtons*PushButton2(Cancel)")
(cx-gui-do cx-activate-item "MenuBar*ModelsSubMenu*Solver...")
(cx-gui-do cx-activate-item "Solver*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "MenuBar*ModelsSubMenu*Viscous...")
(cx-gui-do cx-activate-item "Viscous Model*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "MenuBar*DefineMenu*Boundary Conditions...")
(cx-gui-do cx-activate-item "Boundary Conditions*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-set-real-entry-list "velocity-inlet-10-1*Frame4*Frame3(Momentum)*Table1*Table4*RealEntry2(Velocity Magnitude)" '( 10))
(cx-gui-do cx-activate-item "velocity-inlet-10-1*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "Boundary Conditions*PanelButtons*PushButton2(Cancel)")
(cx-gui-do cx-activate-item "MenuBar*ControlsSubMenu*Solution...")
(cx-gui-do cx-set-list-selections "Solution Controls*Table1*Frame2(Pressure-Velocity Coupling)*Table2(Pressure-Velocity Coupling)*DropDownList1" '( 1))
(cx-gui-do cx-activate-item "Solution Controls*Table1*Frame2(Pressure-Velocity Coupling)*Table2(Pressure-Velocity Coupling)*DropDownList1")
(cx-gui-do cx-set-list-selections "Solution Controls*Table2*Frame1(Discretization)*Table1(Discretization)*DropDownList1(Pressure)" '( 3))
(cx-gui-do cx-activate-item "Solution Controls*Table2*Frame1(Discretization)*Table1(Discretization)*DropDownList1(Pressure)")
(cx-gui-do cx-set-list-selections "Solution Controls*Table2*Frame1(Discretization)*Table1(Discretization)*DropDownList2(Momentum)" '( 1))
(cx-gui-do cx-activate-item "Solution Controls*Table2*Frame1(Discretization)*Table1(Discretization)*DropDownList2(Momentum)")
(cx-gui-do cx-set-list-selections "Solution Controls*Table2*Frame1(Discretization)*Table1(Discretization)*DropDownList3(Turbulent Kinetic Energy)" '( 1))
(cx-gui-do cx-activate-item "Solution Controls*Table2*Frame1(Discretization)*Table1(Discretization)*DropDownList3(Turbulent Kinetic Energy)")
(cx-gui-do cx-set-list-selections "Solution Controls*Table2*Frame1(Discretization)*Table1(Discretization)*DropDownList4(Turbulent Dissipation Rate)" '( 1))
(cx-gui-do cx-activate-item "Solution Controls*Table2*Frame1(Discretization)*Table1(Discretization)*DropDownList4(Turbulent Dissipation Rate)")
(cx-gui-do cx-activate-item "Solution Controls*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "MenuBar*MonitorsSubMenu*Residual...")
(cx-gui-do cx-set-real-entry-list "Residual Monitors*Table2*RealEntry11" '( 1e-005))
(cx-gui-do cx-set-toggle-button "Residual Monitors*Table1*Frame1(Options)*ToggleBox1(Options)*CheckButton2(Plot)" #f)
(cx-gui-do cx-activate-item "Residual Monitors*Table1*Frame1(Options)*ToggleBox1(Options)*CheckButton2(Plot)")
(cx-gui-do cx-set-real-entry-list "Residual Monitors*Table2*RealEntry17" '( 1e-005))
(cx-gui-do cx-set-real-entry-list "Residual Monitors*Table2*RealEntry23" '( 1e-005))
(cx-gui-do cx-set-real-entry-list "Residual Monitors*Table2*RealEntry29" '( 1e-005))
(cx-gui-do cx-set-real-entry-list "Residual Monitors*Table2*RealEntry35" '( 1e-005))
(cx-gui-do cx-set-real-entry-list "Residual Monitors*Table2*RealEntry41" '( 1e-005))
(cx-gui-do cx-activate-item "Residual Monitors*PanelButtons*PushButton1(OK)")
(cx-gui-do cx-activate-item "MenuBar*WriteSubMenu*Case...")
(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 "Warning*OK")
這樣一個(gè)case文件就寫完了,你后面需要做的就是替換"fluent.msh"與"fluent.cas“為你自己的文件名就行。復(fù)制粘貼寫好的一個(gè)case的journal文件,替換成下一個(gè)mesh文件名;值得注意的是,模型文件中的邊界數(shù)量要一致,否則會(huì)出現(xiàn)錯(cuò)誤,因?yàn)镚UI語言是按照fluent里邊界的ID號(hào)來識(shí)別的。
基本上,這樣寫case文件還是很省事的,你到時(shí)就可以在一邊聽著音樂,一邊看著它自動(dòng)編寫!
登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

1
6
5