24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1535  |  回复: 6

tianya1995

新虫 (初入文坛)

[求助] fluent 运行出现segmentation fault错误,udf的adjust函数出错!已有1人参与

在solution initialization的时候,发现define_Init运行成功了,因为函数的开始和结尾分别都输出了“init begins"和”init ends" ,这是自己用message输出的。

但是运行整个udf还是出现了,segmentation fault的错误,是define_adjust出现了错误。以下为define_adjust函数,发现窗口能输出e_c的值,和输出adjust running begins的提示,但没有输出adjust running ends的提示。
所以认为该函数并没有运行成功。

请教各位大神,这个到底是什么原因啊,函数的编写是哪里有误吗,编译都完全通过了的。

DEFINE_ADJUST(f1,d)
{

  real x[ND_ND];
  real xx;
  real rr;
  real e_c;
  real temp=C_T(c,t);

  if(temp<=6667)
     e_c=0.0;

  else if(temp>6667&&temp<=25000)
     e_c=0.6873*temp-4582.13;
   
  else if(temp>25000&&temp<=30000)
     e_c=(-0.1)*temp+15100;
   
  Message("%g\n",e_c );
  Message("adjust running begins\n";

thread_loop_c(t,d)
   {
     begin_c_loop_all(c,t)
     {
      C_UDMI(c,t,ec)=e_c;
      C_UDMI(c,t,Tx)=C_T_G(c,t)[0];
      C_UDMI(c,t,Tr)=C_T_G(c,t)[1];
      C_UDMI(c,t,jx)=-C_UDMI(c,t,ec)*C_UDSI_G(c,t,Fai)[0];
      C_UDMI(c,t,jr)=-C_UDMI(c,t,ec)*C_UDSI_G(c,t,Fai)[1];
      C_UDMI(c,t,B_0)=C_UDSI_G(c,t,Ar)[0]-C_UDSI_G(c,t,Ax)[1];
       C_CENTROID(x,c,t);
       xx=x[0];
       rr=x[1];
       C_UDMI(c,t,s_Ar)=-miu_0*C_UDMI(c,t,jr)+C_UDSI(c,t,Ar)/rr/rr;
      }
      end_c_loop_all(c,t)
    }
  Message("adjust running ends\n";
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

keeep0394

新虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
real temp=C_T(c,t);这个命令在这里不行吧,应该放在begin_c_loop_all(c,t)里面
2楼2017-10-20 19:28:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianya1995

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by keeep0394 at 2017-10-20 19:28:39
real temp=C_T(c,t);这个命令在这里不行吧,应该放在begin_c_loop_all(c,t)里面

你说的有道理
但是改到循环之内 还是会出现这个问题
3楼2017-10-20 20:39:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianya1995

新虫 (初入文坛)

不要沉啊 求各位大神回复!
4楼2017-10-23 08:57:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianya1995

新虫 (初入文坛)

最后发现是循环里面的这两句导致的segmentation fault,有没有大神解释一下为什么啊!送金币送花花啊!走过路过不要错过啊!
       C_UDMI(c,t,Tx)=C_T_G(c,t)[0];
       C_UDMI(c,t,Tr)=C_T_G(c,t)[1];
5楼2017-10-23 09:54:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

keeep0394

新虫 (正式写手)

引用回帖:
5楼: Originally posted by tianya1995 at 2017-10-23 09:54:27
最后发现是循环里面的这两句导致的segmentation fault,有没有大神解释一下为什么啊!送金币送花花啊!走过路过不要错过啊!
       C_UDMI(c,t,Tx)=C_T_G(c,t);
       C_UDMI(c,t,Tr)=C_T_G(c,t);

Tx、Tr没有定义吧?应该是0、1、2之类的整数。
6楼2017-10-23 16:39:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianya1995

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by keeep0394 at 2017-10-23 16:39:52
Tx、Tr没有定义吧?应该是0、1、2之类的整数。...

定义了 在函数的开始枚举了udm
7楼2017-10-24 20:13:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tianya1995 的主题更新
信息提示
请填处理意见