24小时热门版块排行榜    

查看: 2507  |  回复: 11

1rectus1

新虫 (初入文坛)

[交流] UDF编译出错 已有4人参与

UDF编译出错
导入fluent出现如下错误:
Copied C:\Users\Lenovo\Desktop\0812/udf01.c to libudf\src
udf_names.c and user_nt.udf files in 3ddp are upto date.
(system "copy "E:\ANSYSI~1\v170\fluent"\fluent17.0.0\src\udf\makefile_nt.udf "libudf\win64\3ddp\makefile" "
òѸ′ÖÆ         1 ¸öÎļt¡£
(chdir "libudf"(chdir "win64\3ddp"# Generating ud_io1.h
udf01.c
..\..\src\udf01.c(21) : error C2065: ¡°P¡±: Î′éùÃ÷μıêê¶·û
..\..\src\udf01.c(21) : error C2223: ¡°->state¡±μÄ×ó2à±ØDëÖ¸Ïò½á11/áaoÏ
..\..\src\udf01.c(21) : error C2065: ¡°P¡±: Î′éùÃ÷μıêê¶·û
..\..\src\udf01.c(21) : error C2223: ¡°->state¡±μÄ×ó2à±ØDëÖ¸Ïò½á11/áaoÏ
..\..\src\udf01.c(25) : error C2065: ¡°P¡±: Î′éùÃ÷μıêê¶·û
..\..\src\udf01.c(25) : error C2223: ¡°->state¡±μÄ×ó2à±ØDëÖ¸Ïò½á11/áaoÏ
..\..\src\udf01.c(25) : error C2065: ¡°P¡±: Î′éùÃ÷μıêê¶·û
..\..\src\udf01.c(25) : error C2223: ¡°->state¡±μÄ×ó2à±ØDëÖ¸Ïò½á11/áaoÏ

Done.
udf源代码的第19行到第26行如下:
if((P_POS(p)[0]>=0.0) && (P_POS(p)[0]<=7.0))
         {
      bforce=C1*P_DIAM(P)*P_DIAM(P)/((C2-P_POS(p)[0])*(C2-P_POS(p)[0])+(C3-P_POS(p)[1])*(C3-P_POS(p)[1]));
          }
     if((P_POS(p)[0]>=-7.0) && (P_POS(p)[0]<0.0))
      {
       bforce=C1*P_DIAM(P)*P_DIAM(P)/((C2+P_POS(p)[0])*(C2+P_POS(p)[0])+(C3-P_POS(p)[1])*(C3-P_POS(p)[1]));
      }
本人第一次用udf,求大神指点,问题出在哪里。谢谢!!!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

tumu_tu

金虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
21行和25行可能有未声明的标识符。问题可能出在P_DIAM(P)的定义上。还有,第二个if最好用else if。

发自小木虫Android客户端
3楼2017-08-16 11:30:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tumu_tu

金虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
5楼: Originally posted by 1rectus1 at 2017-08-16 14:41:41
那请问怎样定义它   我在开始的声明中加了这个#define C4 0.00000025  就是直接对颗粒直径进行赋值 UDF可以运行了  但我要变直径进行模拟    不能每个都来改这个数吧...

P_DIAM应该是个函数吧,这个函数在调用前声明了吗?参数P在用之前声明了吗?
6楼2017-08-16 15:19:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tumu_tu

金虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
7楼: Originally posted by 1rectus1 at 2017-08-16 15:37:06
我解释一下    P_DIAM(P) 在UDF帮助里5.7中   这样写的 argument types :Tracked particle *p   returns  :质点直径     而且  我看的例子好像没有对它进行声明...

好吧,我在帮助里搜P_DIAM没搜到,搜Tracked particle *p才搜到定义了。这样看来P是个指针变量,要么在某个DEFINE宏里获取,要么你自己声明。这段代码是哪个DEFINE宏里面的?
我猜你把P改成小写就行了。。。

» 本帖已获得的红花(最新10朵)

8楼2017-08-16 15:49:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

匿名

用户注销 (著名写手)

奔跑路上的小汪


小木虫: 金币+0.5, 给个红包,谢谢回帖
本帖仅楼主可见
2楼2017-08-16 11:13:33
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页

1rectus1

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 能源小硕 at 2017-08-16 11:13:33
你编代码中间还加表情吗

我从fluent复制过来就这样了
4楼2017-08-16 14:32:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1rectus1

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by tumu_tu at 2017-08-16 11:30:24
21行和25行可能有未声明的标识符。问题可能出在P_DIAM(P)的定义上。还有,第二个if最好用else if。

那请问怎样定义它   我在开始的声明中加了这个#define C4 0.00000025  就是直接对颗粒直径进行赋值 UDF可以运行了  但我要变直径进行模拟    不能每个都来改这个数吧
5楼2017-08-16 14:41:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1rectus1

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by tumu_tu at 2017-08-16 15:19:55
P_DIAM应该是个函数吧,这个函数在调用前声明了吗?参数P在用之前声明了吗?...

我解释一下    P_DIAM(P) 在UDF帮助里5.7中   这样写的 argument types :Tracked particle *p   returns  :质点直径     而且  我看的例子好像没有对它进行声明
7楼2017-08-16 15:37:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1rectus1

新虫 (初入文坛)

送红花一朵
引用回帖:
8楼: Originally posted by tumu_tu at 2017-08-16 15:49:36
好吧,我在帮助里搜P_DIAM没搜到,搜Tracked particle *p才搜到定义了。这样看来P是个指针变量,要么在某个DEFINE宏里获取,要么你自己声明。这段代码是哪个DEFINE宏里面的?
我猜你把P改成小写就行了。。。...

可以啦   万分感谢   送你一朵小红花吧
9楼2017-08-16 16:40:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tumu_tu

金虫 (小有名气)

引用回帖:
9楼: Originally posted by 1rectus1 at 2017-08-16 16:40:12
可以啦   万分感谢   送你一朵小红花吧...

10楼2017-08-16 16:54:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 1rectus1 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见