资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
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 xND_ND; real y; face_t f; begin_f_loop(f,t) F_CENTROID(x,f,t); y = x1; 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 gND_ND; begin_f_loop(f,t) F_CENTROID(g,f,t); x=g0; F_PROFILE(f,t,i)=a*x; end_f_loop(f,t),根据距离原点远近定义热流率,#include udf.hDEFINE_PROFILE(heatflux,t,i) face_t f; real r; real a=0.01; real xND_ND,yND_ND,zND_ND; begin_f_loop(f,t) F_CENTROID(x,f,t); y0=0.0; y1=0.0; y2=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.hreal 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;,DEFINE_PROFILE(inlet_T, t, i) begin_f_loop(f,t) F_PROFILE(f,t,i) = avg_temp; end_f_loop(f,t),对并行编程的展望,大部分单核可以运行的UDF在并行下可以完美运行,不过在一些情况下就不行了,前面的综合编程就是一个很好的例子(Reading and Writing Files,Global Sums,Certain Loops over cells and faces等情况)。然而现在大部分PC机或者工作站都是多核,如何写好并行下的UDF是深入模拟领域的关键。,谢谢!,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号