找回密码
 注册
查看: 2749|回复: 12

问了很多人,实在不知错在哪??

[复制链接]
发表于 2007-1-23 15:05:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我编了一空气密度随压力和温度变化的UDF:
#include "udf.h"
DEFINE_PROPERTY(cell_disity, cell, thread)
{
  real y,a,b,c,d,h,g,z, disity;
  real temp= C_T(cell,thread);
  real      p=  C_P(cell,thread);
      d=396306.77*(1+0.707979*(1-sqrt(temp/304.13)))*(1+0.707979*(1-sqrt(temp/304.13)));
      a=26.667-8.314*temp/p,b=-(2133.39+443.42*temp/p-d/p),c=18963.68+5912.326*temp/p-26.667*d/p;
       h=sqrt(12*b*b*b-3*b*b*a*a-54*b*a*c+81*c*c+12*c*a*a*a);
       g=36*b*a-108*c-8*a*a*a;
       z=pow((g+12*h),1.0/3);
       y=1.0/6*z-6*(1.0/3*b-1.0/9*a*a)/z-1.0/3*a;
       disity=1000*44.0/y;
   
        return disity;
}
中间部分只是定义常数,我只调用了 C_T(cell,thread)和C_P(cell,thread),编译时是没有错误的,但初始化时出现如下错误:
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: ()
如果我不调用那两个函数,那初始化时就没有错误,真不知错在哪里了,问了好多人,那两个函数在这不能用吗?还是有什么条件?????


[color=#DC143C]文字[color=#FF00FF]文字[color=#DC143C]文字
 楼主| 发表于 2007-1-23 19:08:12 | 显示全部楼层

问了很多人,实在不知错在哪??

宋健在吗,给帮忙看一下可以吗???
发表于 2007-1-23 19:56:00 | 显示全部楼层

问了很多人,实在不知错在哪??

打开能量方程
 楼主| 发表于 2007-1-23 20:00:46 | 显示全部楼层

问了很多人,实在不知错在哪??

[这个贴子最后由qiufeng313在 2007/01/23 08:15pm 第 1 次编辑]

能量方程打开了啊,但是在SOLUTIONS CONTROLS 里却没有能量方程一项??
 楼主| 发表于 2007-1-23 20:28:20 | 显示全部楼层

问了很多人,实在不知错在哪??

[这个贴子最后由qiufeng313在 2007/01/23 08:54pm 第 2 次编辑]

这个问题就这么难吗??真郁闷!
有人这样说:
          1、cell和thread 是不是要自己用get_thread之类的命令得到的。
          2、 C_T(cell,thread)和C_P(cell,thread)是不是要进行循环才行哦
          3、有没有可能是你的压力在什么地方为零了
发表于 2007-1-23 22:49:30 | 显示全部楼层

问了很多人,实在不知错在哪??

是不是取用了固体区的压力???固体压力为0
发表于 2007-1-23 22:50:28 | 显示全部楼层

问了很多人,实在不知错在哪??

另外,可以添加调试信息阿,看看温度和压力的值!!!
 楼主| 发表于 2007-1-24 10:13:48 | 显示全部楼层

问了很多人,实在不知错在哪??

楼上的,你告诉我在哪添加调试信息好吗,我在帮助上找怎么找不到啊!
发表于 2007-1-24 14:50:08 | 显示全部楼层

问了很多人,实在不知错在哪??

#include "udf.h"
DEFINE_PROPERTY(cell_disity, cell, thread)
{
  real temp= C_T(cell,thread);
real      p=  C_P(cell,thread);  
  
       return 1;
}
建议改成如上,然后再试。如没错,说明是其他语句错。可能是除0
如有错。再去掉real temp= C_T(cell,thread);
最后,你还应该用Message函数显示所以的temp 或者P,看看错误在哪里
 楼主| 发表于 2007-1-24 15:19:31 | 显示全部楼层

问了很多人,实在不知错在哪??

我刚才试了一下,用这个函数后
#include "udf.h"
DEFINE_PROPERTY(cell_disity, cell, thread)
{
real temp= C_T(cell,thread);
real      p=  C_P(cell,thread);  

      return1.0}
还是出现同样的错误,只有去掉它们两个才不出现错误。我去找找MESSAGE函数现在。
发表于 2007-1-25 16:42:20 | 显示全部楼层

问了很多人,实在不知错在哪??

我用了你的UDF,打开能量方程,初始没有问题
在SOLUTIONS CONTROLS 里却没有能量方程一项?……说明没有开能量方程!
 楼主| 发表于 2007-1-27 20:01:06 | 显示全部楼层

问了很多人,实在不知错在哪??

楼上好,调用那个程序用解释interpreted可以吗,不用Compiled,
发表于 2007-1-28 17:59:58 | 显示全部楼层

问了很多人,实在不知错在哪??

可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表