24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1083  |  回复: 2
【悬赏金币】回答本帖问题,作者113745685将赠送您 50 个金币

113745685

金虫 (正式写手)

[求助] 求助:UDF的MASS_TRANSFER并行运算的问题!!!

请问各位大佬,我想用UDF实现fluent的一个蒸发冷凝模型,以替代现有的Lee模型(复现论文10.1016/j.ijheatmasstransfer.2019.118763的工作)。程序如下,串行的程序我弄出来了,但是并行的程序我不会搞,每次初始化都提示:MPI Application rank 0 exited before MPI_Finalize() with status 2.  The fl process could not be started.
UDM的内存位置也指定了,但是不知道为什么还是有这个问题,是程序哪里错了吗?如果有大佬能指出问题所在,在下愿意献上50个金币。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
#include "udf.h"

DEFINE_MASS_TRANSFER(liq_gas_source, cell, thread, from_index, from_species_index, to_index, to_species_index)
{
        real m_lg=0.0;
        real T_SAT = 318.0;
        real T_Ti = 16.2;
        real be = 0.1;
        real bc = 10;
#if !RP_HOST
        Thread *gas, *liq;
        liq = THREAD_SUB_THREAD(thread, from_index);
        gas = THREAD_SUB_THREAD(thread, to_index);

        C_UDMI(cell, thread, 1) = 0.;
        C_UDMI(cell, thread, 2) = 0.;

        if (C_T(cell, liq) > T_SAT + T_Ti)
        {
                m_lg = be*C_VOF(cell, liq)*C_R(cell, liq)*(C_T(cell, liq) - T_SAT) / T_SAT;   /*Evaporation*/
                C_UDMI(cell, thread, 1) = m_lg * 2455.e3;
        }

        else if (C_T(cell, liq) > T_SAT&&C_T(cell, liq) < T_SAT + T_Ti)
        {
                if (C_VOF(cell, liq) == 1)
                {
                        m_lg = 0.0;                                          /*Neither evaporation nor condensing*/
                }
                else if (C_VOF(cell, liq) != 1)
                {
                        m_lg = be*C_VOF(cell, liq)*C_R(cell, liq)*(C_T(cell, liq) - T_SAT) / T_SAT;    /*Evaporation*/
                        C_UDMI(cell, thread, 1) = m_lg * 2455.e3;
                }
        }

        else if (C_T(cell, gas) < T_SAT)
        {
                m_lg = bc*C_VOF(cell, gas)*C_R(cell, gas)*(C_T(cell, gas) - T_SAT) / T_SAT;   /*Condensing*/
                C_UDMI(cell, thread, 2) = -m_lg * 2455.e3;
        }
#if RP_NODE
        m_lg = PRF_GRSUM1(m_lg);
#endif
node_to_host_real_1(m_lg);
#endif
                return(m_lg);
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

113745685

金虫 (正式写手)

更新,我改了一下程序。注释掉了和C_UDMI有关的程序,结果就能并行运算了,问题是我在fluent里已经定义了C_UDMI的位置了,为什么还会报错,有没有大佬能解答一下?
----------------------------------------------------------------------------------------------------------------------------------
#include "udf.h"

DEFINE_MASS_TRANSFER(liq_gas_source, cell, thread, from_index, from_species_index, to_index, to_species_index)
{
        real m_lg;
        real T_SAT = 318.0;
        real T_Ti = 16.2;
        real be = 0.1;
        real bc = 10;
        Thread *gas, *liq;
        liq = THREAD_SUB_THREAD(thread, from_index);
        gas = THREAD_SUB_THREAD(thread, to_index);
        m_lg = 0.0;

        /*C_UDMI(cell, thread, 1) = 0.;*/
        /*C_UDMI(cell, thread, 2) = 0.;*/

        if (C_T(cell, liq) > T_SAT + T_Ti)
        {
                m_lg = be*C_VOF(cell, liq)*C_R(cell, liq)*(C_T(cell, liq) - T_SAT) / T_SAT;   /*Evaporation*/
                C_UDMI(cell, thread, 1) = m_lg * 2455.e3;
        }

        else if (C_T(cell, liq) > T_SAT&&C_T(cell, liq) < T_SAT + T_Ti)
        {
                if (C_VOF(cell, liq) == 1)
                {
                        m_lg = 0.0;                                          /*Neither evaporation nor condensing*/
                }
                else if (C_VOF(cell, liq) != 1)
                {
                        m_lg = be*C_VOF(cell, liq)*C_R(cell, liq)*(C_T(cell, liq) - T_SAT) / T_SAT;    /*Evaporation*/
                        /*C_UDMI(cell, thread, 1) = m_lg * 2455.e3;*/
                }
        }

        else if (C_T(cell, gas) < T_SAT)
        {
                m_lg = bc*C_VOF(cell, gas)*C_R(cell, gas)*(C_T(cell, gas) - T_SAT) / T_SAT;   /*Condensing*/
                /*C_UDMI(cell, thread, 2) = -m_lg * 2455.e3;*/
        }

        return(m_lg);
}
2楼2022-12-05 22:39:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

113745685

金虫 (正式写手)

再更新一次,我找到问题了。UMD应该从C_UDMI(cell, thread, 0)开始,而不是从C_UDMI(cell, thread, 1)开始。
3楼2022-12-06 22:06:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 113745685 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 287分求调剂 有专利国奖一志愿哈工大085406 +6 白易辰 2026-04-06 7/350 2026-04-06 22:46 by 875465
[考研] 一志愿武理车辆专硕总分 281 求调剂 +3 上岸研究生. 2026-04-02 3/150 2026-04-06 16:46 by 小月儿呀呀
[考研] 081700化学工程与技术 一志愿中海洋 323 求调剂学校 +18 披星河 2026-04-03 18/900 2026-04-06 13:55 by BruceLiu320
[考研] 本科211,293分请求调剂 +8 莲菜就是藕吧 2026-04-03 9/450 2026-04-05 19:12 by 蓝云思雨
[考研] 277求调剂 +5 考研调剂lxh 2026-04-05 5/250 2026-04-05 19:03 by chy09050039
[考研] 求调剂到0856材料工程 +3 程9915 2026-04-05 3/150 2026-04-05 18:15 by 蓝云思雨
[考研] 328分调剂 +6 门men 2026-04-04 6/300 2026-04-05 13:40 by imissbao
[考研] 材料化工306分找合适调剂 +14 沧海轻舟e 2026-04-04 14/700 2026-04-05 09:53 by 朱云虎202
[考研] 085602调剂 初试总分335 +12 19123253302 2026-04-04 12/600 2026-04-05 08:08 by 544594351
[考研] 325求调剂 +4 春风不借意 2026-04-04 4/200 2026-04-04 22:08 by 啵啵啵0119
[考研] 338求调剂 +7 晟功? 2026-04-03 7/350 2026-04-04 20:37 by 蓝云思雨
[考研] 291求调剂 +4 迷蒙木木 2026-04-01 5/250 2026-04-04 15:59 by sihailian3
[考研] 294求调剂 +6 Grey_Ey 2026-04-03 6/300 2026-04-03 20:46 by 欣喜777
[考研] 材料专硕322分 +13 哈哈哈吼吼吼哈 2026-04-01 13/650 2026-04-03 16:08 by 哦哦123
[考研] 279求调剂 +6 qazplm0852 2026-04-02 6/300 2026-04-03 10:03 by 蓝云思雨
[考研] 一志愿大工学硕,求调剂 +4 yub0811 2026-04-02 4/200 2026-04-02 21:36 by 百灵童888
[考研] 282求调剂 +13 呼吸都是减肥 2026-04-01 13/650 2026-04-02 14:10 by baoball
[考研] 085900土木水利336分求调剂 +4 Zhangjiangj 2026-03-31 6/300 2026-04-02 11:40 by 1753564080
[考研] 求调剂,一志愿南京师范大学计算机专硕,初试373,六级通过, +3 计算机追梦人 2026-04-01 3/150 2026-04-02 07:57 by fxue1114
[考研] 化学工程专硕324分,一志愿中国矿业大学求调剂 +7 耿耿1314 2026-04-01 7/350 2026-04-02 07:40 by 尚水阁主
信息提示
请填处理意见