很多朋友在开发Fluent模型中需要根据点的坐标来查找对应的cell。总体来说,有两种方法,一种是利用内置的函数来查找,另外一种就是自己写代码查找,这里逐一介绍。
1. 利用内置函数查找
Fluent有一个内置函数CX_Find_Cell_With_Point可以根据点坐标查询对应cell号码。原型声明如下,注意不同Fluent版本中参数有所变化。
CX_Cell_Id *CX_Find_Cell_With_Point(float v[3]); // 对于Fluent version 6.3~12.1
CX_Cell_Id *CX_Find_Cell_With_Point(ND_Search *, float v[3]); //对于 Fluent version 13.0
CX_Cell_Id *CX_Find_Cell_With_Point(ND_Search *, double v[3], double time); //对于Fluent version>=14.0
具体怎么用就直接上代码吧(本例利用VC++ UDF Studio插件编译通过,示例代码考虑了不同的Fluent版本,兼容所有Fluent版本)。
#include "udf.h"
extern "C"
{
#if RampantReleaseMajor>=13
#include "cxndsearch.h" //需要的头文件
#endif
};
DEFINE_ON_DEMAND(find_cell)
{
cell_t c;
Thread *t;
real coord_Cell[ND_ND]; //找到的cell的中心坐标
CX_Cell_Id* c