|
楼主 |
发表于 2007-7-24 15:59
|
显示全部楼层
悬臂梁振动的动网格问题
/**********************************************************
*
* node motion based on simple beam deflection equation
* compiled UDF
*
**********************************************************/
#include "udf.h"
DEFINE_GRID_MOTION(beam, domain, dt, time, dtime)
{
Thread *tf = DT_THREAD (dt);
face_t f;
Node *v;
real NV_VEC (omega), NV_VEC (axis), NV_VEC (dx);
real NV_VEC (origin), NV_VEC (rvec);
real sign;
int n;
/* set deforming flag on adjacent cell zone */
SET_DEFORMING_THREAD_FLAG (THREAD_T0 (tf));
sign = -5.0 * sin (26.178 * time);
Message ("time = %f, omega = %f\n", time, sign);
NV_S (omega, =, 0.0);
NV_D (axis, =, 0.0, 1.0, 0.0);
NV_D (origin, =, 0.0, 0.0, 0.152);
begin_f_loop (f, tf)
{
f_node_loop (f, tf, n)
{
v = F_NODE (f, tf, n);
/* update node if x position is greater than 0.02
and that the current node has not been previously
visited when looping through previous faces */
if (NODE_X (v) > 0.020 && NODE_POS_NEED_UPDATE (v))
{
/* indicate that node position has been update
so that it's not updated more than once */
NODE_POS_UPDATED (v);
omega[1] = sign * pow (NODE_X (v)/0.230, 0.5);
NV_VV (rvec, =, NODE_COORD (v), -, origin);
NV_CROSS (dx, omega, rvec);
NV_S (dx, *=, dtime);
NV_V (NODE_COORD (v), +=, dx);
}
}
}
end_f_loop (f, tf);
}
这是我从帮助里下载的悬臂梁UDF,UDF是成功载入了,但是在Dynamic Mesh-->Parameters里不知道要输入哪些必要参数,所以就没有更改按OK。
接下来在Zones中我选择的运动区域就是悬臂梁的3条边(为一个整体边界)类型为Rigid Body,其他没改,但是却出现警告(Warning: incorrect cg motion UDF BEAM::libudf on zone 4 (assuming no motion)),这是什么问题呢?
对不起我是新手,所以还不太会,麻烦各位了 |
|