- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[博研联盟一个简单而完整的UDS例子
一个简单而完整的UDS例子 gearboy
标准方程形式:
(默认)
Fluent中各项的定义如下:
名称 表达式 各项在UDS中需要定义的量 在UDS中对应的宏 非稳态项 离散形式的非稳态项
(详细见UDF帮助) DEFINE_UDS_UNSTEADY 对流项 通量 DEFINE_UDS_FLUX 扩散项 扩散率 DEFINE_DIFFUSIVITY 假定需要求解方程为
当,即如果计算达到稳定时,,此方程解析解为,其中c为常数(假定其为0),可由边界条件确定。因此,当解稳定时,,等值线为一系列45度的斜直线。
将此方程与标准方程对比发现:
名称 表达式 各项在UDS中需要定义的量 需要在UDS中定义的宏 非稳态项 离散形式的非稳态项
DEFINE_UDS_UNSTEADY 对流项 通量
(单位向量) DEFINE_UDS_FLUX 扩散项 扩散率 DEFINE_DIFFUSIVITY 源项 2 2 DEFINE_SOURCE 边界条件 (b代表边界处) DEFINE_PROFILE *注:源项和扩散率为常数,可以不用定义宏,但为了说明问题,仍采用宏来定义。
假定如图所示的计算域,其中正方形边长为10,原点在正方形中心,四边均为wall。
将如下源码,写入一个UDF文件,例如MyFistUDF.c,与cas文件放在同一目录。
#include udf.h
DEFINE_UDS_UNSTEADY(MyUnsteady,c,t,i,apu,su)
{
real physical_dt, vol, phi_old;
physical_dt = RP_Get_Real(physical-time-step);
vol = C_VOLUME(c,t);
*apu = -vol / physical_dt; /*implicit part*/
phi_old = C_STORAGE_R(c,t,SV_UDSI_M1(i));
*su = vol*phi_old/physical_dt; /*explicit part*/
}
DEFINE_UDS_FLUX(MyFlux,f,t,i)
{
real NV_VEC(unit_vec), NV_VEC(A); //声明矢量变量
F_AREA(A, f, t);
NV_DS(unit_vec, =, 1, 1, 1, *, 1); //单位矢量赋值
return NV_DOT(unit_vec, A); //矢量点积
}
DEFINE_DIFFUSIVITY(MyDiff,c,t,i)
{
return 1.0;
}
DEFINE_SOURCE(MySource,c,t,dS,eqn)
{
dS[eqn]=0;
return 2.0;
}
DEFINE_PROFILE(MyProfile,thread,index)
{
real x[ND_ND]; /* this will hold the position vector */
real xx,yy;
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(x,f,thread);
xx = x[0];
yy=x[1];
F_PROFILE(f,thread,index) = (xx+yy); //
}
end_f_loop(f,thread)
}
编译通过并载入
启动非稳态求解器,并在Define-User-Defined-Scalars面板中添加一个UDS,选择自定义的通量和非稳态项
在材料面板中,选择自定义扩散率
在boundary conditions的Fluid面板中,选择自定义源项
在boundary conditions的壁面边界条件面板中,选择自定义边界条件
在solve-controls-solution中禁止Flow计算,只计算自定义标量
迭代过程中的残差曲线,可以看出正逐渐趋向稳定
采用后处理等值线面板,观察自定义标量的等值线
未完全稳定时的等值线
最终稳定时的等值线,可以看出是一系列45度的斜直线,与解析解相同。但右上角顶点的值为9.9,而解析解中应为x+y=10,所以尚存在1%的误差。
5
文档评论(0)