slaon的个人博客分享 http://blog.sciencenet.cn/u/slaon

博文

Fluent UDF 一些注意事项

已有 5173 次阅读 2021-6-10 08:21 |系统分类:科研笔记

编写UDF时,

总是出现一些莫名其妙的错误。

总结一些注意事项:

1. 块注释符   /*  .....  */  在UDF中,好像不能用
有几次用块注释符把预定义的宏注释掉,但在compile-build时,Fluent仍然对其进行编译。

如果需要注释,就在notepad++中使用列模式,在每行的行首使用注释符  //,

DEFINE_ADJUST(my_adjust,d)
{   
  #if RP_HOST
  Message("xx=%f \n",xx);
  #endif
}

//DEFINE_EXECUTE_ON_LOADING(on_loading, libname2)
//{
//   //Message("\nLoading %s version %d.%d\n",libname,version,release);
//    #if RP_HOST
//    Message("\n The fist xx= %d.",xx);
//    xx=1;
//    Message("The second  xx= %d\n",xx);
//    #endif
//}


2. 在UDF中调试,往往想输出某些数据到屏幕。使用Message命令
我用printf没有效果。

  #if RP_HOST
  Message("Host: xx=%f; yy=%f; zz=%f; AA=%f; BB=%f; \n",xx,yy,zz,AA,BB);
  #endif

上面的 #if RP_HOST  ...  #endif 是在并行计算时,只在Host节点执行,

否则并行节点都输出。

3. 在UDF中读取文本文件中的数据,并在其它宏中使用。

DEFINE_EXECUTE_ON_LOADING中读取文本数据

DEFINE_ADJUST宏中输出

用到fscanf命令。它不能直接对预定义的全局变量赋值

需要先对局部变量赋值,然后用局部变量对全局变量赋值

#include "udf.h"

double xx=1;
double yy=2;

DEFINE_EXECUTE_ON_LOADING(report_version, libname1)
{
  FILE *fpin= NULL;
  double a[9];
  
  //Message("\nLoading %s version %d.%d\n",libname,version,release);
  #if RP_HOST
  Message("Host: xx=%f; yy=%f; \n",xx,yy);
  #endif
  
  fpin=fopen("UDFInput.dat","r");
  fscanf(fpin,"%lf",&a[0]);
  fscanf(fpin,"%lf",&a[1]);
  fclose(fpin);
  
  #if RP_HOST
  Message("Host: a0=%f; a1=%f;; \n",a[0],a[1]);
  #endif
  
  xx=a[0];
  yy=a[1];
  
  //https://www.cnblogs.com/liusuanyatong/p/11259603.html
  #if RP_HOST 
  Message("Host: xx=%f; yy=%f;\n",xx,yy);
  #endif

}                                                                                                      

DEFINE_ADJUST(my_adjust,d)
{   
  #if RP_HOST
  Message("xx=%f \n",xx);
  #endif
}

其中,

UDFInput.dat中的数据是这样的,

上面的UDF只读取了前2行

0.5
0.2
0.0
0.1
0.1
0.1
0.0
5e9

上面定义的全局变量和局部变量都是双精度double

在fscanf中使用了 %lf 格式,意即 long float




https://blog.sciencenet.cn/blog-531760-1290501.html

上一篇:[转载]ANSA 2D 边界层网格
下一篇:[转载]Fluent 修改zone ID
收藏 IP: 114.213.245.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-7-28 10:19

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部