- 积分
- 27
- 注册时间
- 2008-9-30
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2011-2-18 09:03:17
|
显示全部楼层
来自 黑龙江哈尔滨
#include "udf.h"
static real v_prev = 0.0;
static real loc_prev=0.0;
#define k 2.5
#define m 1
DEFINE_CG_MOTION(fazuo, dt, vel, omega, time, dtime)
{
Thread *t;
face_t f;
real NV_VEC (A);
real f1,f2,f_s, dv;
NV_S (vel, =, 0.0);
NV_S (omega, =, 0.0);
if (!Data_Valid_P ()) return;
t = DT_THREAD (dt);
f1= 0.0;
begin_f_loop (f, t)
{
F_AREA (A, f, t);
f1 = f1 + F_P (f, t) * A[0];
}
end_f_loop (f, t)
f_s=k*loc_prev;
f2=f1+f_s;
dv = dtime * f2 / m;
v_prev = v_prev + dv;
/*if(time<0.2) v_prev=0.01;*/
loc_prev=loc_prev+v_prev*dtime;
Message("\n\ntime = %f, x_vel = %f, f2 = %f, dv=%f\n", time, v_prev, f2,dv);
vel[0] = v_prev;
} |
评分
-
1
查看全部评分
-
|