找回密码
 注册
查看: 1407|回复: 1

管道内数值模拟为什么生成的网格是负的?

[复制链接]
发表于 2013-12-27 04:21:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

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了,但还是不行,同样出现负网格。高手帮忙看看是什么地方出问题了啊?着急中。。。万分感谢!!!
发表于 2018-1-18 21:15:01 | 显示全部楼层
额。。。看过这个UDF,用了之后从来没成功过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表