FLUENT_UDF实例应用.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UDF的应用 User-Defined Function 1、为什么要使用UDF 一般来说,任何一种软件都不可能满足每一个人的要求,FLUENT也一样,其标准界面及功能并不能满足每个用户的需要。UDF正是为解决这种问题而来,使用它我们可以编写代码满足不同用户的特殊需要。 2、UDF的功能 定义边界条件,定义材料属性,定义表面和体积反应率,定义FLUENT输运方程中的源项,用户自定义标量输运方程(UDS)中的源项扩散函数等等。 在每次迭代的基础上调节计算值 方案的初始化 (需要时)UDF的异步执行 后处理的改善 FLUENT模型的改进(例如离散相模型,多项混合物,离散发射辐射模型) 3、举一反三 DEFINE_PROFILE #include udf.h“ DEFINE_PROFILE(pressure_profile,t,i) { real x[ND_ND]; real y; face_t f; begin_f_loop(f,t) { F_CENTROID(x,f,t); y = x[1]; F_PROFILE(f,t,i) = 1.1e5 - y*y/(.0745*.0745)*0.1e5; } end_f_loop(f,t) } #include “udf.h” #define pi 4.*atan(1.) DEFINE_PROFILE (x_velocity,thread,position) { face_t f; begin_f_loop(f,thread) { real t=RP_Get_Real(“flow-time”); F_PROFILE(f,thread,position)=1+sin(pi*t); } end_f_loop(f,t) } #include “udf.h” DEFINE_PROFILE(heatflux,t,i) { face_t f; real x; real a=0.01; real g[ND_ND]; begin_f_loop(f,t) { F_CENTROID(g,f,t); x=g[0]; F_PROFILE(f,t,i)=a*x; } end_f_loop(f,t) } 根据距离原点远近定义热流率 #include udf.h DEFINE_PROFILE(heatflux,t,i) { face_t f; real r; real a=0.01; real x[ND_ND],y[ND_ND],z[ND_ND]; begin_f_loop(f,t) { F_CENTROID(x,f,t); y[0]=0.0; y[1]=0.0; y[2]=0.0; NV_VV(z,=,x,-,y); r=NV_MAG(z); F_PROFILE(f,t,i)=a*r; } end_f_loop(f,t) } 4、综合编程:出口平均温度赋值给进口 #include udf.h real NV_VEC(A); real avg_temp; real sum_T_A=0.0; real sum_A=0.0; Thread *thread_out; face_t f; Domain *domain; DEFINE_ADJUST(adjust,d) { domain=Get_Domain(1); thread_out=Lookup_Thread(domain,4); begin_f_loop(f,thread_out) { F_AREA(A,f,thread_out); sum_A+=NV_MAG(A); sum_T_A+=NV_MAG(A)*F_T(f, thread_out); } end_f_loop(f,thread_out) avg_temp=sum_T_A/sum_A; } 对并行编程的展望 大部分单核可以运行的UDF在并行下可以完美运行,不过在一些情况下就不行了,前面的综合编程就是一个很好的例子(Reading and Writing Files,Global Sums,Certain Loops over cells and faces等情况)。然而现在大部分PC机或者工作站都是多核,如何写好并行下的UDF

文档评论(0)

feiyang66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档