24小时热门版块排行榜    

查看: 1171  |  回复: 4

anfengping

木虫 (著名写手)

[求助] fluent UDF编译不成功报错:FLUENT received fatal signal (ACCESS_VIOLATION)

大家好 我是初学者 现在希望用fluent做变压吸附的问题,加载UDF到fluent 但是刚加载到fluent里就报错:
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 error to your distributor.
Error Object: #f

我的程序如下,麻烦各位大哥帮我看看是什么原因,如何解决,小弟感激不尽。
#include "udf.h"
#define M0 0.039
#define M1 0.042
#define K10 3.87e-9
#define K11 6.86e-9
#define K20 1541.211
#define K21 2010.908
#define K30 4.79e-10
#define K31 1.67e-9
#define K40 1668.24
#define K41 2050
#define K0 56
#define K1 16.4
#define H0 13500
#define H1 17500
#define LL 1035
#define EE 0.4
#define CP_S 1010
#define PP 101325
enum{q0,q1,Q0,Q1,OM,TM,TE};
DEFINE_ADJUST(adjust_fcn,domain)
{
Thread *t;
cell_t c;
real p0,p1;
thread_loop_c(t,domain)
{
  if(NULL!=THREAD_STORAGE(t,SV_UDM_I(q0))&&
      NULL!=T_STORAGE_R_NV(t,SV_UDMI_M1(q0)))
  {
    begin_c_loop(c,t)
       {
      real k0,b0,b1;
p0=C_YI(c,t,0)*(C_P(c,t)+PP)*(C_YI(c,t,0)*M0+(1-C_YI(c,t,0))*M1)/M0;
p1=C_YI(c,t,1)*(C_P(c,t)+PP)*(C_YI(c,t,1)*M1+(1-C_YI(c,t,1))*M0)/M1;
k0=K10*exp(K20/C_T(c,t));
b0=K30*exp(K40/C_T(c,t));
b1=K31*exp(K41/C_T(c,t));
C_UDMI(c,t,q0)=k0*p0/(1+b0*p0+b1*p1);
        }
   end_c_loop(c,t)
        }
    }
thread_loop_c(t,domain)
{
  if(NULL!=THREAD_STORAGE(t,SV_UDM_I(q1))&&
      NULL!=T_STORAGE_R_NV(t,SV_UDMI_M1(q1)))
    {
     begin_c_loop(c,t)
    {
      real k1,b0,b1;
p0=C_YI(c,t,0)*(C_P(c,t)+PP)*(C_YI(c,t,0)*M0+(1-C_YI(c,t,0))*M1)/M0;
p1=C_YI(c,t,1)*(C_P(c,t)+PP)*(C_YI(c,t,1)*M1+(1-C_YI(c,t,1))*M0)/M1;
        k1=K11*exp(K21/C_T(c,t));
        b0=K30*exp(K40/C_T(c,t));
        b1=K31*exp(K41/C_T(c,t));
        C_UDMI(c,t,q1)=k1*p1/(1+b0*p0+b1*p1);
     }
    end_c_loop(c,t)
    }
}
thread_loop_c(t,domain)
{
  if(NULL!=THREAD_STORAGE(t,SV_UDM_I(Q0))&&
      NULL!=T_STORAGE_R_NV(t,SV_UDMI_M1(Q0)))
  {
    begin_c_loop(c,t)
    {
    real physical_dt;
    physical_dt=RP_Get_Real("physical-time-step";
    C_UDMI(c,t,Q0)=C_UDMI_M1(c,t,Q0)+K0*physical_dt*(C_UDMI(c,t,q0)-C_UDMI_M1(c,t,Q0));
    }
   end_c_loop(c,t)
    }
}
thread_loop_c(t,domain)
{
  if(NULL!=THREAD_STORAGE(t,SV_UDM_I(Q1))&&
      NULL!=T_STORAGE_R_NV(t,SV_UDMI_M1(Q1)))
  {
    begin_c_loop(c,t)
    {
    real physical_dt;
    physical_dt=RP_Get_Real("physical-time-step";
    C_UDMI(c,t,Q1)=C_UDMI_M1(c,t,Q1)+K1*physical_dt*(C_UDMI(c,t,q1)-C_UDMI_M1(c,t,Q1));
    }
   end_c_loop(c,t)
    }
}
thread_loop_c(t,domain)
{
  if(NULL!=THREAD_STORAGE(t,SV_UDM_I(OM))&&
      NULL!=T_STORAGE_R_NV(t,SV_UDMI_M1(OM)))
  {
    begin_c_loop(c,t)
     {
     C_UDMI(c,t,OM)=-M0*L*(1-EE)*K0*(C_UDMI(c,t,q0)-C_UDMI_M1(c,t,Q0));
     }
  end_c_loop(c,t)
    }
}
thread_loop_c(t,domain)
{
  if(NULL!=THREAD_STORAGE(t,SV_UDM_I(TM))&&
      NULL!=T_STORAGE_R_NV(t,SV_UDMI_M1(TM)))
  {
    begin_c_loop(c,t)
   {
   C_UDMI(c,t,TM)= C_UDMI(c,t,OM)-M1*LL*(1-EE)*K1*(C_UDMI(c,t,q1)-C_UDMI_M1(c,t,Q1));
   }
  end_c_loop(c,t)
    }
}
thread_loop_c(t,domain)
{
  if(NULL!=THREAD_STORAGE(t,SV_UDM_I(TE))&&
      NULL!=T_STORAGE_R_NV(t,SV_UDMI_M1(TE)))
     {
    begin_c_loop(c,t)
      {
    C_UDMI(c,t,TE)=LL*(1-EE)*(K0*H0*(C_UDMI(c,t,q0)-C_UDMI_M1(c,t,Q0))+K1*H1*(C_UDMI(c,t,q1)-C_UDMI_M1(c,t,Q1)));
   }
  end_c_loop(c,t)
    }
  }
}
DEFINE_SOURCE(O2mass_source,c,t,dS,eqn)
        {
        real source;
        source=C_UDMI(c,t,OM);
        dS[eqn]=0;
        return source;
        }
DEFINE_SOURCE(total_mass_source,c,t,dS,eqn)
        {
        real mass_source;
        mass_source=C_UDMI(c,t,TM);
        dS[eqn]=0;
        return mass_source;
        }
DEFINE_SOURCE(energy_source_fluid,c,t,dS,eqn)
        {
        real e_source;
        e_source=C_UDMI(c,t,TE);
        dS[eqn]=0;
        return e_source;
        }
回复此楼

» 猜你喜欢

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

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

微流咨询

新虫 (正式写手)


【答案】应助回帖

感谢参与,应助指数 +1
估计你没有定义udmi的个数




fluent培训
2楼2015-03-03 09:56:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huyugan123

铁虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
anfengping: 金币+50, ★★★★★最佳答案, 就是这个问题 2015-03-31 16:40:17
anfengping: 金币+200, ★★★很有帮助 2015-09-02 13:03:49
'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件
这个问题大家遇到的最多,网上的解释也很多,我也在重复一遍。出现这个错,我们需要按照如下修改环境变量
变量名 include
变量值 D:\Program Files\Microsoft Visual Studio 9.0\VC\include
变量名 lib
变量值 D:\Program Files\Microsoft Visual Studio 9.0\VC\lib
变量名 path
变量值 D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;D:\Program Files\Microsoft Visual Studio 9.0\VC\bin;
D:\Program Files\Microsoft Visual Studio 9.0是我安装Microsoft Visual Studio 2008 的文件夹。

2.LINK: fatal erro LNK1104: cannot open file 'kernel132.lib'
这个问题困扰我很久,因为以前按照1修改环境变量就OK了,可这个实在不知道是什么错误,在百度上搜了很长时间没找到解决办法,都想放弃了。今天无意试试google,结果找到了答案!因此以后要养成用google搜问题的习惯!
解决办法还是修改环境变量,提示不能打开 'kernel132.lib',我们就想办法找到他并把它添加到环境变量里lib里,我的电脑里'kernel132.lib'在C:\Program files\Microsoft SDKs\Windows\v6.0A\Lib\kernel32.lib,于是把这个路径添加到lib这个环境变量里,问题就解决了。

3.编译文件一定要确保在Fluent默认的路径里,否则也会出错,这个修改Fluent的属性可以解决!

扩展阅读http://muchong.com/html/201108/3425311.html





4. UDF并行计算出错(2013.11.1补充)
        感谢王哥陪伴到晚上12点解决了udf并行编译错误。
        问题描述:在个人计算机上编写一个简单的udf程序,想要并行使用,没做任何修改单机多核上compiled和load通过,到高性能计算机上一直编译出错。折腾一晚上最终发现并不是并行编译出错!而是高性能计算机编译器是GCC,不支持“//”注释,而我的电脑编译器是vc++ 6.0,支持“//”和”/*……*/",最终修改后就可以正常使用了。
3楼2015-03-31 16:38:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anfengping

木虫 (著名写手)

👍
4楼2015-09-02 13:01:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

得得315

禁虫 (正式写手)

本帖内容被屏蔽

5楼2016-06-07 22:19:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 anfengping 的主题更新
信息提示
请填处理意见