找回密码
 注册
查看: 2810|回复: 3

求助 关于devolatilization的udf

[复制链接]
发表于 2013-4-8 05:12:11 | 显示全部楼层 |阅读模式

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

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

x
本人正在学习用udf编写煤的devolatilization, combustion, and gasification过程。就是代替injection里的devolatilization, combustion模型
编写过程中发现,如果按我的udf计算的话,最终气体成分里的CO2的值反而会降低,这确定是错误的,因为当煤燃烧时,气体中co2含量应当增加。
能否请教下,像这种udf应该如何编写,有什么要注意的重点么?
发表于 2013-4-8 13:31:29 | 显示全部楼层
建议把udf贴出来,要不然盲人摸象,很难说的清楚。
 楼主| 发表于 2013-4-10 01:55:36 | 显示全部楼层

回复 2# a2883524 的帖子

#include "udf.h"
#include "dpm.h"

#define DPM_MINIMUM_DIAMETER(p) 1.0e-7
#define DPM_MINIMUM_MASS(p)5.236e-25*p->state.rho

static devol_on = 0;
static surface_combustion_on = 0;
static a=1.;
static Favtor_v=0.95;


DEFINE_DPM_LAW(udf_devol_law, p, ci)
{
  real T_p = P_T(p);
  real mp0= P_INIT_MASS(p);
#define mp (P_MASS(p))
  real Dp0= P_INIT_DIAM(p);
#define Dp (P_DIAM(p))
  real dt = P_DT(p);                      /* p->time_step */
/*  real mpt=mp;          */
  real Kv, dm_v;

  Material *m = P_MATERIAL(p);
  real Av = MATERIAL_PROP_COEF(m,PROP_devol,0);                   /* Pre-Exponential Factor   26100  */
  real Ev = MATERIAL_PROP_COEF(m,PROP_devol,1);                   /* Activation Energy  7.970000e+007 J/(kg*mol) */

  real f_v = DPM_VOLATILE_FRACTION(p);                            /* Volatile Component Fraction   72.8 % */
  real f_char = DPM_CHAR_FRACTION(p);                             /* Combustible Fraction   24.2 % */
  real f_ash=1.-f_v-f_char;                                       /* Ash content 3 % */

  real R_gas = UNIVERSAL_GAS_CONSTANT;                            /* 8314.34 */

  real min_volatile_mass = P_INIT_MASS(p) * (1. - DPM_VOLATILE_FRACTION(p));

  real V_star=a*f_v;

  devol_on = 1;

  if (P_MASS(p) <= min_volatile_mass)
/*  if ((mp0-mp)<Favtor_v*f_v*mp0)           */
    {
      if (ci) AddSources(p);
      p->current_law_index++;
      HeatMassUpdate(p,ci);
      devol_on = 0;
      return;
    }

  if (Ev/(R_gas*T_p)<50.)
    Kv=Av*exp(-Ev/(R_gas*T_p));
  else
    Kv=0.;

  mp = (1.-f_v)*mp0 + (mp-(1.-f_v)*mp0)*exp(-Kv*dt);

  if ((mp-mp0*(1.-f_v))/mp0 < 0.01)
    mp=mp0*0.9999*(1.-f_v);

  UpdateTemperature(p,0,mp);

  P_DIAM(p)=Dp0;
  P_RHO(p) = P_MASS(p)/(M_PI*Dp*Dp*Dp/6.);

#undef mp
#undef Dp
}

[ 本帖最后由 w112w 于 2013-4-11 19:41 编辑 ]
 楼主| 发表于 2013-4-10 02:57:04 | 显示全部楼层

回复 2# a2883524 的帖子

请问版大有没有什么好的意见?我觉得DV过程就应该是mass loss,然后如果按照这个来做的话,最终气象里的挥发分成分不会发生任何变化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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