本案例演示利用Fluent UDF模拟多孔介质区域。
1 计算模型
计算模型如图所示。
计算区域中包含一个多孔介质区域,利用UDF为该区域指定动量源以模拟多孔介质。多孔区域X方向的动量源项表示为:
其中C为常数,C=100。
注:
本案例不采用Fluent中的多孔介质模型。模型中的C是由实验测试拟合得到的。
”
2 准备UDF
利用DEFINE_SOURCE宏指定源项。Fluent采用以下方式对源项进行线性化:
式中*
上标表示的是上一次迭代的值。B项(称为dS[eqn])需要在UDF中明确指定,的值利用UDF进行返回。
对于本案例中的源项,B可以表示为:
写成UDF代码如下图所示。
#include "udf.h"
DEFINE_SOURCE(xmom_source, cell, thread, dS, eqn)
{
const real c2=100.0;
real x[ND_ND];
real con, source;
C_CENTROID(x, cell, thread);
con = c2*0.5*C_R(cell, thread)*x[1];
source = - con*fabs(C_U(cell, thread))*C_U(cell, thread);
dS[eqn] = - 2.*con*fabs(C_U(cell, thread));
return source;
}
代码中:
-
利用 C_CENTROID
宏得到网格单元的坐标值。动量源表达式中需要利用到y坐标值 -
利用 C_R
宏得到密度;利用C_U宏得到x方向速度 -
需要返回source表达式,且在源代码中明确指定dS[eqn]的计算方式
3 Fluent设置
-
以2D、Double Precision模式启动Fluent -
利用菜单File → Read → Mesh… 读取计算网格porous_plug.msh.gz
3.1 编译UDF
-
右键选择模型树节点User Defined Functions,点击菜单项Compiled… 打开文件设置对话框
-
如下图所示编译UDF并加载UDF
3.2 设置区域
-
打开 fluid-2
区域设置对话框,激活选项Source Terms,点击X Momentum右侧Edit… 按钮
-
设置源项为udf xmom_source::libudf,如下图所示
3.3 边界条件设置
-
指定入口边界速度为1 m/s
-
指定出口为压力出口,静压为0 Pa
3.4 初始化
-
进行初始化计算
3.5 计算
-
设置迭代计算参数并进行计算
3.6 计算结果
-
压力分布如下图所示,可以看到多孔介质参数对流动起到了阻塞作用
-
速度分布如下图所示
-
速度矢量分布如下图所示
发放少量微课堂优惠券,有需要的道友可以领取。
文中相关文件下载链接:
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册