|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
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;
} |
|