问题描述: 做两相流模拟时采用Pseudo Transient 仿真,UDF是否适用?按稳态来编写?是否需要读取假定的时间步长?
A: 可以在进行伪瞬态模拟时调用UDF,需要读取假定时间步长。调用flow.h 子程序的DUAL_TIMESTEP函数即可,或者在GUI界面输入RP_Get_Real("pseudo-auto-time-step-scale-factor")获取。
详细描述:如何实现pseudo transient 仿真下,在UDF中读取某一时刻的伪时间步长,及当前时刻的VOF of vapor值。如果是瞬态条件下,可以用dt = CURRENT_TIMESTEP, 不知道在伪瞬态下如何实现?因为在Fluent UDF manual中没查找到相应的说明。
A:读取伪瞬态时间步长,您可以定义用DUAL_TIMESTEP来代替真正瞬态的CURRENT_TIMESTEP试试看。
A: 操作步骤如下:
该文档内容如下:
set path=c:\program files\ansys inc\v193\fluent\ntbin\win64
fluent 3d -g -i run1.jou
fluent 3d -g -i 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。
问题描述:在Fluent中两个面建立interface后,就边界条件中就失去了shell conduction. 我现在这两个面之间是有几层不同的薄硅胶的,就地方没法定义了。 如果使用共节点的话,就会有shell conduction可以定义多层材料导热。
比如有两个面传热,而这两个面中间有多层很薄的导热硅胶,不方便建模。 分析过程中想通过fluent 的shell conduction来建立虚拟的壁面传热,通过将这两个面共节点后,导入fluent中可以设置shell conduction,如左图所示; 可有时这两个面我设置的时interface,也是可以实现传热的,但这时shell conduction 却没有。
A:interface不支持shell conduction。这点帮助文档也有提到,见下图。请采用wall边界来实现您的需求。
A: 1.若是.msh文件,可以直接用SCDM打开,然后另存为自己需要的集合格式。
2.若是.cas文件,则用Fluent Meshing 打开,保存为.msh文件,然后再采用第一种方式处理。
问题描述:最近在PBS(PBS是Altair开发的服务器计算排队系统。)上提交Fluent的计算时,出现一些问题,系统是Linux:
1. 保存的时候保存到一半,题目就出错了,已经在很多题上出现这个问题,并且看了下节点的存储空间是充足的。
2. 计算还没开始,就提示软件不能启动,这个题之前已经计算过出结果了,journal应该没有问题。
此外,在PBS上投题持续出现问题,提示如下。下面截了比较多的信息:
A:根据帮助文档看信息,这个问题很可能是内存不足造成的,建议运行计算后查看一下服务器的内存情况,若大量内存被占用就会出现这个问题。
A:采用如下方式可以实现。在Fluent中选择File->read->mesh打开读入网格对话框,并勾选Replace Mesh。如下图所示。
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 ”
A:Display/set-window *
注:*表示窗口的名称
问题描述:计算的是2D VOF模型,模拟的物理问题是随着入口压力的增大,钢水被压入模型上方。但在2019R3中可以正常计算的模型,在2020R中计算却发现钢水液位没有任何变化,请问这是怎么回事?
A:在2020 R1 Fluent读入2019R3的case后,需要手动去设置一下边界条件。就是说,把Gauge Total Pressure项重新进行选择一下(如下图示),即可进行正常计算。
问题描述:我用CFX做了一个节流结构的空气流仿真(如下图),当节流孔处mach number已经超过1时,仿真结果显示:当压差增大,通过节流结构的流量还能继续增大,感觉这个是不是不太合理,或者是可能哪里设置错了?
A:计算是对的。如果改变入口压力,出口质量流量也随之增加。
壅塞是管道中某一界面处的流速达到声速时所发生的一种流动现象,其表现为:不论管道出口外压强如何降低,声速截面前的流速、压强等不再发生变化,相应流量也不保持不变。
用简单的流动解释就是达到音速后,下游的扰动都传递不到上游。但如果你改变上游条件,那就情况完全变了。因此在喉部达到音速后,需要降低出口压力。比如,其中一个流动工况在入口4bar 出口1.6bar时已经出现壅塞。
降低出口压力后的流量变化如下图所示。
问题描述:请问如何添加这个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数据。
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;} |
A: 这是因为两种系统的默认编码方式不一样,在windows下是ANSI,而Linux是UTF-8。在windows下写好的UDF源代码需要另存为ANFI格式的,而linux下写好的UDF源码文件需要保存为UTF-8的格式。这样,问题应该可以解决。
详细描述: 在Fluent中,创建的材料如何保存下来,以后只需要直接导入使用就行了,不然每次创建材料太耗费时间,不知道Fluent中如何操作的?
A:可以采用如下方法把创建好的材料保存下来,并重复使用。
2.其次,使用已保存的材料。步骤如下:
3. 在弹出的“User-Defined Database Materials”里选中新创建的材料,然后点击“Copy”。这样新创建的材料就被导进来了。
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。
问题描述: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
这样就可以解决该问题。
A:在Fluent里可以采用表达式的方式来添加周期性方波热源。比如给一个周期为5s发热量为8W的方波热源,就可以采用如下表达式。
IF(mod(t,10[s])<=5[s],8,0)
这样,截图如下:
A:创建Jou文件,并在该文件里输入以下内容,在fluent里读入该jou文件即可更改源项。
/define/boundary-conditions/set/solid coppersource-terms 1 yes 80q |
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删