FLUENT-UDF实例应用[1]

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

UDF的应用User-DefinedFunction1、为什么要使用UDF一般来说,任何一种软件都不可能满足每一个人的要求,FLUENT也一样,其标准界面及功能并不能满足每个用户的需要。UDF正是为解决这种问题而来,使用它我们可以编写代码满足不同用户的特殊需要。2、UDF的功能•定义边界条件,定义材料属性,定义表面和体积反应率,定义FLUENT输运方程中的源项,用户自定义标量输运方程(UDS)中的源项扩散函数等等。•在每次迭代的基础上调节计算值•方案的初始化•(需要时)UDF的异步执行•后处理的改善•FLUENT模型的改进(例如离散相模型,多项混合物,离散发射辐射模型)3、举一反三•DEFINE_PROFILE•#includeudf.h“DEFINE_PROFILE(pressure_profile,t,i){realx[ND_ND];realy;face_tf;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”#definepi4.*atan(1.)DEFINE_PROFILE(x_velocity,thread,position){face_tf;begin_f_loop(f,thread){realt=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_tf;realx;reala=0.01;realg[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)}根据距离原点远近定义热流率#includeudf.hDEFINE_PROFILE(heatflux,t,i){face_tf;realr;reala=0.01;realx[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、综合编程:出口平均温度赋值给进口#includeudf.hrealNV_VEC(A);realavg_temp;realsum_T_A=0.0;realsum_A=0.0;Thread*thread_out;face_tf;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;}DEFINE_PROFILE(inlet_T,t,i){begin_f_loop(f,t){F_PROFILE(f,t,i)=avg_temp;}end_f_loop(f,t)}对并行编程的展望大部分单核可以运行的UDF在并行下可以完美运行,不过在一些情况下就不行了,前面的综合编程就是一个很好的例子(ReadingandWritingFiles,GlobalSums,CertainLoopsovercellsandfaces等情况)。然而现在大部分PC机或者工作站都是多核,如何写好并行下的UDF是深入模拟领域的关键。谢谢!

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功