24小时热门版块排行榜    

查看: 1069  |  回复: 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

金虫 (正式写手)

再更新一次,我找到问题了。UMD应该从C_UDMI(cell, thread, 0)开始,而不是从C_UDMI(cell, thread, 1)开始。
3楼2022-12-06 22:06:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

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的回帖
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 东华理工大学化材专业26届硕士博士申请 +6 zlingli 2026-03-13 6/300 2026-03-15 20:00 by ryzcf
[考研] 0703化学调剂,求各位老师收留 +7 秋有木北 2026-03-14 7/350 2026-03-15 17:30 by 小物理化学
[考研] 化学调剂0703 +6 啊我我的 2026-03-11 6/300 2026-03-14 22:24 by shangxh
[考研] 0703化学求调剂 +5 很老实人 2026-03-09 5/250 2026-03-14 02:57 by JourneyLucky
[考研] 一志愿天大化工(085600)调剂总分338 +6 蔡大美女 2026-03-09 6/300 2026-03-14 02:46 by JourneyLucky
[考研] 2026考研调剂+本科延边大学+山东大学+生物化学与分子生物学+有项目经验 +3 ccdsscjy 2026-03-09 6/300 2026-03-14 02:14 by JourneyLucky
[考研] 0805,333求调剂 +3 112253525 2026-03-10 3/150 2026-03-13 23:42 by JourneyLucky
[考研] 304求调剂 +6 Mochaaaa 2026-03-12 7/350 2026-03-13 22:18 by 星空星月
[考研] 290求调剂 +9 ADT 2026-03-11 9/450 2026-03-13 21:55 by JourneyLucky
[考研] 333求调剂 +3 球球古力 2026-03-11 3/150 2026-03-13 21:27 by JourneyLucky
[考研] 310求调剂 +3 【上上签】 2026-03-11 3/150 2026-03-13 16:16 by JourneyLucky
[考研] 工科调剂 +4 Jiang191123! 2026-03-11 4/200 2026-03-13 15:15 by Miko19
[考研] 0856化学工程280分求调剂 +4 shenzxsn 2026-03-11 4/200 2026-03-13 11:55 by ymwdoctor
[考研] 282分材料专业求调剂院校 +18 枫桥ZL 2026-03-09 25/1250 2026-03-13 10:47 by 白夜悠长
[考研] 求调剂 资源与环境 285 +3 未名考生 2026-03-10 3/150 2026-03-13 10:31 by houyaoxu
[考研] 270求调剂 085600材料与化工专硕 +3 YXCT 2026-03-11 3/150 2026-03-13 10:13 by houyaoxu
[考研] 纺织、生物、化学、材料相关专业招生了 +4 耶耶业 2026-03-09 7/350 2026-03-12 19:05 by Equinoxhua
[考研] 341求调剂 +4 捣蛋猪猪 2026-03-11 4/200 2026-03-12 14:47 by ruiyingmiao
[考研] 420求调剂 +4 莫向外求11 2026-03-10 6/300 2026-03-12 14:41 by ruiyingmiao
[考研] 0856材料与化工353分求调剂 +11 NIFFFfff 2026-03-09 11/550 2026-03-10 18:36 by suyuanhai
信息提示
请填处理意见