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


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

    1 计算环境与例程

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

    在.cas文件中设置好不需要改变的参数,包括Vicous model,Materials, Reference Values等。需要变化的参数包括迎角 α \alpha α来流速度 U t U_t Ut。在ansys 19.0及之后的版本中出现了Named Expressions选项卡,一些参数( α \alpha α U t U_t Ut)及它们之间的计算可以在这里定义并应用在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 )")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    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.gz
    
    exit
    yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    对于查找需要的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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    当然,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
    
    • 1
  • 相关阅读:
    SpringBoot SpringBoot 开发实用篇 3 测试 3.1 加载测试专用属性
    关于Python中math 和 decimal 模块的解析与实践
    强连通分量+缩点
    Spring
    数据库上机实验4 数据更新和视图
    (数据科学学习手札160)使用miniforge代替miniconda
    【第八章 IDEA中常用快捷键】
    AMD大规模裁员15%? 赔偿N+7?官方回应来了 | 百能云芯
    Mysql 45讲学习笔记(七)行锁
    关于Git分支基础知识的一些笔记
  • 原文地址:https://blog.csdn.net/wing_of_lyre/article/details/125399063