用户编码示例

用户编码函数可用于定义 Simcenter STAR-CCM+ 所需的位移或网格速度。

此类函数需要访问网格中的所有节点,获取方式如下:

ucarg((void *)userMotionFunc, "Vertex", "Coord", sizeof(CoordReal[3]));

此处的参数类型为 "Vertex",而不是 "Cell" 或 "Face",所请求的数组为 "Coord"。 该参数属于函数 userMotionFunc,此函数的声明可能如下所示:

void userMotionFunc(Real (*result)[3], int size, CoordReal (*vpos)[3])
{
   // user coding here to calculate the displacement
   // or grid velocity, which will be returned
   // in the result array
 }

在此函数中,结果数组将返回以下某个物理量:

  • 增量位移;
  • 总位移;
  • 网格速度。

特定物理量取决于在用户自定义的节点选项节点中所做的选择及其关联值节点。

编译并链接一个合适的函数后,该函数将作为矢量函数显示在“场函数”列表中。 选择场函数选项作为 UDV: LinearDisplacement(UDV:线性位移) 节点或网格速度节点的方法属性,然后从列表中选择用户编码的场函数。