24小时热门版块排行榜    

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

白白的大萝卜

新虫 (小有名气)

[求助] Fluent 加入UDF源项后一开始计算就报错!!求助! 已有1人参与

想用fluent模拟活性炭吸附气体过程中的温度和压力变化,把吸附量和吸附热编成源项UDF加入之后,一运行就提示 Error: received a fatal signal(Segmentation fault).
设置了Define/User-defined/memory  还是报错  请求大佬们帮忙看看什么愿意,不胜感激


  /*Define which user-defined scalars to use*/
enum
{
        p,ads,d_ads
} ;
DEFINE_ADJUST(p_absolute,domain)
{
        Thread*t;
        cell_t c;
        real p_operating;
        real p_static;
/*solve the absolute pressure.*/
   thread_loop_c(t,domain)
   {
           if(NULL!=THREAD_STORAGE(t,SV_UDS_I(p)))
           {
                   begin_c_loop(c,t)
                   {
                           p_static=C_P(c,t);
                           p_operating=RP_Get_Real("operating-pressure";
                           C_UDSI(c,t,p)=p_static+p_operating;
                   }
                   end_c_loop(c,t)
           }
          
        }
       
  }
  
  DEFINE_ADJUST(adsorption,domain)
  {
          Thread*t;
          cell_t c;
          real n_o;
          real E_t;
          real x_p;
          real A;
          real x_b;
          real n;
          /*solve the adsorption equation.*/
          thread_loop_c(t,domain)
          {
                  if(NULL!=THREAD_STORAGE(t,SV_UDS_I(ads))&&NULL!=T_STORAGE_R_NV(t,SV_UDSI_M1(ads)))
                  {
                          begin_c_loop(c,t)
                          {
                                  real tem=C_T(c,t);
                                  n_o=71.6;
                                  E_t=3080+18.9*tem;
                                  x_p=1.47E9/C_UDSI(c,t,p);
                                  A=8.31429*tem*log(x_p);
                                  x_b=-A*A/(E_t*E_t);
                                  C_UDSI(c,t,ads)=n_o*exp(x_b);
                          }
                          end_c_loop(c,t)
                  }
          }
  }
  
  DEFINE_ADJUST(d_adsorption,domain)
  {
          Thread*t;
          cell_t c;
          /*solve the energy source.*/
          thread_loop_c(t,domain)
          {
                  if(NULL!=THREAD_STORAGE(t,SV_UDS_I(d_ads))&&NULL!=T_STORAGE_R_NV(t,SV_UDSI_M1(d_ads)))
                  {
                          begin_c_loop(c,t)
                          {
                          real physical_dt;
                          physical_dt=RP_Get_Real("physical_time_step";
                          C_UDSI(c,t,d_ads)=-0.481454*(C_UDSI(c,t,ads)-C_UDSI_M1(c,t,ads))/physical_dt;
                        }
                          end_c_loop(c,t)                  
                }
          }
  }
  
  DEFINE_SOURCE(mass_source,c,t,dS,eqn)
  {
          real m_source;
          m_source=C_UDSI_M1(c,t,d_ads);
          dS[eqn]=0.0;
          return m_source;
  }
  
  DEFINE_SOURCE(energy_source,c,t,dS,eqn)
  {
          real e_source;
          e_source=-C_UDSI_M1(c,t,d_ads)*1.58E6;
          dS[eqn]=0.0;
          return e_source;
  }
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

六个零

新虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
白白的大萝卜: 金币+5, 有帮助, 这个是有的 我复制时候少了,谢谢 2019-11-22 10:56:28
不需要这个 #include "udf.h"  吗
3楼2019-11-14 10:09:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

SuperUDF

银虫 (小有名气)

这种莫名其妙的错误需要调试udf,建议用VC++ Udf Studio软件。比手动一行一行Message输出方便的多。
2楼2019-11-14 09:57:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

白白的大萝卜

新虫 (小有名气)

引用回帖:
2楼: Originally posted by SuperUDF at 2019-11-14 09:57:49
这种莫名其妙的错误需要调试udf,建议用VC++ Udf Studio软件。比手动一行一行Message输出方便的多。

好的,我去试试,谢谢
4楼2019-11-22 10:55:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见