F_CENTROID(x,f,t); y = x[1]; F_PROFILE(f,t,i) =1.1e5- y*y; } end_f_loop(f,t) } 5 获取影子面的Thread 当一个面存在影子面时,可以利用宏THREAD_SHADOW获取该面的影子的Thread。 宏描述:THREAD_SHADOW(t) 宏参数:Thread *t 返回值:Thread *t 当宏参数所对应的面没有影子面时,此宏返...
F_PROFILE(f, t, i) = 20.0 * y; } end_f_loop(f, t) } 解释: 该UDF通过DEFINE_PROFILE宏定义了一个速度边界条件,速度随y轴坐标变化。 6.2 例子2: 设置材料属性的UDF #include "udf.h" DEFINE_PROPERTY(cell_density, ...
注:PRINCIPAL_FACE_P宏只能用于编译型UDF中。 begin_f_loop(f,t) ifPRINCIPAL_FACE_P(f,t) { F_AREA(area,f,t); total_area +=NV_MAG(area); } end_f_loop(f,t) 4 外部Thread数据存储 每个Thread将与其网格单元或网格面相关联的数据存储在一组数组中。例如,压力存储在一个数组中,单元格c的压力是...
边界面循环宏下F_T(f, t)表示温度
end_f_loop(f, t) thread_loop_c(t, d)///遍历混合域d上的线程 { //代码// } 值得注意的是,DEFINE宏里面会包含结构宏,这样说来,DEFINE宏可以类比为C语言中的自定义函数,而结构宏则可以类比成循环语句for或while,只不过这里的循环的是网格或线程。 要...
p_sum = F_P(f, t); /* 将单元中的压力值赋予 p_sum中*/ tem= F_T(f, t);r=F_P...
begin_f_loop(f,t) { real time=RP_Get_Real("flow-time"); F_CENTROID(xc,f,t); x=xc[0]; y=xc[1]; if(0<=time<=1) F_PROFILE(f,t,i)=2*a*P/(pi*r*r)*exp(-2*(pow(x-0.004-v*time,2)+pow(y-0.004,2))/(r*r)); ...
thread_loop_c(t,d) 在domain里对计算域进行循环;thread_loop_f (t,d) 在domain里对边界进行循环;begin_c_loop(c,t) 在计算域内对网格单元进行循环;begin_f_loop(f,t) 在边界内对网格单元的面进行循环;end_c_loop(c,t) 结束在计算域内对网格单元进行循环;end_f_loop (f,t) 结束在边界内对网格...
F_T(f,t) face_t f,Thread*t 温度 F_H(f,t) face_t f,Thread*t 焓 F_K(f,t) face_t f,Thread*t 湍流运动能 F_D(f,t) face_t f,Thread*t 湍流运动能的分散速率 F_YI(f,t,i) face_t f,Thread*t,int i 物质的质量分数 F_FLUX(f,t) face_t f,Thread*t 通过边界表面的质量流...
f;real c[ND_ND];real x,y,angle,r,u_y;begin_f_loop(f,t){ F_CENTROID(c,f,t);x=c[0];y=c[1];r=sqrt(x*x+y*y);angle=atan2(fabs(y),fabs(x));u_y=-w*r*cos(angle); /*得到y方向速度矢量*/ if (x>0)u_y=-u_y;F_PROFILE(f,t,i)=u_y;} end_f_loop(f,t)} ...