UDF第3章写UDF详解

发布时间 : 星期四 文章UDF第3章写UDF详解更新完毕开始阅读

UDF 第3章 写UDF

本章主要概述了如何在FLUENT写UDF。 3.1 概述

3.2写解释式UDF的限制

3.3 FLUENT中UDF求解过程的顺序 3.4 FLUENT网格拓扑 3.5 FLUENT数据类型

3.6 使用DEFINE Macros定义你的UDF 3.7在你的UDF源文件中包含udf.h文件 3.8 定义你的函数中的变量 3.9函数体 3.10 UDF 任务

3.11 为多相流应用写UDF 3.12在并行中使用你的UDF 3.1概述(Introduction)

UDF是用来增强FLUENT代码的标准功能的,在写UDF之前,我们要明确以下几个基本的要求。首先,必须用C语言编写UDF。必须使用FLUENT提供的DEFINE宏来定义UDF。UDF必须含有包含于源代码开始指示的udf.h文件;它允许为DEFINE macros和包含在编译过程的其它FLUENT提供的函数定义。UDF只使用预先确定的宏和函数从FLUENT求解器访问数据。通过UDF传递到求解器的任何值或从求解器返回到UDF的值,都指定为国际(SI)单位。

总之,当写UDF时,你必须记住下面的FLUENT要求。UDF: 1. 采用C语言编写。

2. 必须为udf.h文件有一个包含声明。

3. 使用Fluent.Inc提供的DEFINE macros来定义。

4. 使用Fluent.Inc提供的预定义宏和函数来访问FLUENT求解器数据。 5. 必须使返回到FLUENT求解器的所有值指定为国际单位。

3.2写解释式UDF的限制(Restriction on Writing Interpreted UDF)

无论UDF在FLUENT中以解释还是编译方式执行,用户定义C函数(说明在Section 3.1中)的基本要求是相同的,但还是有一些影响解释式UDF的重大编程限制。FLUENT解释程序不支持所有的C语言编程原理。解释式UDF不能包含以下C语言编程原理的任何一个: 1. goto 语句。 2. 非ANSI-C原型语法

3. 直接的数据结构查询(direct data structure references) 4. 局部结构的声明 5. 联合(unions)

6. 指向函数的指针(pointers to functions) 7. 函数数组。

在访问FLUENT求解器数据的方式上解释式UDF也有限制。解释式UDF不能直接访问存储在FLUENT结构中的数据。它们只能通过使用Fluent提供的宏间接地访问这些数据。另一方面,编译式UDF没有任何C编程语言或其它注意的求解器数据结构的限制。

3.3 FLUENT求解过程中UDF的先后顺序(Sequencing of UDF in the FLUENT Solution Process)

当你开始写UDF代码的过程时(依赖于你写的UDF的类型),理解FLUENT求解过程中UDF调用的内容或许是重要的。求解器中包含连接你写的用户定义函数的call-outs。知道FLUENT求解过程中迭代之内函数调用的先后顺序能帮助你在给定的任意时间内确定那些数据是当前的和有效的。

分离式求解器

在分离式求解器求解过程中(Figure 3.3.1),用户定义的初始化函数(使用DEFINE_INIT定义的)在迭代循环开始之前执行。然后迭代循环开始执行用户定义的调整函数(使用DEFINE_ADJUST定义的)。接着,求解守恒方程,顺序是从动量方程和后来的压力修正方

程到与特定计算相关的附加标量方程。守恒方程之后,属性被更新(包含用户定义属性)。这样,如果你的模型涉及到气体定律,这时,密度将随更新的温度(和压力 and/or 物质质量分数)而被更新。进行收敛或者附加要求的迭代的检查,循环或者继续或停止。

Figure 3.3.1: 分离解算器的解程序

耦合求解器

在耦合求解器求解过程中(Figure 3.3.2),用户定义的初始化函数(使用DEFINE_INIT定义的)在迭代循环开始之前执行。然后,迭代循环开始执行用户定义的调整函数(使用DEFINE_ADJUST定义的)。接着,FLUENT求解连续、动量和(适合的地方)能量的控制方程和同时地一套物质输运或矢量方程。其余的求解步骤与分离式求解器相同(Figure 3.3.1)。

Figure 3.3.2: Solution Procedure for the Coupled Solver

3.4 FLUENT 网格拓扑

在我们开始讨论FLUENT特殊的数据类型之前,你必须理解网格拓扑学的术语因为FLUENT数据类型是为这些实体定义的。下面是显示在Figure 3.4.1中的网格实体的定义。 单元(cell) 区域被分割成的控制容积 单元中心(cell center) FLUENT中场数据存储的地方 面(face) 单元(2D or 3D)的边界 边(edge) 面(3D)的边界

联系合同范文客服:xxxxx#qq.com(#替换为@)