请教关于FLUENT中UDF的问题从udf中获得各网格质心坐标的函数:F_CENTROID(x,f,thread).它是将坐标赋值给了矢量x.而x定义的时候是real x[ND_ND] 是质心坐标所在的数组.我不太明白这个数组是一个什么样的数组.它是直接可以将所有网格的坐标都存在其中,还是会随着循环的每一次进行而它其中的值不断发生变化?PS:有一个小例子的程序:#include"udf.h"DEFINE_PROFILE(velocity_inlet,thread,position){real x[ND_ND];real y;face_t f;begin_f_loop(f,thread){F_CENTROID(x,f,thread);y=x[1];F_PROFILE(f,thread,position)=0.5-y*y/(0.02*0.02)*0.5;}end_f_loop(f,thread)}
问题描述:
请教关于FLUENT中UDF的问题
从udf中获得各网格质心坐标的函数:F_CENTROID(x,f,thread).它是将坐标赋值给了矢量x.而x定义的时候是real x[ND_ND] 是质心坐标所在的数组.我不太明白这个数组是一个什么样的数组.它是直接可以将所有网格的坐标都存在其中,还是会随着循环的每一次进行而它其中的值不断发生变化?
PS:有一个小例子的程序:
#include"udf.h"
DEFINE_PROFILE(velocity_inlet,thread,position)
{
real x[ND_ND];
real y;
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(x,f,thread);
y=x[1];
F_PROFILE(f,thread,position)=0.5-y*y/(0.02*0.02)*0.5;
}
end_f_loop(f,thread)
}
答
这就是 C 语言中一个普通的函数
ND_ND 就是一个宏,在 3d 时为 3,2d 时为 2
执行 F_CENTROID(x,f,thread); 时,取得坐标,存在 x 中
由于每次循环都要取坐标,所以 x 值每次都要更新,是不断变化的