使用Fluent进行批处理操作包含两部分内容:
1. 确定要改变的参数,编写.jou文件或者.scm文件
2. 编写.bat文件
下面就这两部分内容进行阐述。

1 计算环境与例程

本文的计算环境为fluent 2022 R1。为了清晰说明相关操作,本文以计算某翼型在不同迎角的流场为例,进行说明。

在.cas文件中设置好不需要改变的参数,包括Vicous model,Materials, Reference Values等。需要变化的参数包括迎角 α\alphaα和来流速度 UtU_tUt​。在ansys 19.0及之后的版本中出现了Named Expressions选项卡,一些参数(α\alphaα和UtU_tUt​)及它们之间的计算可以在这里定义并应用在Boundary Conditions中,如下两幅图所示。Named Expressions选项卡下的参数可以导出到.tsv文件,当然也可以读入其他.tsv文件的内容。此外,如果需要记录计算过程,则还需设置Report DefinitionsReport Files来记录CL和CD的计算过程。


2 .jou和.scm文件的编写

编写jounal文件有三种方式,下面分别说明。

2.1 手动改变参数,自动记录jounal文件

通过File–>Writer–>Star Jounal–>输入文件名:name.jou–>OK开始记录操作,记录完成后再File–>Writer–>Stop Jounal停止记录。此时所有操作都已经记录在.jou文件中。如下代码包含了读cas,读tsv,初始化,计算,写cas和dat的整个过程。可以继续往下写下一个计算流程来计算不同的α\alphaα(读不同的.tsv文件)下的流场。可以看出,这种做法的代码的可读性非常差,并不能一眼找需要改变的参数。因此并不推荐这种做法

