在使用Fluent進行求解的時候,有時候我們需要將求解的殘差提取出來,進行后續的處理,我們可以采用下面的方法將Fluent求解殘差輸出。下面我們用一個簡單的二維算例來說明(算例來源於:https://confluence.cornell.edu/display/SIMULATION/FLUENT+-+Laminar+Pipe+Flow),算例的具體設置見上面鏈接
方法一:使用Transcript
初始化算例以后,在進行計算以前(也就是點擊“Calculate”按鈕以前),我們先點擊File->Write->Start Transcript…
在彈出的對話框中輸入保存的文件名,這里我輸入為“demo”
然后點擊“Calculate”按鈕進行計算
在計算完成以后,我們點擊File->Write->Stop Transcript…
然后我們打開demo文件,刪除掉其中我們不需要的信息,即可得到殘差的數值
方法二:采用Fluent命令行下的重定向輸出
我們可以現在圖形界面下將算例設置好並初始化以后,然后存為cas和dat文件,然后我們打開cmd命令行,以命令行模式啟動Fluent
首先我們需要在cmd下轉換到算例目錄下
新建一個后綴名為.jou的文本文件,這里我們命名為demo.jou,在文件當中添加如下內容:
/file/read-case-data demo.cas
/solve/iterate 100000
/exit yes
然后保存,我們返回cmd,輸入下面的命令:
"D:\Program Files\ANSYS Inc\v191\fluent\ntbin\win64\fluent.exe" -g -t0 2ddp -i demo.jou > demo.txt
其中:
"D:\Program Files\ANSYS Inc\v191\fluent\ntbin\win64\fluent.exe"為Fluent安裝目錄可執行文件的絕對路徑
-g參數表示無圖形界面
-t0表示單核啟動
2ddp表示二維雙精度
-i表示啟動Fluent的時候跟上腳本
demo.jou為腳本名稱
剩下的就是等待計算結束,然后我們可以看到算例目錄下多出來一個demo.txt的文本文件,刪除掉其中我們不需要的信息,即可得到殘差的數值
方法三:采用scheme腳本
我們新建一個demo1.scm文本文件
我們在其中編寫如下代碼:
(define port)
(set! port (open-output-file "residuals.dat"))
(do
((i 0 (+ i 1)))
((= i (length (solver-residuals))))
(format port "~a ~2t" (car (list-ref (solver-residuals) i)))
)
(newline port)
然后設置算例
我們在Fluent讀入該scheme腳本
我們再新建一個demo.jou文本文件
我們在其中編寫如下代碼:
(do
((i 0 (+ i 1)))
((= i (length (solver-residuals))))
(format port "~a ~2t" (cdr (list-ref (solver-residuals) i)))
)
(newline port)
然后運行程序,開始計算
計算完成以后,在算例目錄下就多出來了一個“residual.dat”文件
就是我們需要的殘差