24小时热门版块排行榜    

CyRhmU.jpeg
查看: 625  |  回复: 0
【悬赏金币】回答本帖问题,作者1173018735将赠送您 5 个金币

1173018735

新虫 (初入文坛)

[求助] fluent模拟流化床甲烷干重整反应udf使用浮点溢出

我在复现一篇用欧拉双流体方法复现流化床甲烷干重整反应的论文,我找不出来有什么问题,udf中公式的表达是没问题的,这个模型不使用UDF可以正常计算,但是一使用了UDF就会报错。而这个UDF在另外一个简单的模型里使用没有问题。有大佬帮我看看什么问题吗?
# include "udf.h"
# include "mem.h"

DEFINE_VR_RATE(rate, c, t, r, wk, yk, rate, rr_t)
{

#define UGC 8.314

        real T = C_T(c, t);
        real k1 = 1.29e6 * exp(-102065.0 / UGC / C_T(c, t));
        real k2 = 0.35e6 * exp(-81030.0 / UGC / C_T(c, t));
        real k3 = 6.95e3 * exp(-58893.0 / UGC / C_T(c, t));
        real k4 = 5.55e9 * exp(-166397.0 / UGC / C_T(c, t));
        real k5 = 1.34e15 * exp(-243835.0 / UGC / C_T(c, t));
        real Kco2_1 = 2.61e-2 * exp(37641.0 / UGC / C_T(c, t));
        real Kch4_1 = 2.60e-2 * exp(40684.0 / UGC / C_T(c, t));
        real Kco2_2 = 0.5771 * exp(9262.0 / UGC / C_T(c, t));
        real Kh2_2 = 1.494 * exp(6025.0 / UGC / C_T(c, t));
        real Kch4_3 = 0.21 * exp(-567.0 / UGC / C_T(c, t));
        real Kh2_3 = 5.18e7 * exp(-133210.0 / UGC / C_T(c, t));
        real Kh2_4 = 1.83e13 * exp(-216145.0 / UGC / C_T(c, t));
        real Kh2o_4 = 4.73e-6 * exp(97770.0 / UGC / C_T(c, t));
        real Kch4_4 = 3.49 * exp(-0 / UGC / C_T(c, t));
        real Kco_5 = 7.34e-6 * exp(100395.0 / UGC / C_T(c, t));
        real Kco2_5 = 2.81e7 * exp(-104085.0 / UGC / C_T(c, t));
        real Kp1 = 6.78e14 * exp(-259660.0 / UGC / C_T(c, t));
        real Kp2 = 56.4971 * exp(-36580.0 / UGC / C_T(c, t));
        real Kp3 = 2.95e5 * exp(-84400.0 / UGC / C_T(c, t));
        real Kp4 = 1.3827e7 * exp(-125916.0 / UGC / C_T(c, t));
        real Kp5 = 1.9393e9 * exp(-168527.0 / UGC / C_T(c, t));


        real mCO = C_YI(c, t, 0);
        real mH2 = C_YI(c, t, 1);
        real mH2O = C_YI(c, t, 2);
        real mCH4 = C_YI(c, t, 3);
        real mCO2 = C_YI(c, t, 4);

        real pOp = 101325;
        real sum = (mCH4 / 16 + mCO2 / 44 + mCO / 28 + mH2 / 2 + mH2O / 18);
        real PCH4 = mCH4 / 16 / sum * pOp;
        real PCO2 = mCO2 / 44 / sum * pOp;
        real PCO = mCO / 28 / sum * pOp;
        real PH2 = mH2 / 2 / sum * pOp;
        real PH2O = mH2O / 18 / sum * pOp;

if (!strcmp(r->name, "reaction-1")
    {
        *rate = k1 * Kco2_1 * Kch4_1 * (PCH4 / 101325) * (PCO2 / 101325) / pow((1 + Kco2_1 * (PCO2 / 101325) + Kch4_1 * (PCH4 / 101325)), 2) * (1 - pow(((PCO / 101325) * (PH2 / 101325)), 2) / (Kp1 * (PCH4 / 101325) * (PCO2 / 101325)));
        C_UDMI(c, t, 0) = *rate;
    }

    else if (!strcmp(r->name, "reaction-2")
    {
        *rate = k2 * Kco2_2 * Kh2_2 * (PCO2 / 101325) * (PH2 / 101325) / pow((1 + Kco2_2 * (PCO2 / 101325) + Kh2_2 * (PH2 / 101325)), 2) * (1 - (PCO / 101325) * (PH2O / 101325) / (Kp2 * (PCO2 / 101325) * (PH2 / 101325)));
        C_UDMI(c, t, 1) = *rate;
    }

    else if (!strcmp(r->name, "reaction-3")
    {
        *rate = k3 * Kch4_3 * ((PCH4 / 101325) - (pow((PH2 / 101325), 2) / Kp3)) / pow((1 + Kch4_3 * (PCH4 / 101325) + 1 / Kh2_3 * pow((PH2 / 101325), 1.5)), 2);
        C_UDMI(c, t, 2) = *rate;
    }

    else if (!strcmp(r->name, "reaction-4")
    {
        *rate = k4 / Kh2o_4 * ((PH2O / 101325) / (PH2 / 101325) - (PCO / 101325) / Kp4) / pow((1 + Kch4_4 * (PCH4 / 101325) + ((PH2O / 101325) / (PH2 / 101325)) / Kh2o_4 + pow((PH2 / 101325), 1.5) / Kh2_4), 2);
        C_UDMI(c, t, 3) = *rate;
    }

    else if (!strcmp(r->name, "reaction-5")
    {
        *rate = k5 / Kco_5 / Kco2_5 * ((PCO2 / 101325) / (PCO / 101325) - (PCO / 101325) / Kp5) / pow((1 + Kco_5 * (PCO / 101325) + ((PCO2 / 101325) / (PCO / 101325)) / (Kco_5 * Kco2_5)), 2);
        C_UDMI(c, t, 4) = *rate;
    }
    *rr_t = *rate;
}@wuming524
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 1173018735 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见