(cx-gui-do cx-activate-item "MenuBar*ReadSubMenu*Case...")
(cx-gui-do cx-set-file-dialog-entries "Select File" '( "naca0015_middle.cas") "All Files (*)")
(cx-gui-do cx-set-list-tree-selections "NavigationPane*List_Tree1" (list "Setup|Named Expressions"))
(cx-gui-do cx-activate-item "NavigationPane*List_Tree1")
(cx-gui-do cx-set-list-tree-selections "NavigationPane*List_Tree1" (list "Setup|Named Expressions"))
(cx-gui-do cx-activate-item "Expression Manager*PanelButtons*PushButton3(Import)")
(cx-gui-do cx-set-file-dialog-entries "Select File" '( "AOA2.tsv") "TSV Files (*.tsv)")
(cx-gui-do cx-activate-item "Expression Manager*PanelButtons*PushButton1(Close)")
(cx-gui-do cx-set-list-tree-selections "NavigationPane*List_Tree1" (list "Solution|Initialization"))
(cx-gui-do cx-activate-item "NavigationPane*List_Tree1")
(cx-gui-do cx-set-list-tree-selections "NavigationPane*List_Tree1" (list "Solution|Initialization"))
(cx-gui-do cx-set-list-selections "Solution Initialization*Table1*DropDownList1(Compute from)" '( 3))
(cx-gui-do cx-activate-item "Solution Initialization*Table1*DropDownList1(Compute from)")
(cx-gui-do cx-activate-item "Solution Initialization*Table1*Frame9*PushButton1(Initialize)")
(cx-gui-do cx-set-list-tree-selections "NavigationPane*List_Tree1" (list "Solution|Run Calculation"))
(cx-gui-do cx-activate-item "NavigationPane*List_Tree1")
(cx-gui-do cx-set-list-tree-selections "NavigationPane*List_Tree1" (list "Solution|Run Calculation"))
(cx-gui-do cx-activate-item "Run Calculation*Table1*Table6(Solution Advancement)*Table1*PushButton1(Calculate)")
(cx-gui-do cx-activate-item "Information*OK")
(cx-gui-do cx-activate-item "MenuBar*WriteSubMenu*Case & Data...")
(cx-gui-do cx-set-file-dialog-entries "Select File" '( "naca0015_AOA2") "Legacy Compressed Case/Data Files (*.cas.gz *.dat.gz )")

2.2 编写TUI脚本文件

下面的代码实现了与上一节的代码相近的功能,但是简洁的多。可以复制(exit之前的部分)之后改变α\alphaα的值,继续写下一个计算流程。注意,确保exit & yes在只最后出现。

/file/read-case naca0015_middle.cas
/define/named-expressions/edit "alpha" definition "2[deg]"
q
/solve/set/p-v-coupling 24
/solve/report-files/edit/report-file file-name "AOA2"
q
/solve/initialize/compute-defaults/velocity-inlet inlet
q
/solve/initialize/initialize-flow
/solve/iterate 500
/file/write-case-data naca0015_AOA2.cas.gzexit
yes

对于查找需要的TUI命令,可以在quick search框搜索关键词,点击相应代码即可自动复制到Console控制台。以及在Console控制台寻找可用的下级命令。注意,q是退出当前命令。务必尝试命令的效果后再写入.jou文件。可以开启代码自动补全功能(File–>perference–>Appearance–>勾选Console auto-completer)。以下三图说明了相关操作。

![在这里插入图片描述](https://img-blog.csdnimg.cn/300ce31fc21d4e8ebf950cb56d38db29.png

2.3 编写.scm文件

TUI命令虽然足够简洁易懂,但缺少流程控制来应用重复工作。Scheme是一个完整的语言,具备相应的数据结构和流程控制等功能。
通过Scheme语言的for-eachlambda表达式,下面的代码实现了多个α\alphaα顺序仿真的流程。显然,Scheme可以将TUI命令作为封装的文本命令来执行,这模拟了在Console控制台键入命令的过程,包括了\n作为换行符的enter键的操作。可以对比上一节代码来看。注意,.scm文件也可以直接写TUI命令,如第一行读cas的命令和最后两行退出模拟的命令。

/file/read-case naca0015_middle.cas(define list_alpha '(2 6 10 12 13 14 15 16 18 20))(for-each(lambda (x) (ti-menu-load-string (string-append "/define/named-expressions/edit \"alpha\" definition \"" (number->string x) "[deg]\"\nq\n""/solve/set/p-v-coupling 20\n"(string-append "/solve/report-files/edit/report-file file-name \"AOA" (number->string x) "\"\nq\n")"/solve/initialize/compute-defaults/velocity-inlet inlet\n""/solve/initialize/initialize-flow\n""/solve/iterate 7000\n"(string-append "/file/write-case-data naca0015_AOA" (number->string x) ".cas.gz")))) list_alpha
)
exit
yes

当然,Scheme的功能远不止于此,fluent的二次开发是一个复杂的过程,本人根据需要只探索了这一点功能。有兴趣深入了解的可以看仿真秀这篇文章。

有一本电子书介绍了在fluent中调用Scheme命令的方法和其他功能:
「Fluent-Scheme简明中文手册(有书签).pdf」https://www.aliyundrive.com/s/iQ3EBrBwB1a

下面两个链接也是介绍Scheme语言的,比较详细。
https://www.scheme.com/tspl4
https://www.kancloud.cn/wizardforcel/teach-yourself-scheme/147161

3 编写.bat文件

.jou和.scm文件可以由fluent图形界面中读取:File–>read–>Jounal或Scheme,然后在GUI界面看运行情况。如果不想在GUI界面运行则可以在window命令行中运行。注意,必须将fluent加入环境变量中。

下面的代码是用14核处理器,调用scheme.scm文件,进行二维仿真的命令。

fluent 2d -g -t14 -i scheme.scm

Fluent批处理及.jou和.scm文件编写的相关操作相关推荐

  1. C++文件流fstream相关操作

    C++文件流fstream相关操作 一.理解Open函数 利用fstream,使用open/close打开或创建,完成后关闭,对文件读入读出使用插入器(<<) 或析取器(>>) ...

  2. 文件内容读取相关操作

    #–author:zhaozhao #date:2020/07/30 f=open('小重山','w',encoding='utf8') # 先清除文件内容 f.fileno() # fileno() ...

  3. Python中文件的介绍以及操作

    1.文件的介绍 什么是文件? 如图展示: 使用文件的目的: 保存数据存放在磁盘,把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力 2.文件的打开与关闭 1.打开文件 ...

  4. Bat(批处理)文件编写手册(一)

    一.批处理常用的DOS命令篇 1.`echo命令` 2.`@命令` 3.`pause命令` 4.`rem命令` 5.`::命令` 6.`call命令` 7.`cd命令` 8.`dir命令` 9.`at ...

  5. c语言创建一个bat文件内容,BAT(批处理)文件编写详细手册

    <BAT(批处理)文件编写详细手册>由会员分享,可在线阅读,更多相关<BAT(批处理)文件编写详细手册(41页珍藏版)>请在人人文库网上搜索. 1.BAT(批处理)文件编写详细 ...

  6. 批处理之FTP自动同步文件

    1. FTP.exe工具 ftp.exe是Windows系统提供的一个FTP客户端命令行工具.通过ftp.exe可以完成登录,显示远程文件.下载.上传.重命名.删除远程文件等操作. 1.1. 命令参数 ...

  7. 【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )

    文章目录 一.开启 ProGuard 混淆 二.混淆文件编写 三.混淆前后对比 四.build.gradle 完整配置文件 五.参考资料 一.开启 ProGuard 混淆 在 build.gradle ...

  8. Android.mk文件编写

    Android.mk文件编写的例子: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello LOCAL_SR ...

  9. 函数||值传递||函数的常见样式||函数的声明||函数的分文件编写

    概述 作用:将一段经常使用的代码封装起来,减少重复代码 一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能. 函数的定义 函数的定义一般主要有5个步骤: 1.返回值类型 2.函数名 3.参数 ...

  10. Python实训day01pm【练习题、文件编写、列表的使用】

    Python实训-15天-博客汇总表 目录 Jupyter中文用户名导致无法运行的问题 练习题 练习1 练习2 Python文件编写注意事项 Python列表 list:有序列表 Jupyter中文用 ...

最新文章

  1. oracle查询grant信息,Oracle学习笔记(四)
  2. Java HashMap的死循环问题
  3. std::list 修改某个值_在WordPress首页不显示某个分类文章的做法
  4. 简单的JavaScript互斥锁
  5. Spine学习六 - 碰撞检测
  6. Mqtt协议IOS端移植3
  7. 对static静态成员的理解
  8. 解决微信小程序开发中wxss中不能用本地图片
  9. 编译安装nginx-1.6.0
  10. el表达式原样输出问题
  11. pycharm操作指北
  12. HTML的div标记为何设置背景色无效?
  13. Kafka 入门教程之一: 安装
  14. php期末考试分数分布情况,考试成绩分析
  15. 并发网站压力测试工具
  16. 什么是Pagerank?Pagerank算法介绍与计算公式
  17. XILINX FPGA最小逻辑单元CLBs, Slices和LUT区别
  18. Java8 Stream经典示例
  19. coreldraw x5安装视频教程_图形设计必备软件:CorelDRAW
  20. 方舟大洋洲服务器稳定嘛,方舟生存进化最新版182.0更新内容翻译一览

热门文章

  1. 华为4g显示无服务器,华为nova5 插卡无4G
  2. VMware安装linux镜像
  3. 短信api接口免费试用
  4. Win10系统字体太小的调整设置教程
  5. 32*32 点阵字库 linux,点阵字库-linux_wuliqiang-ChinaUnix博客
  6. 全国大学生数学建模2018年A题高温作业专用服装设计
  7. 谷歌浏览器截长图_小技巧丨电脑截图怎么快捷,想截长图怎么办
  8. Java加密:一、Base64算法
  9. java控制浏览器,java控制夜神访问浏览器
  10. FlyMcu一键烧录STM32开发板时关于RTS和DTR电平方式的设置