24小时热门版块排行榜    

查看: 1068  |  回复: 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个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[文学芳草园] 伙伴们,祝我生日快乐吧 +15 myrtle 2026-03-10 24/1200 2026-03-15 21:16 by 苏州_逗号
[考研] 机械专硕调剂 +3 笨笨兔子 2026-03-12 3/150 2026-03-15 20:02 by 栗子粥?
[考研] 321求调剂 +3 大米饭! 2026-03-15 3/150 2026-03-15 17:48 by 哈哈哈哈嘿嘿嘿
[考研] 梁成伟老师课题组欢迎你的加入 +5 一鸭鸭哟 2026-03-14 6/300 2026-03-14 22:29 by lllllcsjsj
[考研] 中科大材料与化工319求调剂 +3 孟鑫材料 2026-03-14 3/150 2026-03-14 20:10 by ms629
[考研] 265求调剂 +4 威化饼07 2026-03-12 4/200 2026-03-14 17:23 by userper
[考研] 【0703化学调剂】-一志愿华中师范大学-六级475 +5 Becho359 2026-03-11 5/250 2026-03-14 11:35 by 哦哦123
[考研] 313分生物学求调剂 +6 Yyt杨1 2026-03-09 8/400 2026-03-14 03:00 by JourneyLucky
[考研] 295复试调剂 +5 简木ChuFront 2026-03-09 5/250 2026-03-14 01:29 by JourneyLucky
[考研] 337一志愿华南理工0805材料求调剂 +7 mysdl 2026-03-11 9/450 2026-03-13 22:43 by JourneyLucky
[考研] 290求调剂 +9 ADT 2026-03-11 9/450 2026-03-13 21:55 by JourneyLucky
[考研] 301求调剂 +6 Liyouyumairs 2026-03-11 6/300 2026-03-13 20:11 by JourneyLucky
[考研] 302求调剂 +6 负心者当诛 2026-03-11 6/300 2026-03-13 16:11 by JourneyLucky
[考研] 314求调剂 +7 无懈可击的巨人 2026-03-12 7/350 2026-03-13 15:40 by JourneyLucky
[考研] 328化工专硕求调剂 +4 。,。,。,。i 2026-03-12 4/200 2026-03-13 14:44 by JourneyLucky
[考研] 268求调剂 +4 好运连绵不绝 2026-03-12 4/200 2026-03-13 10:45 by hyswxzs
[考博] 福州大学杨黄浩课题组招收2026年专业学位博士研究生,2026.03.20截止 +3 Xiangyu_ou 2026-03-12 3/150 2026-03-13 09:36 by duanwu655
[考研] 283求调剂,材料、化工皆可 +8 苏打水7777 2026-03-11 10/500 2026-03-13 09:06 by Linda Hu
[考博] 26读博 +4 Rui135246 2026-03-12 10/500 2026-03-13 07:15 by gaobiao
[考研] 收调剂 +7 调剂的考研学生 2026-03-10 7/350 2026-03-10 17:57 by 麦茶汤圆
信息提示
请填处理意见