24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1082  |  回复: 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个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 336求调剂,一志愿中科大 +5 墨彧 yuyu 2026-04-06 5/250 2026-04-06 21:24 by 52305043001
[考研] 285求调剂 +14 哦呦呼o 2026-04-04 16/800 2026-04-06 21:23 by 蓝云思雨
[考研] 一志愿郑州大学材料与化工085600,求调剂 +27 吃的不少 2026-04-02 27/1350 2026-04-06 15:19 by 495374996
[考研] 材料专硕283求调剂 +17 试试看呗 2026-04-04 18/900 2026-04-06 09:24 by 286640313
[考研] 求调剂 +5 chenxrlkx 2026-04-05 7/350 2026-04-06 07:54 by houyaoxu
[考研] 求调剂 +11 熊二想上岸 2026-04-04 11/550 2026-04-05 22:21 by 醉翁wl
[考研] 322求调剂 +3 嗯哼哼恒 2026-04-05 3/150 2026-04-05 19:52 by nepu_uu
[考研] 一志愿上海大学生物学346 +3 上海大学346调剂 2026-04-03 3/150 2026-04-04 20:20 by dongzh2009
[考研] 302求调剂一志愿华中师范大学 +8 小江小江江江 2026-04-02 8/400 2026-04-04 19:50 by 蓝云思雨
[考研] [调剂信息]085408光电信息 求调剂 总分291分数一英一 +3 iz11az 2026-04-02 3/150 2026-04-04 19:09 by 蓝云思雨
[考研] 一志愿华南师范361分,化学求调剂 +7 Nicole88888 2026-04-01 7/350 2026-04-04 18:28 by macy2011
[考研] 求调剂 +3 农业工程与信息 2026-04-04 3/150 2026-04-04 12:19 by 舍而后得
[考研] 400分求调剂 +3 尴尬且挠头 2026-04-04 3/150 2026-04-04 08:41 by jp9609
[考研] 考研调剂 +3 15615482637 2026-04-03 3/150 2026-04-03 22:50 by ms629
[考研] 319求调剂 +18 太容易1018 2026-04-01 18/900 2026-04-03 11:18 by linyelide
[考研] 一志愿北交大材料工程,总分358 +4 cs0106 2026-04-01 4/200 2026-04-02 07:42 by 尚水阁主
[考研] 279求调剂 +7 莫xiao 2026-04-01 7/350 2026-04-01 22:05 by 客尔美德
[考研] 292求调剂 +17 木虫er12138 2026-04-01 17/850 2026-04-01 21:37 by 七度不信任
[考研] 一志愿北交材料工程总分358 +5 cs0106 2026-04-01 7/350 2026-04-01 11:45 by wangjy2002
[考研] 本2一志愿C9-333分,材料科学与工程,求调剂 +9 升升不降 2026-03-31 9/450 2026-03-31 18:01 by 无际的草原
信息提示
请填处理意见