|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我做的是一个管道内模型运动的模拟仿真,相当于管道内的活塞运动,不过是模型中有个通孔,我的udf程序如下:
#include <stdio.h>
#include "udf.h"
static real v_prev = 0.0;
DEFINE_CG_MOTION(piston, dt, vel, omega, time, dtime)
{
Thread *t;
face_t f;
real NV_VEC (A);
real force, dv;
NV_S (vel, =, 0.0);
NV_S (omega, =, 0.0);
if (!Data_Valid_P ())
return;
t = DT_THREAD (dt);
force = 0.0;
begin_f_loop (f, t)
{
F_AREA (A, f, t);
force += F_P (f, t) * NV_MAG (A);
}
end_f_loop (f, t)
dv = dtime * force / 2.0;
v_prev += dv;
Message ("time = %f, x_vel = %f, force = %f\n", time, v_prev,
force);
/* set x-component of velocity */
vel[0] = v_prev;
}
也尝试过将时间步减小到1e-4了,但还是不行,同样出现负网格。高手帮忙看看是什么地方出问题了啊?着急中。。。万分感谢!!! |
|