内容纲要
本案例演示在Fluent中利用UDF定义体积热源的基本过程。
1 计算模型
计算模型如图所示。采用UDF定义壁面温度分布与热源。温度分布的定义见案例1,本案例主要描述热源的定义。
Fluent中可以定义质量源、动量源、能量源以及湍流源项,能量源主要用于计算区域内存在体积热源的情况下。本案例中的热源是温度与速度的函数,其函数表达式为:
其中。
另外源项编写需要计算导数:
2 UDF准备
与源项相关的UDF宏为DEFINE_SOURCE。
此宏的定义形式为:
DEFINE_SOURCE (name, c, t, dS, eqn)
其中,name
为宏名,可以是任何符合c语言函数命名规范的字符串;c
与t
的值来自于求解器,用于获取变量值;dS
为源项对于传输方程因变量的导数的数组,通常需要在源代码内定义dS[eqn]的表达形式。
本案例定义的源项对应的源代码如下。
#include "udf.h"
DEFINE_SOURCE(heat_source, c, t, dS, eqn)
{
const real C1 = 1.0;
const real C2 = 0.03;
real source;
real cst_aux = C1 / (C2 - C_U(c, t));
source = cst_aux * C_T(c, t);
dS[eqn] = cst_aux;
return source;
}
代码中的一些需要注意的地方:
-
C_U宏用于获取x方向的速度;C_T宏用于获取温度值 -
source定义了源项的表达式,该值需要返回给求解器 -
dS[eqn]定义了源项对变量的导数表达式,对于能量源,通常是对温度求导
将上面的代码写到一个文本文件中,保存为文件heat_source.c。
3 Fluent设置
3.1 读取网格
-
利用菜单File → Read → Mesh…读取网格文件channel.msh
3.2 编译UDF文件
-
右键选择节点User Defined Functions,点击菜单项Compiled… 打开文件编译对话框
-
如下图所示顺序编译UDF文件 -
点击Add… 按钮打开文件对话框添加UDF源文件temp_wall.c与heat_source.c -
勾选选项Use Built-in Compiler -
点击按钮Build编译代码 -
代码编译完毕后点击按钮Load加载UDF宏
注:
这里准备了两个源文件temp_wall.c与heat_source.c,其实也可以将源代码写在一个文件中。
”
UDF加载后TUI窗口显示如下图所示信息。
3.3 其它设置
-
激活能量方程
注:
案例UDF指定是温度边界,因此需要激活能量方程。
”
-
采用层流计算。这里根据案例的实际情况选择
-
设置计算区域fluid_2 -
激活选项Source Terms -
选择Energy后的**Edit…**打开能量源设置对话框
-
如下图所示设置能量源为udf heat_source::libudf,点击OK按钮关闭对话框
-
指定入口速度0.01 m/s
-
如下图所示选择所有的壁面,点击右键菜单Multi Edit… 打开设置对话框
-
指定壁面边界条件 -
指定边界类型为Temperature -
指定边界条件为udf temp_wall_profile::libudf
-
指定迭代计算参数
计算完毕后查看温度分布,如下图所示。
相关文件及源代码下载链接(内含30张面额30元微课堂优惠券,当天有效,领完为止)。
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册