udf动网格壁面运动速度的问题
-
大家好,我想让一个壁面实现一个简单的变形,如图:
就是从左图变形边界壁面变形到右边。
我用DEFINE_CG_MOTION的宏写了一个udf:begin_f_loop(f,t) { F_CENTROID(x,f,t); y = x[1]; printf("\ny=%f\t",y); vel[0] = -2.*(y+2.5); printf("vel[0]=%f\n",vel[0]); } end_f_loop(f,t) printf("vel=%f\n",vel[0]);
其中我想让在左边壁面上的每个节点的运动速度跟y坐标值有关。
但是,我在预览动网格变形的时候发现壁面的运动并没有像我想象的那样倾斜,而是保持竖直的。
请问,我的这段程序该怎么修改才能实现那样的效果呢?谢谢! -
还是没有总逛论坛的习惯~
我就是利用DEFINE_GRID_MOTION将坐标按照一定的规律重新赋值。#include "udf.h" DEFINE_GRID_MOTION(my_grid,d,dt,time,dtime) { Thread *t=DT_THREAD(dt); Node *node; face_t f; int n; SET_DEFORMING_THREAD_FLAG(THREAD_T0(t)); begin_f_loop(f,t) { f_node_loop(f,t,n) { node=F_NODE(f,t,n); if(NODE_POS_NEED_UPDATE(node)) { NODE_POS_UPDATED(node); if(NODE_X(node)!=0) { NODE_COORD(node)[0]=NODE_X(node)+NODE_Y(node); } else NODE_COORD(node)[0]=0; } } } end_f_loop(f,t) }
NODE_COORD(node)是重新赋值的部分,[0]表示x坐标。不知道这样做好不好~