找回密码
 注册
查看: 1332|回复: 0

请高手们帮忙看一下这个UDF问题~~

[复制链接]
发表于 2011-3-14 13:31:44 | 显示全部楼层 |阅读模式

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

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

x
大家好,我想编译颗粒表面反应的UDF,反应式10C+2Ca3(PO4)2——6CaO+10CO+P4,我仿照例子写了一个程序如下,但是导入FLUENT的时候老是出错,还请帮忙看一下怎么修改啊?不甚感激啊~~~
#include "udf.h"
#include "dpm.h"

#define PRE_EXP 0.1094
#define ACTIVE 7.948e+07
#define BETA 0.0
#define M 3.0
#define X 76.31

real arrhenius_rate(real temp)
{
if (temp>=1523.)
return PRE_EXP*pow(temp,BETA)*exp(-ACTIVE/(UNIVERSAL_GAS_CONSTANT*temp));
else
return 0*temp;
}

#define CA3(PO4)2 0
#define C(s) 1
#define CAO 2
#define P4 3
#define CO 4
#define NUM_SPECS 5

#define CA3(PO4)2_EXP 1.0
#define C(s)_EXP 0.0
#define CAO_EXP 0.0
#define P4_EXP 0.0
#define CO_EXP 0.0

real reaction_rate(cell_t c,Thread *cthread,real mw[],real yi[])
{
Particle *p;
real concen0=P_MASS(p)*yi[0]/mw[0];
real m_rate=0.1154*M+0.6539;
return arrhenius_rate(P_T(p))*pow(concen0,PHOSPHORITE_EXP)*m_rate*(1-X)/X;
}

DEFINE_SR_RATE(reduction_rate,f,fthread,r,mw,yi,rr)
{
*rr=reaction_rate(F_C0(f,fthread),F_C0_THREAD(f,fthread),mw,yi);
}

real contact_area(cell_t c,Thread *t,int s_id,int *n)
{
int i=0;
real area=0.0, A[ND_ND];
*n=0;
c_face_loop(c,t,i)
{
  if(THREAD_ID(C_FACE_THREAD(c,t,i))==s_id)
  {
   (*n)++;
   F_AREA(A,C_FACE(c,t,i),C_FACE_THREAD(c,t,i));
   area+=NV_MAG(A);
  }
}
return area;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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