吾生有涯 学海无涯
析模有界 知识无界

Fluent UDF【10】:网格面数据访问宏

前面介绍了获取节点数据的宏。本文讲解一些关于面数据获取的宏。

这些面相关宏定义在头文件metric.h及mem.h中,并且所有的宏均以F_作为前缀。

注意:面数据获取宏只能用于压力基求解器,并且一些与模型相关的宏,只在当模型被开启后才有效。

Fluent的数据以分层方式保存,如下图所示。最顶级为Domain,其下为Cell,再下为Face,最底层数据为Node。在访问过程中,也是从上往下逐层访问,采用循环遍历的方式。

1

F_CENTROID宏

F_CENTROID宏用于网格面心坐标。

  • 宏调用形式: F_CENTROID( x , f , t )

  • 宏参数:  real x[ND_ND],face_t f,Thread  *t  

  • 参数值获取: 通过x数组获得

此宏通过参数返回值,典型的传址调用。一个简单的示例:

{
   /*定义数组接收坐标参数*/    real x[ND_ND];    real y;    face_t f;    begin_f_loop(f,t)      {       F_CENTROID(x,f,t);       y = x[1];       ...      }    end_f_loop(f,t) }

2

F_AREA宏

F_AREA宏用于获取网格面的法向向量。在一些求通过某些面的物理量分量时非常有用。在ANSYS Fluent中,边界面的法向通常指向计算域的外部。对于内部面的法向方向,通常利用节点排序采用右手定则进行确定。

  • 宏调用形式: F_AREA(A , f , t )

  • 宏参数:  real A[ND_ND],face_t f,Thread  *t  

  • 参数值获取: 通过A数组获得

一个简单的片段:

{   real NV_VEC(A); /*定义向量A*/   F_AREA(A, f, t); }

注意:F_AREA宏通过传址调用返回值,参数A可以是数组A[ND_ND],也可以是向量。如果定义为向量,后面可以很方便的利用向量运算(点积和叉积等)。

3

获取边界面流动参数的宏

面参数访问宏的一个主要用途在于访问边界面信息。如获取边界速度、压力、温度等。
如下表所示。

宏定义 参数类型 返回值
F_U(f,t) face_t  f,Thread *t 返回u方向速度
F_V(f,t) face_t  f,Thread *t 返回v方向速度
F_W(f,t) face_t  f,Thread *t 返回w方向速度
F_T(f,t) face_t  f,Thread *t 返回面上的温度
F_H(f,t) face_t  f,Thread *t 返回面上的焓
F_K(f,t) face_t  f,Thread *t 返回面上的湍动能
F_D(f,t) face_t  f,Thread *t 返回面上湍动能耗散率
F_YI(f,t,i) face_t  f,Thread *t,int i 返回组分质量分数

这些宏的返回值均为real型。采用返回值的形式获取参数。如下代码片段:

real temperature; temperature = F_T(f,t);

需要注意,这些宏只有在激活了相应的模型后才有效。如获取湍动能参数宏F_K(f,t),只有当激活了湍流模型后才可以使用。

4

获取内部面参数的宏

有一些宏既可以访问边界面上数据,也可以访问内部面上的数据。比较常用的宏为F_P及F_FLUX。

宏定义 参数类型 返回值
F_P(f,t)

face_t f

Thread *t

返回面上压力值,real类型
F_Flux(f,t)

face_t 

Thread *t

返回通过面的质量流量,real类型

与前面边界面参数宏使用方法类似。

本篇文章来源于微信公众号: CFD之道

赞(3) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《Fluent UDF【10】:网格面数据访问宏》
文章链接:https://www.topcfd.cn/749/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册