|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
#include "udf.h"
#define body_mass 0.05
real body_inertial[3]={7.5E-6,7.5E-6,1.5E-5};
real body_vel_prev[3]={0,0,0};
real body_omega_prev[3]={0,0,0};
real body_centroid[3]={0.5,0.8,0};
DEFINE_CG_MOTION(raoliu,dt,vel,omega,time,dtime)
{
Thread *t;
Domain *d;
face_t f;
real force[ND_ND];
real moment[ND_ND];
real d_vel[ND_ND];
real d_omega[ND_ND];
t=DT_THREAD(dt);
d=THREAD_DOMAIN(t);
NV_S(vel,=,0);
NV_S(omega,=,0);
Compute_Force_And_Moment(d,t,body_centroid,force,moment,FALSE);
d_vel[0]=dtime*force[0]/body_mass;
body_vel_prev[0]=body_vel_prev[0]+d_vel[0];
vel[0]=body_vel_prev[0];
d_vel[1]=dtime*(-9.8*body_mass+force[1])/body_mass;
body_vel_prev[1]=body_vel_prev[1]+d_vel[1];
vel[1]=body_vel_prev[1];
d_omega[2]=dtime*moment[2]/body_inertial[2];
body_omega_prev[2]=body_omega_prev[2]+d_omega[2];
omega[2]=body_omega_prev[2];
}
我是新手,刚接触UDF,这个是书上看来的计算流场对刚体的作用力和作用力矩从而更新网格的UDF,应用到绕流中没有问题,模拟刚体入水时刚体在空气中掉落时也没有问题,但是在即将如水时(最低点尚未接触水面),刚体区域会突然沿左上方飞出,不知什么原因,请教。谢谢啦! |
|