首页/文章/ 详情

【CFD小贴士】Fluent建模及求解设置常见问题

1月前浏览680

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/Ansys

3.Q:如何batch模式运行Fluent?

A: 操作步骤如下:

  1. 新建文本文档,并修改后缀名为.bat。比如新建的文本文档名为”cyl.bat”.

该文档内容如下:

set path=c:\program files\ansys inc\v193\fluent\ntbin\win64

fluent 3d -g -i run1.jou

fluent 3d -g -i run2.jou

注意:

  1. batch文件里需要指定好环境变量,比如2019R1版本的环境变量如上文所述。

  2. 若需要指定hpc核数,则 增加“-tn”就可以,n是hpc数。比如,fluent 3d -g -i -t10 run1.jou

  3. 创建与计算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

/exit

run2.jou的内容:

/file/read-case cyl20.cas.gz

/solve/initialize/hyb-initialize

/solve/iterate 1000

/file/write-case-data cyl-20.cas.gz

/exit

2. 双击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:可以采用如下方法把创建好的材料保存下来,并重复使用。

  1. 首先,保存新创建的材料,比如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仿真区
MeshingFluent MeshingACTFluentCFXHPCUDF材料管道
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-10-13
最近编辑:1月前
濮小川CFD
硕士 心不唤物,物不至!
获赞 16粉丝 42文章 103课程 0
点赞
收藏
作者推荐

【CFD小贴士】Fluent后处理设置常见问题

