24小时热门版块排行榜    

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

woshihuolei

银虫 (小有名气)

[求助] 编译型UDF的一些问题已有2人参与

加载UDF运行时,出现最多的错误就是Error:
FLUENT received fatal signal (ACCESS_VIOLATION)
单从这条,无法判断错误出在哪里啊。
请大家谈谈使用编译型UDF时,使用什么手段定位错误和进行调试?
回复此楼

» 猜你喜欢

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

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

lsqtcc

金虫 (正式写手)


感谢参与,应助指数 +1
1592203609: 金币-1, 应助指数-1, 谢谢回帖!但是非应助帖勿选应助! 2014-02-22 21:45:30
我也是经常遇到这个问题,使用编译型的时候,特别是复杂的UDF。我现在还有类似的问题没有解决,头都大了。
闪电侠
2楼2014-02-22 10:52:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshihuolei

银虫 (小有名气)

先自顶一个先,下面贴出本人UDF代码,希望大神指导下错在哪了
3楼2014-02-22 11:07:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshihuolei

银虫 (小有名气)

下面是一个源项计算的宏,每次运行到0.05秒,也就是用到C_UDMI的时候就出现错误:access violation
说明:C_UDMI已分配内存,是在define_execute_at_end中已赋值,并用define_init进行了初始化。
DEFINE_SOURCE(heat_source,c,t,dS,eqn)
{
cell_t c;
Thread *t;
real source;
real current_timestep;   /*as word means*/
real current_time;
current_time = RP_Get_Real("flow-time";
current_timestep = RP_Get_Real("physical-time-step";

if(current_time > 0.05)
        {
                   source = 340000000. * exp(-3 * 0.01 * pow (10,-4) * (C_UDMI(c,t,1) - C_UDMI(c,t,0)));/*热源项函数*,此行有误*/
   return source;
  }
else
        {  
        return 340000000.;
        }      
      
}
4楼2014-02-22 11:12:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshihuolei

银虫 (小有名气)

求大神回复,求建议!
5楼2014-02-22 19:42:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunbird04

银虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
你的源项程序不完整哦,还有一个参数值没有给出来:源项的一次导数(dS[eqn] )。

以下是help里面的一个实例,供参考。希望对你有帮助

/*******************************************************************/
/* UDF for specifying an x-momentum source term in a spatially     */
/* dependent porous media                                          */
/*******************************************************************/

#include "udf.h"

#define C2 100.0

DEFINE_SOURCE(xmom_source,c,t,dS,eqn)
{
  real x[ND_ND];
  real con, source;

  C_CENTROID(x,c,t);
  con = C2*0.5*C_R(c,t)*x[1];

  source = -con*fabs(C_U(c, t))*C_U(c,t);
  dS[eqn] = -2.*con*fabs(C_U(c,t));

  return source;
}
6楼2014-02-23 16:05:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshihuolei

银虫 (小有名气)

引用回帖:
6楼: Originally posted by sunbird04 at 2014-02-23 16:05:17
你的源项程序不完整哦,还有一个参数值没有给出来:源项的一次导数(dS )。

以下是help里面的一个实例,供参考。希望对你有帮助

/*******************************************************************/
...

多谢回复。其实ds=0的话不写出来也是可以的。
虽然现在不知道错在哪,但现在错误已经得到了解决
把式中的C_UDMI(c,t,i)替换成了某个全局变量,就可行了。。。
7楼2014-02-23 18:48:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 woshihuolei 的主题更新
信息提示
请填处理意见