吾生有涯 学海无涯
析模有界 知识无界

Fluent UDF【18】:源项

在UDF中定义源项通常利用宏DEFINE_SOURCE来实现。

可以应用的地方包括:

  • 质量、动量以及能量

  • k与epsilon

  • 组分质量分数

  • P1辐射模型

  • UDS标量输运方程

  • 颗粒温度(欧拉、混合多相流模型)

1

DEFINE_SOURCE宏

使用方式:

DEFINE_SOUCE(name, c, t ,dS, eqn)


宏参数:

  • symbol name:用户自定义UDF名称

  • cell_t c:加载源项的网格索引,由Fluent传入

  • Thread *t:网格线索指针,Fluent传入

  • real dS[]:源项导数项数组

  • int eqn:方程数量

返回值:real

DEFINE_SOURCE宏包括5个参数,用户需要指定UDF名称,参数c,t,ds以及eqn均由Fluent传入。


源项的导数常用于线性化源项,增强求解稳定性。源项通常可表达为: 

式中,Φ为因变量,A为源项的显式部分,BΦ为隐式部分。为何要如此处理,可参阅任何一本计算流体力学教材中的源项线性化部分,线性化处理得不好,轻则不收敛引起误差,重则导致错误。

指定合适的B值能够增加求解矩阵的对角项,有利于提高求解的稳定性及收敛速度。Fluent自动判断用户输入的B值是否能够增强计算稳定性,如果能够提高稳定性,则fluent会定义:

用户必须在UDF中计算源项并将其返回至求解器,不过可以选择设置隐式项dS[eqn],也可以强制使隐式项为0。

2

简单案例

用一个简单的案例描述DEFINE_SOURCE的处理方式。

如要定义一个动量源项: 

假设: 

其中 

因此: 

源项返回值为: 

因此可写成UDF为:

#include "udf.h"
#define C2 100.0
DEFINE_SOURCE(xmom_source,c,t,dS,eqn)
{
   real x[ND_ND];
   real con, source;
   C_CENTROID(x,c,t);
   con = C2*0.5*C_R(c,t)*x[1];
   source = -con*fabs(C_U(c, t))*C_U(c,t);
   dS[eqn] = -2.*con*fabs(C_U(c,t));
   return source;
}

本篇文章来源于微信公众号: CFD之道

赞(11) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《Fluent UDF【18】:源项》
文章链接:https://www.topcfd.cn/6395/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册