1.Q:在Ansys Fluent 2019 R3里,如何监测周期性边界的压力梯度,并将其作为优化参数?A:(1)先把周期性边界设置为质量入口,然后在模型树下右键单击Solution→Monitors→Report File-New...则出现如下对话框,选中后点击OK即可。(2)按照如下操作,即可把周期性边界的压力梯度设置为优化参数,在workbench下做DOE。2.Q:用Adjoint Sover,为何adjoint中通过observable value 读出来的pressure drop与通过surface integrals 得到的压降不一样?具体如下图。A:伴随求解给的是总压差,而上图计算的是静压差,而且是基于质量平均的静压差。应该读取基于面积平均的总压差,这样二者就吻合的很好了,如下图:3.Q:在FLUENT里如何做局部切面A:实现方法如下:选择Results-&gt;Create-&gt;Plane打开Plane surface面板。在Plane surface面板,按照下图进行选择,然后在图形显示界面窗口点击要创建面的区域,点击create生成局部面。4.Q:如何在Fluent下创建监测点?在results-&gt;surface-&gt;create下选择Point创建一个点。在菜单栏Solution-&gt;reports-&gt;Definitions-&gt;new-&gt;surface report-&gt;Area-weighted Adverage对话框,做如下设置。3.在树形结构下右键单击Solution-&gt;Monitors-&gt;Report Plots(或Report files),选择New,做如下设置。这样计算时就会自动输出监测点的数据。5.Q:如何用journal命令流输出监测点的压力?A:如下:surface/point-surface xyypoint 0.016 0 0.016/solve/report-definitions/ add xyytest surface-areaavg surface-names xyypointfield/ pressure/solve/ report-files/add xyytest report-defs xyytestfile-name mp.out/solve/report-plots/add/xyytestreport-defs xyytest6.Q:如何利用Fluent Journal文件输出残差数据?A:方法1:Journal文件命令如下:/file/read-case cyl10.cas.gz/solve/initialize/hyb-initialization/file/start-transcript resi-demo/solve/iterate 1000/file/stop-transcript resi-demo/file/write-data cyl-10.dat.gz/exit这样,计算时在工作路径下就会出现resi-demo的文件,该文件记录了残差,并实时更新。方法2:采用如下命令:/file/read-case cyl10.cas.gz/file/read-macros scmdemo.scm/solve/initialize/hyb-initialization/solve/set/time-step 0.1/solve/execute-commands add-edit command-1 1 iteration &quot;/file/read-journal joudemo.jou&quot;/solve/execute-commands enable command-1/solve/dual-time-iterate 100 30/file/write-data cyl10.dat.gz/exit附1:joudemo.jou文件的内容如下:(do((i 0 (+ i 1)))((= i (length (solver-residuals))))(format port &quot;~a ~2t&quot; (cdr (list-ref (solver-residuals) i))))(newline port)附2:scmdemo.scm文件的内容如下(define port)(set! port (open-output-file &quot;output.dat&quot;))(do((i 0 (+ i 1)))((= i (length (solver-residuals))))(format port &quot;~a ~2t&quot; (car (list-ref (solver-residuals) i))))(newline port)7.Q:Fluent中如何获取压力梯度?A: 在Fluent里获取压力梯度的方法如下:在计算之前输入命令solve/set/expert后回车,然后根据提示输入yes。如下图所示。&gt; solve/set/expertSave cell residuals for post-processing? [no] yesKeep temporary solver memory from being freed? [no] yesAllow selection of all applicable discretization schemes? [no] yes这样,计算结束后就可以在后处理中看到压力梯度这个参数。如下图显示的是某内流场某截面压力云图和Y方向的压力梯度。8.Q:FLUENT中壁面对流换热系数,不知是查看 surface HTC, 还是Wall Adjacent HTC, 这两者有什么区别?A: 应该采用Surface Heat Transfer Coefficient来查看壁面的对流换热系数。Surface Heat Transfer Coefficient受来流温度的影响,其计算公式如下:而wall adjacent heat transfoer coef是和壁面函数相关的传热系数。其计算公式是:9.Q:Fluent如何生成动画?A:动画可以在CFD-POST或者Ensight中生成,也可也在FLUENT里生成,Fluent里的方法如下:在启动计算之前,完成以下步骤:1) 创建一个您要显示的countours。2) 返回到Solutionm面板下选择Activities下的Solution Animations ,打开Animatiom Definition对话框。3) 在Animatiom Definition对话框设置如下:①定义记录频率,如每5个时间步记录一次,②选择保存目录或输入句点表示采用当前工作目录。③点击Use Active设置动画视角④选择之前创建的contour,可以定义多个动画,动画可以组合多个对象和/或场景。⑤点击OK完成动画的定义。10.Q:Fluent如何生成mpeg格式的动画?A:Ansys Fluent可以输出mpeg格式的动画,操作如下:击树形结构 Results-&gt;Animations-&gt;Solution Animation Playback打开Playback对话框;选中动画序列animation-1,将格式选为MPEG,点击write即可生成动画。该动画可以用windows media player 打开。浮点溢出:浮点”错误的问题可能与正在运行仿真的硬件有关,也可能与Fluent案例的模型设置有关。硬件相关的:基于硬件的原因,这个错误如下:1) CPU或OS是32位的。32位机器的最大地址空间是4GB(2^32-1),其中必须为操作系统(OS)相关进程保留空间,留下接近3gb或更少的可用内存。如果计算需要的内存超过可用内存,则浮点错误可能是由于这种内存限制造成的。解决方案是使用多处理器机器orm升级到64位系统进行并行计算。2)模拟所需的内存取决于网格大小、求解器设置、物理模型等。一般情况下,1GB RAM对于1百万个单元格就足够了,只需要一个基本的基于压力的解算器,在单精度模式下,不需要打开额外的模型。但是对于双精度模式(推荐用于计算精度)和添加其他模型(湍流、物种/反应、多相等),由于在任何迭代中需要存储额外的变量,内存需求会增加。因此,根据可用的RAM,计算可能会超出可用内存的限制。这可以通过增加可用内存(升级到更高的内存机器)或使用多处理器系统来解决。软件相关的:在软件方面,浮点误差通常表示一个数学运算,其中一个变量除以0得到一个未定义的值。出现这种情况可能有以下几个原因:1)浮点错误问题多与求解器设置、边界条件、初始化设置错误有关。在开始模拟之前,请确保正确设置了不同的数值和物理参数。2)如果有用于边界条件的UDF,请确保所有变量的值都在物理范围内,并且UDF挂接在正确的边界上。3)在开始模拟之前,请检查报告&gt;参考值面板中设置的参考值,以确保它们是针对问题正确设置的。4)检查网格质量,确保没有无效的、高度倾斜(正交质量&lt; 0.02)的网格。11.Q:Fluent瞬态计算结束后,如何选择删除其中一个动画序列?问题描述:Fluent瞬态计算结束后,保存了动画。关闭后若重新打开Playback对话框,显示End time为0。若选择删除其中一个动画序列,则提示:“Sequence can&#39;t be deleted. Animation object exists in the current session.”A:动画序列是通过Solution-&gt;Activities-&gt;Create-&gt;Solution Animation创建的,而不是在后处理的时候创建的,因此Fluent不会让你在Playback的对话框中删除动画序列,你应该在Solution Animation下右键选中要删除的动画序列,比如vector-animation,然后选择删除。然后在Playback对话框下,重新读入vector-animation.cxa文件,就能看到end time不再是0,此时点击write就可以保存动画等。12.Q:如何利用Fluent导出NATRAN PLOAD4A:Ansys Fluent可以直接导出NASTRAN文件。导出方法是在计算结束后选择“File-&gt;Export-&gt;Solution Data”打开Export对话框,选择如下后点击write。即可生成.bdf文件。并将压力存储为pload4。注意:若在Export对话框选择Surfaces下的某个面,则压力会被存储为PLOAD2。附. Nastran数据卡片说明若是瞬态计算,则可以边计算边输出Nastran文件。然后在Automatic Export对话框设置保存频率和路径等。13.Q:怎么抓带边框的三维流线图(之前用的AVZ截图,只能截图流线,没有边框)答:首先创建一个几何外轮廓mesh-1,创建方法见下图所示。外轮廓显示如下:其次,创建流线pathlines-1。流线显示如下:最后,创建Scene,勾选pathlines-1和mesh-1,设置mesh-1的透明度。然后点击save/display。带轮廓的流线图显示如下:14.Q:如何做Fluent稳态粒子动画A:Fluent 粒子计算结束后,如果是做的稳态粒子,可以在Particle Tracks窗口点击Pulse来看粒子的运动轨迹。若想保存该动画,即生成视频文件,则操作方法如下:Fluent计算结束后导出粒子的历史数据.xml文件。File-&gt;Export-&gt;Particle history data在CFD-Post里导入上述文件;导入历史数据文件后,在CFD-POST结构树下出现一个 Fluent PT for ****,双击Fluent PT for*****,在Symbol面板勾选“Show Sypmbols”并点击apply。3. 在 animation操作面板中展示粒子运动的动画并保存动画。如下图所示。15.Q:Fluent瞬态计算结束后在CFD-POST制作动画的方法A:CFD-POST导入Fluent瞬态结果并制作动画方法如下:Fluent瞬态计算时设置保存频率。比如下图是每5个时间步保存一次结果。在CFD-POST的菜单栏选择File-&gt;Load Results,并导入最后一次保存的计算结果。在CFD-POST的菜单栏Tools &gt; Animation。然后按照如下图所示的方法,即可顺利生成动画。16.Q:Fluent 三种传热系数(Surface Heat Transfer Coef, Wall Adjacent HTC, Wall Function HTC)的区别?A:如果不开启湍流模型,即只计算层流,则在后处理时只有Surface Heat Transfer Coef.和Wall adjacent Heat Transfer Coef.,没有 Wall Function Heat Transfer Coef。若开启湍流模型后,则三种传热系数同时出现。(1)Surface Heat Transfer Coef.就是教科书提到的表面传热系数,试验获取的也是该值。在Fluent中,表面传热系数(Surface Heat Transfer Coef.)的计算公式如下:其中,q是总的热流密度,包括对流和辐射。因此,从Surface Heat Transfer Coef.的计算公式可知,此处计算的是平均表面传热系数,其值大小受参考温度的影响,因此需要给定合适的参考温度。参考温度的选取方法十分复杂。以管内流动为例,参考温度的选取方法因边界条件的不同而不同。定热流边界:可以取进出口断面平均温度的算术平均值作为参考温度。即:进口端流体与管壁温差:出口端流体温度与管壁温差:进出口两端的算术平均温差:定壁温边界:流体与壁面间的温度差将沿管长按对数曲线规律变化。其对数平均温差为:如果,则对数平均温差和算数平均温差相当(误差小于4%)。上式中,当时,用“-”号,当时,用“+”号。(2)Wall Adjacent Heat Transfer Coef.即近壁面传热系数,根据Ansys 2020 R1 Fluent帮助文档公式(42-56)ansyshelp.ansys.com/acc可知,其计算公式如下:其中,Tac是与壁面相邻的第一层流体网格的温度。(3)Wall Func. Heat Tran. Coef.是壁面函数换热系数,其计算公式如下:其中,是定容比热,是近壁面湍流速度,D是粘性热,是壁面函数中定义的无量纲温度, 是临近壁面的第一层网格中心的温度。从Wall Func. Heat Tran. Coef的定义可知,该值是和Y+相关的量,不需要求解能量方程就可以得到。当Y+足够大时,Tp将趋近于Tbulk,即参考温度。另外,从定义我们可以得知,Wall Function Heat Tran. Coef和Wall adjacent的值相等,但由于计算原理不同,所以在Fluent中分别命名。17.Q:CFD-POST做瞬态动画如何显示时间?A:创建好Contour显示云图后,再创建Text。菜单栏选择Insert-&gt;Text。定义Text如下:在Text String输入time=&lt;aa&gt;勾选Embed Auto AnnotationType 选为ExpressionExpression选为Time点击Apply这样,就可以在云图显示了。来源:CFD仿真区

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