【CFD小贴士】Fluent建模及求解设置常见问题
1.Q:Ansys FLUENT两相流模拟Pseudo Transient的UDF问题问题描述: 做两相流模拟时采用Pseudo Transient 仿真,UDF是否适用?按稳态来编写?是否需要读取假定的时间步长?A: 可以在进行伪瞬态模拟时调用UDF,需要读取假定时间步长。调用flow.h 子程序的DUAL_TIMESTEP函数即可,或者在GUI界面输入RP_Get_Real("pseudo-auto-time-step-scale-factor")获取。2.Q:如何实现pseudo transient 仿真下,在UDF中读取某一时刻的伪时间步长,及当前时刻的VOF of vapor值。详细描述:如何实现pseudo transient 仿真下,在UDF中读取某一时刻的伪时间步长,及当前时刻的VOF of vapor值。如果是瞬态条件下,可以用dt = CURRENT_TIMESTEP, 不知道在伪瞬态下如何实现?因为在Fluent UDF manual中没查找到相应的说明。A:读取伪瞬态时间步长,您可以定义用DUAL_TIMESTEP来代替真正瞬态的CURRENT_TIMESTEP试试看。详情请参考:support.ansys.com/Ansys3.Q:如何batch模式运行Fluent?A: 操作步骤如下:新建文本文档,并修改后缀名为.bat。比如新建的文本文档名为”cyl.bat”.该文档内容如下:set path=c:\program files\ansys inc\v193\fluent\ntbin\win64fluent 3d -g -i run1.joufluent 3d -g -i run2.jou注意:batch文件里需要指定好环境变量,比如2019R1版本的环境变量如上文所述。若需要指定hpc核数,则 增加“-tn”就可以,n是hpc数。比如,fluent 3d -g -i -t10 run1.jou创建与计算case数量相同的journal文件。比如,有两个case需要计算,分别是cyl10.cas.gz和cyl20.cas.gz。则编写两个journal文件run1.jou和run2.jou。内容分别如下:run1.jou的内容:/file/read-case cyl10.cas.gz/solve/initialize/hyb-initialize/solve/iterate 1000/file/write-case-data cyl-10.cas.gz/exitrun2.jou的内容:/file/read-case cyl20.cas.gz/solve/initialize/hyb-initialize/solve/iterate 1000/file/write-case-data cyl-20.cas.gz/exit2. 双击cyl.bat文件,就可后台启动fluent。4.Q:Fluent创建interface后无法定义shell conduction?问题描述:在Fluent中两个面建立interface后,就边界条件中就失去了shell conduction. 我现在这两个面之间是有几层不同的薄硅胶的,就地方没法定义了。如果使用共节点的话,就会有shell conduction可以定义多层材料导热。比如有两个面传热,而这两个面中间有多层很薄的导热硅胶,不方便建模。分析过程中想通过fluent 的shell conduction来建立虚拟的壁面传热,通过将这两个面共节点后,导入fluent中可以设置shell conduction,如左图所示;可有时这两个面我设置的时interface,也是可以实现传热的,但这时shell conduction 却没有。A:interface不支持shell conduction。这点帮助文档也有提到,见下图。请采用wall边界来实现您的需求。5.Q:如何从Ansys Fluent文件获取几何文件?A: 1.若是.msh文件,可以直接用SCDM打开,然后另存为自己需要的 集 合格式。2.若是.cas文件,则用Fluent Meshing 打开,保存为.msh文件,然后再采用第一种方式处理。6.Q:Fluent计算报错:process killed (SIGTERM)问题描述:最近在PBS(PBS是Altair开发的服务器计算排队系统。)上提交Fluent的计算时,出现一些问题,系统是Linux:1. 保存的时候保存到一半,题目就出错了,已经在很多题上出现这个问题,并且看了下节点的存储空间是充足的。2. 计算还没开始,就提示软件不能启动,这个题之前已经计算过出结果了,journal应该没有问题。此外,在PBS上投题持续出现问题,提示如下。下面截了比较多的信息:A:根据帮助文档看信息,这个问题很可能是内存不足造成的,建议运行计算后查看一下服务器的内存情况,若大量内存被占用就会出现这个问题。7.Q:如何在已经计算好的Case上改动小部分模型,继续计算(只改动部分网格,在之前计算结果之上再计算)A:采用如下方式可以实现。在Fluent中选择File->read->mesh打开读入网格对话框,并勾选Replace Mesh。如下图所示。8. Q:自动判断收敛,如何设置出口50步之内变化量小于一定阈值,并且多个出口各自收敛的情况下,判断结束计算。A:比如定义出口平均温度50步变化量小于0.001%时计算终止。那么首先定义出口平均温度,选择Solution → Reports → Definitions → New → Surface Report → Mass-Weighted Average...注:若监测多个出口变量,则重复上述方法创建即可。其次,创建基于出口平均温度outlet-temp-avg的收敛条件.Solution → Reports → Convergence...a. 点击Add按钮,b.在Conditions输入con-outlet-temp-avg。c. 从Report Definition下拉菜单选择之前创建的出口平均压力outlet-temp-avg。d. 在Stop Criterion栏输入 1e-5。e. 在Ignore Iterations Before栏输入 40 。f. 在Use Iterations栏输入 50 。g. 勾选 Print.h. 设置Every Iteration 为5.i. 点击 OK 保存当前的收敛条件设定并关闭Convergence Conditions 对话框。对于多个出口监测,则按照上述方法增加多个收敛条件即可,并勾选勾选“All Conditions Are Met ”9.Q:Fluent窗口转换的TUI命令是什么?(用脚本给监测线截图)A:Display/set-window *注:*表示窗口的名称10.Q:在Fluent 2019 R3可以正常计算的case,但在2020R1却出现异常。问题描述:计算的是2D VOF模型,模拟的物理问题是随着入口压力的增大,钢水被压入模型上方。但在2019R3中可以正常计算的模型,在2020R中计算却发现钢水液位没有任何变化,请问这是怎么回事?A:在2020 R1 Fluent读入2019R3的case后,需要手动去设置一下边界条件。就是说,把Gauge Total Pressure项重新进行选择一下(如下图示),即可进行正常计算。11.Q:在CFX/Fluent中做流动壅塞模拟,压差增大流量却增大。问题描述:我用CFX做了一个节流结构的空气流仿真(如下图),当节流孔处mach number已经超过1时,仿真结果显示:当压差增大,通过节流结构的流量还能继续增大,感觉这个是不是不太合理,或者是可能哪里设置错了?A:计算是对的。如果改变入口压力,出口质量流量也随之增加。壅塞是管道中某一界面处的流速达到声速时所发生的一种流动现象,其表现为:不论管道出口外压强如何降低,声速截面前的流速、压强等不再发生变化,相应流量也不保持不变。用简单的流动解释就是达到音速后,下游的扰动都传递不到上游。但如果你改变上游条件,那就情况完全变了。因此在喉部达到音速后,需要降低出口压力。比如,其中一个流动工况在入口4bar 出口1.6bar时已经出现壅塞。降低出口压力后的流量变化如下图所示。12.Q:在Fluent中Lee蒸发模型中如何添加table文件定义可变饱和温度?问题描述:请问如何添加这个table文件?A:这个table文件是在外部提前创建好,并读入到fluent里的。方法如下:(1)创建一个txt格式的table文件。第1行是表格名称,注意不能有空格,可以用减号“-”或者下划线“_”代替空格。第2行是每列的名称。比如Tem是第一列的名称,Press是第二列的名称。第3行开始是数据点。这些数据点可以从excel表格拷贝过来。PS:关于table的创建,也可以参考2020R2 Fluent User’s Guide 第7.2.3.8.17.5.1. Specifying Variables in a Tabular Format章节,帮助文档的地址是:help/flu_ug/flu_ug_sec_bc_porous_media.html#flu_ug_sec_table_input(2)读入创建好的table文件。User-Defined → User-Defined → Read Table(3)这样,在蒸发模型下就可以看到对应的table数据。13.Q:在Fluent中如何用UDF实现内热源随时间变化?A:UDF编写如下:例1:随时间呈阶梯曲线变化,比如0-20s时是5000000W/m³,20s以后是10000000 W/m³。#include "udf.h"DEFINE_SOURCE(heat_source,c,t,dS,eqn){ real ttt, source; real x[ND_ND]; ttt = RP_Get_Real("flow-time"); C_CENTROID(x,c,t); if (ttt <= 20) { source = 5000000 ; dS[eqn] = 0.0; } else {source = 10000000 ; dS[eqn] = 0.0;} return source;}例2,内热源随时间呈线性变化:#include "udf.h"DEFINE_SOURCE(heat_source,c,t,dS,eqn){ real ttt, source; real x[ND_ND]; ttt = RP_Get_Real("flow-time"); C_CENTROID(x,c,t); source = 500 + 10*ttt; dS[eqn] = 0.0; return source;}14.Q:windows/Linux系统下udf可以正常使用,换到Linux/windows下无法编译。A: 这是因为两种系统的默认编码方式不一样,在windows下是ANSI,而Linux是UTF-8。在windows下写好的UDF源代码需要另存为ANFI格式的,而linux下写好的UDF源码文件需要保存为UTF-8的格式。这样,问题应该可以解决。15.Q:Fluent创建好的材料如何保存下来?详细描述: 在Fluent中,创建的材料如何保存下来,以后只需要直接导入使用就行了,不然每次创建材料太耗费时间,不知道Fluent中如何操作的?A:可以采用如下方法把创建好的材料保存下来,并重复使用。首先,保存新创建的材料,比如air-new是我新创建的。保存方法如下:点击Create/Edit Materials对话框的“User-Defined Database”按钮,打开“Open Database”对话框。在“Open Database”对话框输入要保存的文件名(即创建的材料要保存在这个被命名的文件里,比如输入new-materials.scm)后,点击OK。在弹出的对话框里点击“Yes”,这样就在工作路径下创建了一个包含新材料的名为new-materials.scm的scheme文件。2.其次,使用已保存的材料。步骤如下:点击Create/Edit Materials对话框的“User-Defined Database”按钮,打开“Open Database”对话框。在“Open Database”对话框点击“browse”打开上一步保存的文件,并点击OK。3. 在弹出的“User-Defined Database Materials”里选中新创建的材料,然后点击“Copy”。这样新创建的材料就被导进来了。16.Q:在Linux系统下如何后台启动Fluent的GPU加速?A: 可以使用以下命令启动GPU加速。Fluent 3ddp -t4 -gpgpu=1更多详细说明您可以参考Fluent帮助文档 Fluent->User’s Guide->Ⅲ Solution Mode->43.Parallel Processing->43.4.1. Starting Parallel ANSYS Fluent on a Linux System Using Command Line Options。17.Q:Fluent 2020 R1当粒子源达到一定数量时保存case文件报错。问题描述:Fluent 出现错误提示:Error: Out of Scheme heap space. Rerun with -h flag set greater than (multiples of 100000) current value of -h100000 。出现的场景是用jou文件加入DPM粒子喷射源之后,喷射源有上千个,在进行保存case的时候出现如上错误。请问如何解决?A: 建议在读入Jou文件的时候增加-h命令选项,比如:fluent 3ddp -g -t4 -h50000000 -i inject.jou这样就可以解决该问题。18.Q:如何在Fluent里添加周期性方波热源?A:在Fluent里可以采用表达式的方式来添加周期性方波热源。比如给一个周期为5s发热量为8W的方波热源,就可以采用如下表达式。IF(mod(t,10[s])<=5[s],8,0)这样,截图如下:19.Q:如何利用Journal来更改源项?A:创建Jou文件,并在该文件里输入以下内容,在fluent里读入该jou文件即可更改源项。/define/boundary-conditions/set/solid coppersource-terms 1 yes 80q来源:Ansys售后工程师整理的用户FAQ来源:CFD仿真区