50 UDF中阿伦尼乌斯公式

uDF编程中阿伦尼乌斯方程中指前因子过大,温度浮点发散,无法进行计算,该如何解决,指前因子大概是10^32,将编程中的指前因子改为10^28就可以进行计算,我想知道是不是fluent中是不是上限,还是我编程有问题,涉及是流固耦合传热(跟炸药相关)#define D 0#define Z 6.196e+28#define Q 2.779e+6#define E 311140#define R 8.314DEFINE_SOURCE(cell_source,cell ,thread,ds,eqn){real source;real temp=C_T(c...
  • 被浏览
    1036
  • 被关注
    1
  • 小田老师
    欢迎关注ANSYS仿真与开发!

    Fluent中化学反应速率不是通过源项定义的,对于体积反应速率和多相非均相反应速率可以通过以下定义:

    • 体积反应速率

    #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;
    }
    • 多相非均相反应

    DEFINE_HET_RXN_RATE (name,c,t,r,mw,yi,rr,rr_t)
    DEFINE_HET_RXN_RATE(user_evap_condens_react, c, t, hr, mw, yi, rr, rr_t)
    {
        Thread **pt = THREAD_SUB_THREADS(t);
        Thread *tp = pt[0];
        Thread *ts = pt[1];
        int i;
        *rr = 0.0;
        .......
        *rr = area_density * flux_evap ;//此处定义相间反应速率
    }


    2条评论
    王漂亮
    签名征集中
    5年前
    假设固体炸药不发生相态转变,一直是固相的
    回复
    王漂亮
    签名征集中
    5年前
    我做炸药烤燃模拟,添加能量源相,发现指前因子过大,我设置时没有打开多相流模型,只是打开能量模型,湍流模型,炸药是固体,我直接将其域改为固体域,不存在流体域,设置边界条件,进行计算
    回复 3条回复
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