FLUENT_UDF实例应用

更新时间:2023-08-27 20:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

UDF的应用User-Defined Function

1、为什么要使用UDF一般来说,任何一种软件都不可能满 足每一个人的要求,FLUENT也一样, 其标准界面及功能并不能满足每个用户 的需要。UDF正是为解决这种问题而来, 使用它我们可以编写代码满足不同用户 的特殊需要。

定义边界条件,定义材料属性,定义表 面和体积反应率,定义FLUENT输运方 程中的源项,用户自定义标量输运方程 (UDS)中的源项扩散函数等等。 在每次迭代的基础上调节计算值 方案的初始化 (需要时)UDF的异步执行 后处理的改善 FLUENT模型的改进(例如离散相模型, 多项混合物,离散发射辐射模型)

2、UDF的功能

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_PROFILE(inlet_T, t, i) { begin_f_loop(f,t) { F_PROFILE(f,t,i) = avg_temp; } end_f_loop(f,t) }

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是深入模拟领域的关键。

谢谢!

本文来源:https://www.bwwdw.com/article/icii.html

Top