资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实例应用实例应用11、为什么要使用UDF 一般来说,任何一种软件都不可能满足每一个人的要求,FLUENT也一样,其标准界面及功能并不能满足每个用户的需要。UDF正是为解决这种问题而来,使用它我们可以编写代码满足不同用户的特殊需要。#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号