找回密码
 注册
查看: 4746|回复: 5

请教高手如何在多孔介质定义化学反应

[复制链接]
发表于 2007-8-9 13:03:10 | 显示全部楼层 |阅读模式

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

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

x
自己编了一个化学反应速率表达式,如果不限定区域是可以用的,但是当我想把化学反应限定在多孔介质区域时,就提示错误,请教高手如何在UDF里设定。程序如下:
/* rate.c */
/* UDF for specifying a reaction rate in a porous medium */
#include "udf.h"
#define A1  13990000
#define E1  8569
#define ANH31  5e-12
#define ENH31  -29245
#define A2   500
#define E2   9057
DEFINE_VR_RATE(user_rate, c, t, r, mole_weight, species_mf, rate, rr_t)
{
real temp=C_T(c,t);
real S1 = species_mf[4];
real S2 = species_mf[5];
if (FLUID_THREAD_P(t) &&THREAD_VAR(t).fluid.10)   
/*就是上行提示错误,fluid.10是我在fluent里面设定的多孔介质名称*/
  *rate=A1*(exp(-E1/temp))*S1*0.7*S2*0.7*ANH31*(exp(-ENH31/temp))/(30*(17+ANH31*S2*0.7*(exp(-ENH31/temp))));
else
*rate=0
}[color=#DC143C]文字文字文字[color=#006400]文字[color=#DC143C]文字
发表于 2011-8-24 15:26:49 | 显示全部楼层
/******************************************************************
rate.c
Compiled UDF for specifying a reaction rate in a porous medium
*******************************************************************/

#include "udf.h"

#define K1 2.0e-2
#define K2 5.

DEFINE_VR_RATE(vol_reac_rate,c,t,r,mole_weight,species_mf,rate,rr_t)
{
  real s1 = species_mf[0];
  real mw1 = mole_weight[0];

  if (FLUID_THREAD_P(t) && THREAD_VAR(t).fluid.porous)
    *rate = K1*s1/pow((1.+K2*s1),2.0)/mw1;
  else
    *rate = 0.;

  *rr_t = *rate;
}

帮助文档例题。

点评

请问这种涉及多孔介质的反应, (1)发生的是表面反应,使用的宏应该是DEFINE_SR_RATE()吗? (2)多孔介质的流体域发生反应在Fluent面板已设置,FLUID_THREAD_P(t) 函数和THREAD_VAR(t).fluid.porous,一定要写吗?  详情 回复 发表于 2020-6-15 14:41
发表于 2011-8-24 16:45:12 | 显示全部楼层

回复 1# chjj 的帖子

改成这句就可以了
if(FLUID_THREAD_P(thread)&&THREAD_VAR(thread).fluid.porous)
发表于 2011-8-25 09:10:57 | 显示全部楼层

人家函数里面参数用的是t,你为啥用thread?不要误导哦。
发表于 2011-11-18 10:24:14 | 显示全部楼层
要是你真的用udf解决不了。另外一个方法,就是通过fluent的控制面板,考虑是否激活所在域内的化学反应。
发表于 2020-6-15 14:41:06 | 显示全部楼层
030301029 发表于 2011-8-24 15:26
/******************************************************************
rate.c
Compiled UDF for specif ...

请问这种涉及多孔介质的反应,
(1)发生的是表面反应,使用的宏应该是DEFINE_SR_RATE()吗?
(2)多孔介质的流体域发生反应在Fluent面板已设置,FLUID_THREAD_P(t) 函数和THREAD_VAR(t).fluid.porous,一定要写吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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