ANSYS Fluent UDF | UDF 概述(3):C语言语法详解
随着Ansys Fluent软件的使用程度的加深,软件的一些基本功能无法满足我们的一些特定需求,对于没有接触过二次开发或者代码学习的工程师来说,UDF的学习至关重要!UDF概述(1)我们认识了UDF的性质、作用和数据结构;UDF概述(2)我们介绍了使用的语言和相关的宏; Ansys Fluent-UDFC Programming - 基本语法 熟悉Fortran等其他“过程”语言的用户将熟悉C中使用的大多数工作思路和语法。每条语句都必须以分号结束;注释可以插入在 /* 和 */ 之间的任何位置;所有变量都必须显式声明(unlike in FORTRAN);复合语句可以通过用大括号括住多个语句来创建: { };函数定义具有以下格式: Ansys Fluent-UDFC Programming- 数据类型 数据类型:int, float(单精度8位有效数字), double(双精度16位有效数字), char, enum(枚举);Ansys Fluent: real (实数) (取决于开启软件的时候选择的单精度还是双精度), cxboolean; Ansys Fluent-UDFC Programming - 指针 指针是一种特殊的变量,它包含内存中的地址,而不是另一个变量的内容指针使用 * 符号声明我们可以按如下方式将指针指向预定义变量的地址:Output:Ansys Fluent-UDFC Programming - 指针和数组 指针和数组密切相关:没有索引的数组的名称可以用作启动数组的指针:但是:数组名称不能设置为新值。当它被定义为数组时,它固定为值集: Ansys Fluent-UDFC Programming - 运算符 Arithmetic Operators 算术运算符: Ansys Fluent-UDFC Programming - 控制运算符 if-else statement: Ansys Fluent-UDF工作流程 在Fluent中使用UDF的基本步骤如下:STEP01:定义问题我们想对2D弯头施加抛物线入口速度,如图所示,其中x速度指定为:STEP02:准备C语言代码DEFINE_PROFILE宏允许定义函数x_velography;代码存储为inlet_bc文本文件 .c;所有UDF都以DEFINE_宏开头;GUI中显示的名称将是x_velovely;宏begin_f_loop在线程指向的所有面f上循环;F_CENTROID宏将单元格位置向量分配给pos[ ]:- pos[0] is the x-coordinate;- pos[1] is the y-coordinate;- pos[2] is the z-coordinate;必须通过#include命令将头文件“udf.h”包含在程序顶部;F_PROFILE宏使用所需的算术函数将速度分量应用于面F。STEP03:在 Fluent 中编译(解释)代码STEP04:通过 Fluent GUI 连接代码打开要应用UDF的曲面的边界条件面板;在下拉列表中从常数切换到udf x_velography;宏名称是UDF代码中DEFINE_PROFILE的第一个参数。STEP05:运行计算可以在“运行计算”面板中更改配置文件更新间隔(默认值为1);此设置控制UDF配置文件的更新频率(迭代或时间步长,如果不稳定)。STEP06:检验结果左图显示了通过二维弯头的速度场;右图显示了入口处的速度矢量。请注意所施加的抛物线速度分布。本期内容我们学习了UDF的C语言基本知识内容,希望能激起大家对编程自定义的兴趣!请持续期待我们之后的UDF学习内容更新哦! 来源:艾羽科技