找回密码
 注册
查看: 2735|回复: 4

非稳态出口总流量怎么写UDF

[复制链接]
发表于 2009-4-17 11:46:01 | 显示全部楼层 |阅读模式

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

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

x
我的流场计算中有三个出口,我需要统计某一个出口在整个非稳态计算过程中的总流量。
现在,我只清楚可以用execute_at_end得到每个时刻的流量值。
可是怎么可以把这些数据保存并加和计算呢/.

谢谢!
发表于 2009-4-17 13:54:55 | 显示全部楼层
原帖由 shopping 于 2009-4-17 03:46 发表
我的流场计算中有三个出口,我需要统计某一个出口在整个非稳态计算过程中的总流量。
现在,我只清楚可以用execute_at_end得到每个时刻的流量值。
可是怎么可以把这些数据保存并加和计算呢/.

谢谢!

对出口面的每个face单元循环,用F_FLUX取得该face的流量,然后把所有face单元的流量求和
 楼主| 发表于 2009-4-17 14:13:02 | 显示全部楼层

回复 2# gearboy78 的帖子

这个循环是对时间的循环吗?再时间的循环里面套一个loop命令可以得到某一时刻整个面的流量的?
但是这个UDF用什么宏开始呢?
我看所有的UDF都是DEFINE_*******开始的,还有UDF再哪里可以加载呢?
不好意思,一团浆糊
发表于 2009-4-17 14:33:32 | 显示全部楼层
DEFINE_EXECUTE_AT_END is a general-purpose macro that is executed at the end of an
iteration in a steady state run, or at the end of a time step in a transient run.
每个时间步结束汇报你要的流量应该是可以的。随便编了一个,没有上机测试调试,仅供参考。
DEFINE_EXECUTE_AT_END(execute_at_end)
{
Domain *d;
face_t f;
Thread *t;
real sum_mass=0.;
d = Get_Domain(1);
t=Lookup_Thread(d,out_face_ID);
begin_f_loop(f,t)
{
sum_mass+=F_FLUX(f,t);
}
end_f_loop(f,t)
Message("total flux is %g\n",sum_mass);
}
其中out_face_ID是你要监控的face的id整数号。
 楼主| 发表于 2009-4-17 15:58:38 | 显示全部楼层

回复 4# gearboy78 的帖子

很感谢
太不好意思,你都给我写出来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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