Fluent导出残差总结
在使用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”文件
就是我们需要的残差