打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Fluent UDF【9】:节点数据访问宏
userphoto

2023.10.23 四川

关注

1

在这里输入标题

1

标题

从今天开始,我们将走入UDF的核心世界,仔细剖析每个宏的使用方法及其使用过程中需要注意的事项。

1

辅助宏

前文提过,UDF程序编写的核心内容在于搞明白数据如何获取?数据如何转换?数据如何返回?Fluent提供了众多的辅助宏来实现这三个功能。主要包括:

  • 数据访问。主要功能为获取求解器中的数据,如得到单元中的温度、压力、速度等物理量。

  • 循环控制。主要提供遍历搜索功能。如设置边界条件数据,则需要利用循环控制宏遍历所有的边界面。

  • 向量操作宏。主要提供一些向量运算操作。

  • 输入输出宏。提供与外部数据交互的能力。

  • Scheme宏。主要用于GUI定制。

数据获取宏的内容很多,包括各种节点数据、网格单元数据、网格面数据、网格链接关系数据、索引数据、时间相关数据、物性数据等。本文描述其中的部分内容,剩余部分在后续文章中逐渐描述。

注意轴对称数据:当计算采用了轴对称模型或轴对称旋转模型时,需要注意利用数据获取宏得到的面数据(如利用宏F_AREA得到的截面面积)均指的是1弧长面积上的数据,如果要得到整个截面上的数据,则需要乘上2PI(可以利用宏M_PI)

2

节点数据访问宏

节点宏获取节点信息,如获取节点x,y,z三方向坐标,或获取网格面上的节点数量。

  • 获取节点位置信息

获取节点位置包括三个宏,它们在头文件metric.h中被定义。这些宏包括NODE_X,NODE_Y,NODE_Z

参数类型返回值
NODE_XNode *node返回node的x坐标,real类型
NODE_YNode *node返回node的y坐标,real类型
NODE_ZNode *node返回node的z坐标,real类型

说明:此宏使用很简单,不过在使用之前需要定义变量Node *v,然后在循环体中利用宏F_NODE获取节点,之后直接应用宏NODE_X(v)获取节点v的x坐标。

如下程序片段取自DEFINE_GRID_MOTION宏:

{
   Node *v;     
  int n;   face_t f;   Thread *tf = DT_THREAD(dt);   begin_f_loop(f,tf)   {       f_node_loop(f,tf,n)       {           v=F_NODE(f,tf,n);              
          if(NODE_X(v)>0.2)           {              ...           }        }    }  end_f_loop(f,tf);
}
  • 获取面上节点数量

宏F_NNODES可用来获取面上节点的数量信息,该宏在头文件mem.h中定义。

参数类型返回值
F_NNODES(f,t)

face_t f

Thread *t

返回节点数量,int类型

此宏的使用更简单,直接在面循环体内调用即可,也可以在cell循环体内使用。

{  
 int number;  face_t f;  Thread *tf = DT_THREAD(dt);  begin_f_loop(f,tf)  {      number = F_NNODES(f,tf);  }  end_f_loop(f,tf); }

3

mem.h头文件

网格信息访问宏大多数放置在mem.h头文件中,更多关于节点访问的宏可以在此文件中找到。该文件位于Fluent安装目录下..\ANSYS Inc\v180\fluent\fluent18.0.0\src\storage文件夹中。该文件夹中放置了众多辅助宏定义的头文件,有很多在文档中没有解释的宏都可以在这里面找到,有兴趣的可以看看,不过千万不要被里面的内容给吓到。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Fluent UDF【13】:循环操作宏
Fluent动网格|光顺
Fluent 流固耦合基础教程(下)
4-FLUENT中的网格术语
〖原创〗菜鸟学UDF的感觉,希望对UDFers有用 | 『 Fluent专版 』 - 傲雪...
动网格:UDF&Profile
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服