第10章应用举例.docVIP

  • 11
  • 0
  • 约2.26万字
  • 约 29页
  • 2017-06-03 发布于天津
  • 举报
第10章应用举例

第10章 应用举例 本章包含了FLUENT中UDFs的应用例子。 10.1 边界条件 10.2源项 10.3物理属性 10.4反应速率(Reacting Rates) 10.5 用户定义标量(User_Defined Scalars) 10.1边界条件 这部分包含了边界条件UDFs的两个应用。两个在FLUENT中都是作为解释式UDFs被执行的。 10.1.1涡轮叶片的抛物线速度入口分布 要考虑的涡轮叶片显示在Figure 10.1.1中。非结构化网格用于模拟叶片周围的流场。区域从底部周期性边界延伸到顶部周期性边界,左边是速度入口,右边是压力出口。 Figure 10.1.1: The Grid for the Turbine Vane Example 常数速度应用于入口的流场与抛物线速度应用于入口的流场作了比较。当采用分段线性分布的型线的应用是有效的对边界型线选择,多项式的详细说明只能通过用户定义函数来完成。 常数速度应用于流场入口的结果显示在Figure 10.1.2和Figure 10.1.3中。当流动移动到涡轮叶片周围时初始常速度场被扭曲。 Figure 10.1.2: Velocity Magnitude Contours for a Constant Inlet x Velocity Figure 10.1.3: Velocity Vectors for a Constant Inlet x Velocity 现在入口速度将用以下型线描述: 这里变量在人口中心是0.0,在顶部和底部其值分别延伸到。这样速度在入口中心为20m/sec,在边缘为0。 UDF用于传入入口上的这个抛物线分布。C源代码(vprofile.c)显示如下。函数使用了Section 5.3中描述的Fluent提供的求解器函数。 /***********************************************************************/ /* vprofile.c */ /* UDF for specifying steady-state velocity profile boundary condition */ /***********************************************************************/ #include udf.h DEFINE_PROFILE(inlet_x_velocity, thread, position) { real x[ND_ND]; /* this will hold the position vector */ real y; face_t f; begin_f_loop(f, thread) { F_CENTROID(x,f,thread); y = x[1]; F_PROFILE(f, thread, position) = 20. - y*y/(.0745*.0745)*20.; } end_f_loop(f, thread) } 函数,被命名为inlet_x_velocity,使用了DEFINE_PROFILE定义并且有两个自变量:thread 和position。Thread是一个指向面的thread的指针,position是一个整数,它是每个循环(loop)内为变量设置的数值标签。 函数通过声名变量f作为face_t的数据类型。一维数组x和变量y被定义为real数据类型。循环宏用于循环区域内每个面来创建型线,或数据数组。每个循环内,F_CENTROIDS为带指标f的面输出面质心(数组x)的值,指标f在被thread指向的线(thread)上。存储在x[1]中的y坐标用于为变量y赋值,然后用于计算x速度。这个值接着被分配到F_PROFILE,使用整数position(在你从Velocity Inlet面板中选择的UDF作为x速度的边界条件的基础上通过求解器传递给它)来设置内存中x速度面值。 为了在FLUENT中使用这个解释式UDF,你必须首先编译它。 Define User-Defined Functions Interpreted... 在Interpreted UDFs面板中,在Source File Name区域命名你的函数。如果必要,在CPP Command Name区域输入你的C预处理程序类型和在Stack Size下输入堆栈大小。打开Display Assembly L

文档评论(0)

1亿VIP精品文档

相关文档