24小时热门版块排行榜    

查看: 2071  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

秦时明月捌

新虫 (初入文坛)

[求助] 求助Error:FLUENT received fatal signal (ACCESS-VIOLATION) 已有3人参与

求教各位FLUENT大神,udf编程大神:
做一个溴化锂吸收水蒸气的模拟,在模拟水蒸气进入溴化锂溶液区域凝结为水这一过程时,初始化时出现如下问题:
Error:
FLUENT received fatal signal (ACCESS-VIOLATION)
1.Note exact events leading to error.
2.Save case/data under new name.
3.Exit program and restart to continue.
4.Report erro to your distributor.
Error Object:#f
这个问题也是做fluent模拟经常遇到的问题了,我做了以下尝试去消除这个错误:
1.先初始化,迭代一步后,再导入udf--问题依旧
2.先保存退出软件后,再重新打开--问题依旧
3.将4个udf分别拆开后,分别导入--没有出现问题
4.将其中的两个udf组合起来,导入--问题依旧(据此推断是udf的问题),下面是我的udf;将DEFINE_SOURCE(liq_src…)和DEFINE_SOURCE(vap_src…)这两个udf组合在一起,出现了开始的同样问题。请大神帮忙看下,问题出在哪?滴水之恩,涌泉相报,谢谢大神们!!!
附件截图是我引用udf的三个位置,附件文件是我的udf。

#include "udf.h"
#include "sg_mphase.h"
#define T_SAT 278
#define LAT_HT 2260000
DEFINE_SPECIFIC_HEAT(my_user_cp, T, Tref, h, yi)
{
real cp=1200.176+2164.7398*pow(0.35,1.16317)+0.0229*pow(T,1.306682)+0.3285*pow(0.35,1.16317)*pow(T,1.306682);
*h = cp*(T-Tref);
return cp;
}


DEFINE_SOURCE(liq_src, cell, pri_th, dS, eqn)//与下面组合后出现问题
{
Thread *mix_th,*sec_th;   
  real m_dot_l;
  mix_th=THREAD_SUPER_THREAD(pri_th);  
  sec_th=THREAD_SUB_THREAD(mix_th,1);
  if(C_T(cell,mix_th)>=T_SAT)  
   {
    m_dot_l=-0.1*C_VOF(cell,pri_th)*C_R(cell,pri_th)*fabs(C_T(cell,mix_th)-T_SAT)/T_SAT;
    dS[eqn]=-0.1*C_R(cell,pri_th)*fabs(C_T(cell,mix_th)-T_SAT)/T_SAT;
    }
else
   {
    m_dot_l=0.1*C_VOF(cell,sec_th)*C_R(cell,sec_th)*fabs(T_SAT-C_T(cell,mix_th))/T_SAT;   
    dS[eqn]=0.0;  
    }
  return m_dot_l;
}

DEFINE_SOURCE(vap_src,cell,sec_th,dS,eqn)//与上面组合后出现问题
{
  Thread *mix_th,*pri_th;
  real m_dot_v;
  mix_th=THREAD_SUPER_THREAD(sec_th);
  pri_th=THREAD_SUB_THREAD(mix_th,0);
  if(C_T(cell, mix_th)>=T_SAT)
    {
     m_dot_v=0.1*C_VOF(cell,pri_th)*C_R(cell,pri_th)*fabs(C_T(cell,mix_th)-T_SAT)/T_SAT;
     dS[eqn]=0.0;
    }
else
   {
   m_dot_v=-0.1*C_VOF(cell,sec_th)*C_R(cell,sec_th)*fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
   dS[eqn]=-0.1*C_R(cell,sec_th)*fabs(C_T(cell,mix_th)-T_SAT)/T_SAT;
   }
return m_dot_v;
}

DEFINE_SOURCE(enrg_src,cell,mix_th,dS,eqn)
{
  Thread *pri_th,*sec_th;
  real m_dot;
  pri_th=THREAD_SUB_THREAD(mix_th,0);
sec_th=THREAD_SUB_THREAD(mix_th,1);
if(C_T(cell, mix_th)>=T_SAT)
   {
   m_dot=-0.1*C_VOF(cell,pri_th)*C_R(cell,pri_th)*fabs(C_T(cell,mix_th)-T_SAT)/T_SAT;
   dS[eqn]=-0.1*C_VOF(cell,pri_th)*C_R(cell,pri_th)/T_SAT;
   }
else
  {      
   m_dot=0.1*C_VOF(cell,sec_th)*C_R(cell,sec_th)*fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
   dS[eqn]=-0.1*C_VOF(cell,sec_th)*C_R(cell,sec_th)/T_SAT;
  }
return LAT_HT*m_dot;  
}

求助Error:FLUENT received fatal signal (ACCESS-VIOLATION)
QQ1.png


求助Error:FLUENT received fatal signal (ACCESS-VIOLATION)-1
QQ2.png


求助Error:FLUENT received fatal signal (ACCESS-VIOLATION)-2
QQ3.png
回复此楼

» 收录本帖的淘帖专辑推荐

博士科研新路历程

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gyctju

金虫 (正式写手)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
秦时明月捌: 金币+3, ★★★很有帮助 2017-04-04 13:52:22
0.1这个值并不是通用的,用在溴化锂体系下估计计算结果会跟实际情况有较大偏差

错误的原因,粗略的看下应该是相指针那块搞错了,
注意下udf中THREAD_SUB_THREAD参数给的对不对
5楼2017-04-04 12:35:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

woojz12

新虫 (著名写手)

2楼2017-04-04 11:27:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woojz12

新虫 (著名写手)

3楼2017-04-04 11:27:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

秦时明月捌

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by woojz12 at 2017-04-04 11:27:46
数据传递错误

能具体说一下么?
4楼2017-04-04 11:43:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见