当前位置:文档之家› Fluent UDF 中文教程1

Fluent UDF 中文教程1

Fluent UDF 中文教程1
Fluent UDF 中文教程1

第一章介绍

本章简要地介绍了用户自定义函数(UDF)及其在Fluent中的用法。在1.1到1.6节中我们会介绍一下什么是UDF;如何使用UDF,以及为什么要使用UDF,在1.7中将一步步的演示一个UDF例子。

1.1 什么是UDF?

1.2 为什么要使用UDF?

1.3 UDF的局限

1.4 Fluent5到Fluent6 UDF的变化

1.5 UDF基础

1.6 解释和编译UDF的比较

1.7一个step-by-stepUDF例子

1.1什么是UDF?

用户自定义函数,或UDF,是用户自编的程序,它可以动态的连接到Fluent求解器上来提高求解器性能。用户自定义函数用C语言编写。使用DEFINE宏来定义。UDF中可使用标准C语言的库函数,也可使用Fluent Inc.提供的预定义宏,通过这些预定义宏,可以获得Fluent求解器得到的数据。

UDF使用时可以被当作解释函数或编译函数。解释函数在运行时读入并解释。而编译UDF则在编译时被嵌入共享库中并与Fluent连接。解释UDF用起来简单,但是有源代码和速度方面的限制不足。编译UDF执行起来较快,也没有源代码限制,但设置和使用较为麻烦。

1.2为什么要使用UDF?

一般说来,任何一种软件都不可能满足每一个人的要求,FLUENT也一样,其标准界面及功能并不能满足每个用户的需要。UDF正是为解决这种问题而来,使用它我们可以编写FLUENT代码来满足不同用户的特殊需要。当然,FLUENT的UDF并不是什么问题都可以解决的,在下面的章节中我们就会具体介绍一下FLUENT UDF的具体功能。现在先简要介绍一下UDF的一些功能:

●定制边界条件,定义材料属性,定义表面和体积反应率,定义FLUENT输运方程中的源项,用户自定义标

量输运方程(UDS)中的源项扩散率函数等等。

●在每次迭代的基础上调节计算值

●方案的初始化

●(需要时)UDF的异步执行

●后处理功能的改善

●FLUENT模型的改进(例如离散项模型,多项混合物模型,离散发射辐射模型)

由上可以看出FLUENT UDF并不涉及到各种算法的改善,这不能不说是一个遗憾。当然为了源代码的保密我们还是可以理解这样的做法的。其实,如果这些代码能够部分开放,哪怕就一点点,我想FLUENT会像LINUX一样发展更为迅速,使用更为广泛。遗憾的是,从目前来看,这只是一种幻想。什么时候中国人可以出自己的精品?

1.3 UDF的局限

尽管UDF在FLUENT中有着广泛的用途,但是并非所有的情况都可以使用UDF。UDF并不能访问所有的变量和FLUENT模型。例如,它不能调节比热值;调节该值需要使用求解器的其它功能。如果您不知道是否可以用UDF 解决某个特定的问题,您可以求助您的技术支持。

1.4Fluent5到Fluent6UDF的变化

如果你有FLUENT5的UDF编程经验,请注意在FLUENT6种的下列变化:

?FLUENT6中加入了大量的通用多相模型。When one of these general multiphase models is enabled, storage must be set aside for the mixture as well as the individual phases. This functionality is manifested in the code through the use of additional thread and domain data structures. Consequently, some predefined macros have been added that allow access to data contained within mixture-level and phase-level domain and thread structures. See Section 3.11 for details on writing UDF for multiphase applications.

If you have a FLUENT 5 UDF with an external domain declaration that you want to use in FLUENT 6, then the extern statement must be replaced by a call to the Get_Domain utility and assignment to a Domain pointer as shown below. The Fluent-provided utility, Get_Domain(1), returns the pointer to the mixture-level domain. See Section 6.5.1 for more details on Get_Domain.

Example

extern Domain *domain;

DEFINE_ON_DEMAND(my_udf)

{

...

}

is to be replaced by

DEFINE_ON_DEMAND(my_udf)

{

Domain *domain;

domain = Get_Domain(1);

...

}

The macro C_VOF accesses volume fraction values from the FLUENT solver. C_VOF(c, pt[i]) has two arguments,

c an

d pt[i]. c is th

e cell identifier. pt[i] is the pointer to the corresponding phase-level thread for the i th phase,

where i is the phase_domain_index. For example, C_VOF(c,pt[i]) can be used to return the volume fraction of the

i th phase fluid at cell c. The pointer pt[i] can also be retrieved using THREAD_SUB_THREAD, discussed in

Section 6.5.4, using i as an argument.

?For compiled UDF, the makefile called Makefile.udf that was provided in previous FLUENT releases has been renamed to makefile.udf2. See Section 7.3.2 for more details.

?For multiphase flow problems, you will need to supply your own user-defined scalar flux function instead of using the default function provided by FLUENT.

?DEFINE_PROPERTY is to be used to define UDF for particle or droplet diameter for the mixture model, previously

the Algebraic Slip Mixture Model (ASMM), instead of the DEFINE_DRIFT_DIAM macro.

1.5 UDF基础

? 1.5.1输运方程

? 1.5.2单元(Cells),面,区域(Zones)和线(Threads)

? 1.5.3操作

? 1.5.4求解器数据

? 1.5.5运行

1.5.1输运方程

FLUENT求解器建立在有限容积法的基础上,这种方法将计算域离散为有限数目的控制体或是单元。网格单元是FLUENT中基本的计算单元,这些单元的守恒特性必须保证。也就是说普通输运方程,例如质量,动量,能量方程的积分形式可以应用到每个单元:

(1.5.1) 此处,是描述普通输运数量的变量(a general transportable quantity),根据所求解的输运方程它可取不同的值。

下面是在输运方程中可求解的的子集。

Variable for

turbulent dissipation rate

守恒与否需要知道通过单元边界的通量。因此,需计算出单元和面上的属性值(properties)。

1.5.2单元(Cells),面,区域(Zones)和线(Threads)

单元和单元面被组合为一些区域(zones),这些区域规定了计算域(例如,入口,出口,壁面)的物理组成(physical components)。当用户使用FLUENT中的UDF 时,用户的UDF 可调用流体区域或是边界区域的计算变量(solution variables)。UDF需要获得适当的变量,比如说是区域参考(a zone reference)和单元ID,以便标定各个单元。

区域(A zone)是一群单元或单元面的集合,它可以由模型和区域的物理特征(比如入口,出口,壁面,流体区域)来标定。例如,一些被指定为面域(a face zone)的单元面可以被指定为velocity-inlet 类型,由此,速度也就可指定了。线(A thread)是FLUENT数据结构的内部名称,可被用来指定一个区域。Thread 结构可作为数据储存器来使用,这些数据对于它所表示的单元和面来说是公用的(The Thread structure acts as a container for data that is common to the group of cells or faces that it represents)。

1.5.3操作

多数的UDF任务需要在一个线的所有单元和面上重复执行。比如,定义一个自定义轮廓函数(a custom profile function)则会对一个面线上(in a face thread)的所有单元和面进行循环。为了用户方便,Fluent Inc.向用户提供了一些循环宏工具(looping macro utilities)来执行对单元,面,节点(nodes)和线(threads)的重复操作。例如,单元循环宏(Cell-looping macros )可以对给定单元线上的所有单元进行循环操作(loop over cells in a given cell thread allowing access to all of the cells)。而面循环宏(Face-looping macros)则可调用所有给定面线(a given face thread)的面。Fluent提供的循环工具请见Chapter 6。

在某些情况下,UDF 需要对某个变量操作,而这个变量恰恰又不能直接被当作变量来传递调用。比如,如果用户使用DEFINE_ADJUST宏来定义UDF,求解器将不会向它传递thread指针。这种情况下,用户函数需要用Fluent 提供的宏来调用线指针(thread pointer)。见Chapter 6。

1.5.4求解器数据

通过FLUENT用户界面将C 函数(它已被编译和连接)连接到求解器上可实现调用求解器变量。一旦UDF 和求解器正确连接,无论何时,函数都可调用求解器数据。这些数据将会被作为用户变量自动地传递给UDF。注意,所有的求解器变量,不管是求解器传递给UDF的,还是UDF传递给求解器的,都使用SI单位。

1.5.5运行

UDF将会在预定时刻被FLUENT调用。但是,也可对它们进行异步执行,使用DEFINE_ON_DEMAND宏,还可在需要时(on demand)执行。详情请见4.2.3

1.6 解释和编译UDF的比较

编译UDF和FLUENT的构建方式一样。脚本Makefile 被用来调用C编译器来构建一个当地目标代码库(a native object code library)。目标代码库包含高级C语言源代码的机器语言翻译。代码库在FLUENT运行时由“动态加载”(``dynamic loading'')过程连接到FLUENT上。连接后,与共享库的联系(the association with the shared library)将会被保存在用户的case文件中,这样,当FLUENT以后再读入case文件时,此编译库将会与FLUENT自动连接。这些库是针对计算机的体系结构和一定版本的FLUENT使用的。所以,当FLUENT更新,或计算机操作系统改变,或是在不同类型的机器上运行时,这些库必须重新构建。

而解释UDF则是在运行时,直接从C语言源代码编译和装载(compiled and loaded directly from the C source code)。在FLUENT运行中,源代码被编译为中介的独立于物理结构的使用C预处理程序的机器代码(an intermediate, architecture-independent machine code)。当UDF 被调用时,机器代码由内部仿真器(an internal emulator),或注释器(interpreter)执行。注释器不具备标准C编译器的所有功能;它不支持C语言的某些原理(elements)。所以,在使用interpreted UDF 时,有语言限制(见3.2)。例如,interpreted UDF 不能够通过废弃结构(dereferencing structures)来获得FLUENT数据。要获得数据结构,必须使用由FLUENT提供的预定义宏。另一个例子是FLUENT interpreter 不能识别指针数组。这些功能必须由compiled UDF 来执行。

编译后,用户的C函数名称和内容将会被储存在case文件中。函数将会在读入case文件时被自动编译。独立于物理结构的代码的外层(This extra layer of architecture-independent code)可能会导致执行错误(a performance penalty),但却可使UDF共享不同的物理结构,操作系统,和Fluent版本。如果运行速度较慢,UDF不用被调节就可以编译代码的形式(in compiled mode)运行。FLUENT中的compiled 和interpreted UDF 请见Chapter 7。

选择interpreted UDF或是compiled UDF时,注意以下内容:

?Interpreted UDF

o对其它平台是便捷的(portable)。

o可作为(compiled UDF)来运行。

o不需C编译器。

o比compiled UDF慢。

o需要较多的代码。

o在使用C语言上有限制。

o不能与编译系统或用户库(compiled system or user libraries)连接。

o只能使用预定义宏来获得FLUENT结构中的数据。(见Chapters 5和6)。

?Compiled UDF

o比interpreted UDF运行快。

o在使用C语言上不存在限制。

o可用任何ANSI-compliant C 编译器编译。

o能调用以其他语言编写的函数(specifics are system- and compiler-dependent)。

o机器物理结构需要用户建立FLUENT(2D or 3D) 的每个版本的共享库(a shared library for each version of FLUENT (2D or 3D) needed for your machine architecture)。

o如果包含有注释器(interpreter)不能处理得C语言元素,则不能作为(interpreted UDF )运行。

总的来说,当决定使用那种类型的UDF 时:

?使用interpreted UDF作为简单的函数

?使用compiled UDF作为复杂的函数,这些函数

o对CPU有较大要求(例如每次运行时,在每个单元上均须调用的属性UDF(a property UDF)。

o需要使用编译库(require access to a compiled library)。

1.7一个step-by-stepUDF例子

编辑UDF 代码,并且在用户的FLUENT模型中有效使用它,须遵循以下七个基本步骤:

1. 定义用户模型。

2. 编制C 语言源代码。

3. 运行FLUENT,读入,并设置case文件。

4. 编译或注释(Compile or interpret)C语言源代码。

5. 在FLUENT中激活UDF。

6. 开始计算。

7. 分析计算结果,并与期望值比较。

在开始解决问题前,用户必须使用UDF 定义希望解决的问题(Step 1)。例如,加入用户希望使用UDF来定义一个用户化的边界条件(a customized boundary profile )。用户首先需要定义一系列数学方程来描述这个条件。

接下来用户需要将这些数学方程(概念设计,conceptual design)用C语言写成一个函数(Step 2)。用户可用文本编辑器来完成这一步。以.c为后缀名来把这个文件保存在工作路径下。

写完C语言函数后,用户即可运行FLUENT并且读入或设置case文件(Step 3)。对C语言源代码进行注释,编译,和调试(interpret, compile, and debug),并在FLUENT中激活用户函数(Step 5)。最后,运行计算(Step 6),分析结果并与期望值比较。(Step 7)。根据用户对结果的分析,可将上述整个过程重复几次。具体如下。

Step 1: 定义用户模型

生成和使用UDF 的第一步是定义用户的模型方程。

如图Figure1.7.1所示的涡轮叶片。模拟叶片周围的流场使用了非结构化网格。计算域由底端的周期性边界(a periodic boundary on the bottom )延伸到顶端的相同部分(an identical one on the top),速度入口在左边,压力出口在右边。

Figure 1.7.1: The Grid for the Turbine V ane Example Figure 1.7.2: V elocity Magnitude Contours for a Constant Inlet x Velocity

文中对入口x速度为常数分布和抛物线分布的流场进行了比较。分段线性的分布可由边界场选项得到(the application of a profile using a piecewise-linear profile is available with the boundary profiles option),而多项式分布则只能使用用户自定义函数得到。

进口速度为常数(20 m/s)的结果如图1.7.2和1.7.3所示。当流动沿着涡轮叶片进行时,初始速度场被改变了。

Figure 1.7.3: Velocity Vectors for a Constant Inlet x Velocity

假定现在要设涡轮叶片入口速度x不是一常数值,其分布如下

变量y在入口中心处为0.0,在入口上部和下部则分别为0.0745 m 而入口中心处的x速度为20 m/s ,边界上为0。

用户可用UDF 描述这一分布,并将它应运到FLUENT模型中来解决这类问题。

Step 2: 编制C 语言源代码。

选定方程定义UDF 后,用户可用任意文本编辑器来书写C语言代码。以扩展名.c 保存源代码文件保存到工作路径下。关于UDF 的书写请参考Chapter 3。

下面是一个怎样在UDF中应用方程的例子。UDF的功能由主要的DEFINE 宏(the leading DEFINE macro)来定义。此处,DEFINE_PROFILE 宏用来表示下面的代码旨在给求解器提供边界的轮廓信息。书中将在以后部分讨论其它的DEFINE宏。

/*************************************************************************/

/* udfexample.c */

/* UDF for specifying a steady-state velocity profile boundary condition */

/*************************************************************************/

#include "udf.h"

DEFINE_PROFILE(inlet_x_velocity, thread, index)

{

real x[ND_ND]; /* this will hold the position vector */

real y;

face_t f;

begin_f_loop(f, thread)

{

F_CENTROID(x,f,thread);

y = x[1];

F_PROFILE(f, thread, index) = 20. - y*y/(.0745*.0745)*20.;

}

end_f_loop(f, thread)

}

DEFINE_PROFILE 宏的第一个变量inlet_x_velocity 用来定义速度入口面板中的函数。名称可任意指定。在给定的边界区域上的所有单元面(identified by f in the face loop)上将会使用函数的这个方程。当用户在FLUENT用户界面选定UDF作为边界条件时,将会自动定义线(thread)。下标由begin_f_loop应用程序自动定义。UDF 中,begin_f_loop 被用来形成对边界区域上所有单元面的循环(loop through all cell faces in the boundary zone)。对于每个面,面的质心(the face centroid)的坐标可由F_CENTROID 宏来获得。抛物线方程中用到了y坐标y ,速度值通过F_PROFILE 宏来返回给面。begin_f_loop宏和F_PROFILE宏都是FLUENT提供的宏。详情请见Chapter5。

Step 3: 运行FLUENT,读入,并设置case文件

建立UDF后,用户开始设置FLUENT。

1. 在工作路径下启动FLUENT。

2. 读入(或设置)case文件(如果case文件以前设置过,请确认它是否被保存在了工作路径下)。

Step 4: 编译或注释(Compile or interpret)C语言源代码

这部分将例中的源代码作为interpreted UDF 来编译。注意,这个例子不可应用于Windows 的并行网络(Windows parallel networks)。完整的编译和连接UDF 请见Chapter7。

1. 确认UDF 的case 文件(如果以前设置过)和C语言源代码在工作路径下。

2. 用Interpreted UDF面板编译UDF (例如,udfexample.c) 。

Define User-Defined Functions Interpreted...

Figure 1.7.4: The Interpreted UDF Panel

(a) 在Source File Name下键入C语言源代码文件(例如,udfexample.c) 。

!!如果用户源代码不在目前工作路径下,则在编译UDF时,需在Interpreted UDF面板中间如文件完整的路径。

(b) 在CPP Command Name一栏里,选择C预处理器。

(c) Stack Size缺省设置为10000。如果用户函数的局部变量数目大于10000,将会导致堆栈溢出。这种情况下,应将Stack Size设置为比局部变量大的数。

(d) 点击Compile编译UDF。

存储case文件时,C语言代码的名称和内容将会储存在case文件中。如果Interpreted UDF面板中的Display Assembly Listing选项被选中,当编译进行时,控制台窗口中将会显示汇编语言代码。另外,此选项将会被存储在case文件中,当以后用户在执行FLUENT任务时,控制台窗口中将会编译时一样显示汇编语言代码。

inlet\_x\_velocity:

.local.pointer thread (r0)

.local.int nv (r1)

0 .local.end

0 save

.local.int f (r3)

1 push.int 0

.local.pointer x (r4)

3 begin.data 8 bytes, 0 bytes initialized:

7 save

. .

. .

156 pre.inc.int f (r3)

158 pop.int

159 b .L3 (22)

.L2:

161 restore

162 restore

163 ret.v

!!注意,如果编译失败,FLUENT将会给出错误信息,请调试程序。详见7.2.3。

(e) 编译结束后,点击Close。

!!此例中的UDF源代码也可作为compiled UDF运行。

Step 5: 在FLUENT中激活UDF

编译连接完UDF后,FLUENT用户界面面板中将会看到UDF。此例中,可在Velocity Inlet面板中选择UDF。Define Boundary Conditions...

在X-Velocity下拉列表中,选择udf inlet_x_velocity,此名称是由例中的函数给定的。一旦选中,UDF将会替代X-Velocity中的0 值进行运算。点击OK接受新的边界条件,关闭面板。

Step 6: 开始计算

运算方式和以前一样。

Solve Iterate...

Step 7: 分析计算结果,并与期望值比较

计算收敛后,获得一个修正的速度场。Figure1.7.5为入口x速度为抛物线分布的速度等值线,可与(Figure 1.7.2)所示的入口速度为常数20 m/sec 的流场比较。常数条件下,流动在涡轮叶片周围变形(distorted)。入口抛物线分布,在入口中心处为最大值,边缘上为0。

Figure 1.7.5: Velocity Magnitude Contours for a Parabolic Inlet x Velocity

FLUENT中文全教程1-250

FLUENT 教程 赵玉新 I、目录 第一章、开始 第二章、操作界面 第三章、文件的读写 第四章、单位系统 第五章、读入和操作网格 第六章、边界条件 第七章、物理特性 第八章、基本物理模型 第九章、湍流模型 第十章、辐射模型 第十一章、化学输运与反应流 第十二章、污染形成模型 第十三章、相变模拟 第十四章、多相流模型 第十五章、动坐标系下的流动 第十六章、解算器的使用 第十七章、网格适应 第十八章、数据显示与报告界面的产生 第十九章、图形与可视化 第二十章、Alphanumeric Reporting 第二十一章、流场函数定义 第二十二章、并行处理 第二十三章、自定义函数 第二十四章、参考向导 第二十五章、索引(Bibliography) 第二十六章、命令索引 II、如何使用该教程 概述 本教程主要介绍了FLUENT 的使用,其中附带了相关的算例,从而能够使每一位使用 者在学习的同时积累相关的经验。本教程大致分以下四个部分:第一部分包括介绍信息、用户界面信息、文件输入输出、单位系统、网格、边界条件以及物理特性。第二和第三部分包含物理模型,解以及网格适应的信息。第四部分包括界面的生成、后处理、图形报告、并行处理、自定义函数以及FLUENT 所使用的流场函数与变量的定义。 下面是各章的简略概括 第一部分: z开始使用:本章描述了FLUENT 的计算能力以及它与其它程序的接口。介绍了如何对具体的应用选择适当的解形式,并且概述了问题解决的大致步骤。在本章中,我们给出

了一个可以在你自己计算机上运行的简单的算例。 z使用界面:本章描述了用户界面、文本界面以及在线帮助的使用方法。同时也提供了远程处理与批处理的一些方法。(请参考关于特定的文本界面命令的在线帮助) z读写文件:本章描述了FLUENT 可以读写的文件以及硬拷贝文件。 z单位系统:本章描述了如何使用FLUENT 所提供的标准与自定义单位系统。 z读和操纵网格:本章描述了各种各样的计算网格来源,并解释了如何获取关于网格的诊断信息,以及通过尺度化(scale)、分区(partition)等方法对网格的修改。本章还描述了非一致(nonconformal)网格的使用. z边界条件:本章描述了FLUENT 所提供的各种类型边界条件,如何使用它们,如何定义它们and how to define boundary profiles and volumetric sources. z物理特性:本章描述了如何定义流体的物理特性与方程。FLUENT 采用这些信息来处理你的输入信息。 第二部分: z基本物理模型:本章描述了FLUENT 计算流体流动和热传导所使用的物理模型(包括自然对流、周期流、热传导、swirling、旋转流、可压流、无粘流以及时间相关流)。以及在使用这些模型时你需要输入的数据,本章也包含了自定义标量的信息。 z湍流模型:本章描述了FLUENT 的湍流模型以及使用条件。 z辐射模型:本章描述了FLUENT 的热辐射模型以及使用条件。 z化学组分输运和反应流:本章描述了化学组分输运和反应流的模型及其使用方法。本章详细的叙述了prePDF 的使用方法。 z污染形成模型:本章描述了NOx 和烟尘的形成的模型,以及这些模型的使用方法。 第三部分: z相变模拟:本章描述了FLUENT 的相变模型及其使用方法。 z离散相变模型:本章描述了FLUENT 的离散相变模型及其使用方法。 z多相流模型:本章描述了FLUENT 的多相流模型及其使用方法。 z Flows in Moving Zones(移动坐标系下的流动):本章描述了FLUENT 中单一旋转坐标系,多重移动坐标系,以及滑动网格的使用方法。 z Solver 的使用:本章描述了如何使用FLUENT 的解法器(solver)。 z网格适应:本章描述了explains the solution-adaptive mesh refinement feature in FLUENT and how to use it 第四部分: z显示和报告数据界面的创建:本章描述了explains how to create surfaces in the domain on which you can examine FLUENT solution data z图形和可视化:本章描述了检验FLUENT 解的图形工具 z Alphanumeric Reporting:本章描述了如何获取流动、力、表面积分以及其它解的数据。 z流场函数的定义:本章描述了如何定义FLUENT 面板内出现的变量选择下拉菜单中的流动变量,并且告诉我们如何创建自己的自定义流场函数。 z并行处理:本章描述了FLUENT 的并行处理特点以及使用方法 z自定义函数:本章描述了如何通过用户定义边界条件,物理性质函数来形成自己的FLUENT 软件。 如何使用该手册 z根据你对CFD 以及FLUENT 公司的熟悉,你可以通过各种途径使用该手册 对于初学者,建议如下:

(完整版)《FLUENT中文手册(简化版)》

FLUENT中文手册(简化版) 本手册介绍FLUENT的使用方法,并附带了相关的算例。下面是本教程各部分各章节的简略概括。 第一部分: ?开始使用:描述了FLUENT的计算能力以及它与其它程序的接口。介绍了如何对具体的应用选择适当的解形式,并且概述了问题解决的大致步骤。在本章中给出了一个简单的算例。 ?使用界面:描述用户界面、文本界面以及在线帮助的使用方法,还有远程处理与批处理的一些方法。?读写文件:描述了FLUENT可以读写的文件以及硬拷贝文件。 ?单位系统:描述了如何使用FLUENT所提供的标准与自定义单位系统。 ?使用网格:描述了各种计算网格来源,并解释了如何获取关于网格的诊断信息,以及通过尺度化(scale)、分区(partition)等方法对网格的修改。还描述了非一致(nonconformal)网格的使用. ?边界条件:描述了FLUENT所提供的各种类型边界条件和源项,如何使用它们,如何定义它们等 ?物理特性:描述了如何定义流体的物理特性与方程。FLUENT采用这些信息来处理你的输入信息。 第二部分: ?基本物理模型:描述了计算流动和传热所用的物理模型(包括自然对流、周期流、热传导、swirling、旋转流、可压流、无粘流以及时间相关流)及其使用方法,还有自定义标量的信息。 ?湍流模型:描述了FLUENT的湍流模型以及使用条件。 ?辐射模型:描述了FLUENT的热辐射模型以及使用条件。 ?化学组分输运和反应流:描述了化学组分输运和反应流的模型及其使用方法,并详细叙述了prePDF 的使用方法。 ?污染形成模型:描述了NOx和烟尘的形成的模型,以及这些模型的使用方法。 第三部分: ?相变模拟:描述了FLUENT的相变模型及其使用方法。 ?离散相变模型:描述了FLUENT的离散相变模型及其使用方法。 ?多相流模型:描述了FLUENT的多相流模型及其使用方法。 ?移动坐标系下的流动:描述单一旋转坐标系、多重移动坐标系、以及滑动网格的使用方法。 ?解法器(solver)的使用:描述了如何使用FLUENT的解法器。 ?网格适应:描述了如何优化网格以适应计算需求。 第四部分: ?显示和报告数据界面的创建:本章描述了explains how to create surfaces in the domain on which you can examine FLUENT solution data ?图形和可视化:本章描述了检验FLUENT解的图形工具 ?Alphanumeric Reporting:本章描述了如何获取流动、力、表面积分以及其它解的数据。 ?流场函数的定义:本章描述了如何定义FLUENT面板内出现的变量选择下拉菜单中的流动变量,并且告诉我们如何创建自己的自定义流场函数。 ?并行处理:本章描述了FLUENT的并行处理特点以及使用方法 ?自定义函数:本章描述了如何通过用户定义边界条件,物理性质函数来形成自己的FLUENT软件。 如何使用该手册 对于初学者,建议从阅读“开始”这一章起步。 对于有经验的使用者,有三种不同的方法供你使用该手册:按照特定程序的步骤从按程序顺序排列的目录列表和主题列表中查找相关资料;从命令索引查找特定的面板和文本命令的使用方法;从分类索引查找特定类别信息(在线帮助中没有此类索引,只能在印刷手册中找到它)。 什么时候使用Support Engineer:Support Engineer能帮你计划CFD模拟工程并解决在使用FLUENT 中所遇到的困难。在遇到困难时我们建议你使用Support Engineer。但是在使用之前有以下几个注意事项:●仔细阅读手册中关于你使用并产生问题的命令的信息 ●回忆导致你产生问题的每一步 ●如果可能的话,请记下所出现的错误信息 ●对于特别困难的问题,保存FLUENT出现问题时的日志以及手稿。在解决问题时,它是最好的资源。

fluent学习笔记

fluent技术基础与应用实例 4.2.2 fluent数值模拟步骤简介 主要步骤: 1、根据实际问题选择2D或3Dfluent求解器从而进行数值模拟。 2、导入网格(File→Read→Case,然后选择有gambit导出的.msh文件) 3、检查网格(Grid→Check)。如果网格最小体积为负值,就要重新 进行网格划分。 4、选择计算模型。 5、确定流体物理性质(Define→Material)。 6、定义操作环境(Define→operating condition) 7、制定边界条件(Define→Boundary Conditions) 8、求解方法的设置及其控制。 9、流场初始化(Solve→Initialize) 10、迭代求解(Solve→Iterate) 11、检查结果。 12、保存结果,后处理等。 具体操作步骤: 1、fluent2d或3d求解器的选择。 2、网格的相关操作 (1)、读入网格文件 (2)、检查网格文件 文件读入后,一定要对网格进行检查。上述的操作可以得到网格信息,从中看出几何区域的大小。另外从minimum volume 可以知道最小网格的体积,若是它的值大于零,网格可以用于计算,否则就要重新划 分网格。 (3)、设置计算区域 在gambit中画出的图形是没有单位的,它是一个纯数量的模型。故 在进行实际计算的时候,要根据实际将模型放大或缩小。方法是改变fluent总求解器的单位。 (4)、显示网格。 Display→Grid 3、选择计算模型

(1)、基本求解器的定义 Define→Models→Solver Fluent中提供了三种求解方法: ·非耦合求解 segregated ·耦合隐式求解 coupled implicit ·耦合显示求解 coupled explicit 非耦合求解方法主要用于不可压缩流体或者压缩性不强的流体。 耦合求解方法用在高速可压缩流体 fluent默认设置是非耦合求解方法,但对于高速可压缩流动,有强的体积力(浮力或离心力)的流动,求解问题时网格要比较密集,建 议采用耦合隐式求解方法。耦合能量和动量方程,可以较快的得到收敛值。耦合隐式求解的短板:运行所需要的存比较大。若果必须要耦合求解而机器存不够用,可以考虑采用耦合显示求解方法。盖求解方法也耦合了动量,能量和组分方程,但是存却比隐式求解方法要小。 需要指出的是,非耦合求解器的一些模型在耦合求解器里并不一定都有。耦合求解器里没有的模型包括:多相流模型、混合分数/PDF燃烧模型、预混燃烧模型。污染物生成模型、相变模型、Rosseland辐射模型、确定质量流率的周期性流动模型和周期性换热模型。 %%%有点重复,但是可以看看加深理解 Fluent提供三种不同的求解方法;分离解、隐式耦合解、显示耦合解。分理解和耦合解的主要区别在于:连续方程、动量方程、能量方程和 组分方程解的步骤不同。 分离解按照顺序解,耦合解是同时解。两种解法都是最后解附加的标量方程。隐式解和显示解的区别在于线性耦合方程的方式不同。 Fluent默认使用分离求解器,但是对于高速可压流动,强体积力导致 的强烈耦合流动(流体流动耦合流体换热耦合流体的混合,三者相互耦合的过程—文档整理者注)(浮力或者旋转力),或者在非常精细的网格上的流动,需要考虑隐式解。这一解法耦合了流动和能量方程, 收敛很快。%%% (2)、其他求解器的选择 在实际问题中,除了要计算流场,有时还要计算温度场或者浓度场等,因此还需要其他的模型。主要的模型有: Multiphase(多相流动)viscous(层流或湍流)energy(是否考虑传热)species(反应及其传热相关) (3)操作环境的设置 Define→operation→condition

FLUENT UDF 教程

FLUENT UDF 教程 第一章. 介绍 本章简要地介绍了用户自定义函数(UDF)及其在Fluent中的用法。在1.1到1.6节中我们会介绍一下什么是UDF;如何使用UDF,以及为什么要使用UDF,在1.7中将一步步的演示一个UDF例子。 1.1 什么是UDF? 1.2 为什么要使用UDF? 1.3 UDF的局限 1.4 Fluent5到Fluent6 UDF的变化 1.5 UDF基础 1.6 解释和编译UDF的比较 1.7一个step-by-stepUDF例子 1.1什么是UDF? 用户自定义函数,或UDF,是用户自编的程序,它可以动态的连接到Fluent求解器上来提高求解器性能。用户自定义函数用C语言编写。使用DEFINE宏来定义。UDF中可使用标准C 语言的库函数,也可使用Fluent Inc.提供的预定义宏,通过这些预定义宏,可以获得Flu ent求解器得到的数据。 UDF使用时可以被当作解释函数或编译函数。解释函数在运行时读入并解释。而编译UDF则在编译时被嵌入共享库中并与Fluent连接。解释UDF用起来简单,但是有源代码和速度方面的限制不足。编译UDF执行起来较快,也没有源代码限制,但设置和使用较为麻烦。 1.2为什么要使用UDF? 一般说来,任何一种软件都不可能满足每一个人的要求,FLUENT也一样,其标准界面及功能并不能满足每个用户的需要。UDF正是为解决这种问题而来,使用它我们可以编写FLUEN T代码来满足不同用户的特殊需要。当然,FLUENT的UDF并不是什么问题都可以解决的,在下面的章节中我们就会具体介绍一下FLUENT UDF的具体功能。现在先简要介绍一下UDF的一些功能: 定制边界条件,定义材料属性,定义表面和体积反应率,定义FLUENT输运方程中的源项,用户自定义标量输运方程(UDS)中的源项扩散率函数等等。λ 在每次迭代的基础上调节计算值λ 方案的初始化λ (需要时)UDF的异步执行λ 后处理功能的改善λ FLUENT模型的改进(例如离散项模型,多项混合物模型,离散发射辐射模型)λ 由上可以看出FLUENT UDF并不涉及到各种算法的改善,这不能不说是一个遗憾。当然为了源代码的保密我们还是可以理解这样的做法的。其实,如果这些代码能够部分开放,哪怕就一点点,我想FLUENT会像LINUX一样发展更为迅速,使用更为广泛。遗憾的是,从目前来看,这只是一种幻想。什么时候中国人可以出自己的精品? 1.3 UDF的局限 尽管UDF在FLUENT中有着广泛的用途,但是并非所有的情况都可以使用UDF。UDF并不能访

fluent中文简明教程

第一章Fluent 软件的介绍 fluent 软件的组成: 软件功能介绍: GAMBIT 专用的CFD 前置处理器(几何/网格生成) Fluent4.5 基于结构化网格的通用CFD 求解器 Fluent6.0 基于非结构化网格的通用CFD 求解器 Fidap 基于有限元方法的通用CFD 求解器 Polyflow 针对粘弹性流动的专用CFD 求解器 Mixsim 针对搅拌混合问题的专用CFD 软件 Icepak 专用的热控分析CFD 软件 软件安装步骤: 前 处 理 gambit 软 件 Fluent6.0 Fluent5.5&4.5 Fidap Polyflow Mixsim Icepack 通用软件 专用软件

step 1: 首先安装exceed软件,推荐是exceed6.2版本,再装exceed3d,按提示步骤完成即可,提问设定密码等,可忽略或随便填写。 step 2: 点击gambit文件夹的setup.exe,按步骤安装; step 3: FLUENT和GAMBIT需要把相应license.dat文件拷贝到FLUENT.INC/license目录下; step 4:安装完之后,把x:\FLUENT.INC\ntbin\ntx86\gambit.exe命令符拖到桌面(x为安装的盘符); step 5: 点击fluent源文件夹的setup.exe,按步骤安装; step 6: 从程序里找到fluent应用程序,发到桌面上。 注:安装可能出现的几个问题: 1.出错信息“unable find/open license.dat",第三步没执行; 2.gambit在使用过程中出现非正常退出时可能会产生*.lok文件,下次使用不能打开该工作文件时,进入x:\FLUENT.INC\ntbin\ntx86\,把*.lok文件删除即可; 3.安装好FLUENT和GAMBIT最好设置一下用户默认路径,推荐设置办法,在非系统分区建一个目录,如d:\users a)win2k用户在控制面板-用户和密码-高级-高级,在使用fluent用户的配置文件 修改本地路径为d:\users,重起到该用户运行命令提示符,检查用户路径是否修改; b)xp用户,把命令提示符发送到桌面快捷方式,右键单击命令提示符快捷方式在快捷方式-起始位置加入D:\users,重起检查。 几种主要文件形式: jou文件-日志文档,可以编辑运行; dbs文件-gambit工作文件; msh文件-从gambit输出得网格文件; cas文件-经fluent定义后的文件; dat文件-经fluent计算数据结果文件。 第二章专用的CFD前置处理器——Gambit GAMBIT软件是面向CFD的前处理器软件,它包含全面的几何建模能力和功能强大的网格划分工具,可以划分出包含边界层等CFD特殊要求的高质量的网格。GAMBIT可以生成FLUENT5、FLUENT4.5、FIDAP、POL YFLOW等求解器所需要的网格。Gambit软件将功能强大的几何建模能力和灵活易用的网格生成技术集成在一起。使用Gambit软件,将大大减小CFD应用过程中,建立几何模型和流场和划分网格所需要的时间。用户可以直接使用Gambit软件建立复杂的实体模型,也可以从主流的CAD/CAE系统中直接读入数据。Gambit软件高度自动化,所生成的网格可以是非结构化的,也可以是多种类型组成的混合网格。 一. Gambit图形用户界面:

FLUENT学习笔记

模拟分离的两个区域内的传热 如果用户的传热计算域涉及到由固体区域或某个壁面分开的两个流动区域(如图11.2.2所示),那么,就需要仔细的设定此计算模型: ● 在任一个流动区域都不能使用outflow 边界条件 ● 通过对每个计算域设定不同的流体介质,用户可以创建单独的流体介质属性(但是,对 于需要组分计算的情况,用户只能对整个计算域设定一个单一的混合介质)。 图表 1 涉及到两个彼此分离流动的典型逆流换热 流动与传热的耦合计算 对于流动与传热耦合问题(例如,模型中包含有依赖于温度的介质属性或浮力),在计算能量方程之前,用户可以首先求解流动方程。获得收敛的流场计算结果之后,用户可以再选择能量方程,然后同时求解流动与传热方程,最终获得问题的完整解。 11.3.7多表面辐射传热模型 多表面辐射传热模型可计算出在封闭(区域)内的漫灰表面之间的辐射换热。两个表面间的辐射换热量依赖于它们的尺寸、间距和方向。这种特性可以用一个被称为“角系数(视系数)”的几何量来度量。 多表面辐射传热模型的主要假定是忽略了所有的辐射吸收、发射和散射,因此,模型中仅考虑表面之间的辐射传热。 漫灰辐射 FLUENT 中的多表面辐射换热模型假定辐射面均为漫灰表面。灰表面的辐射发射和吸收与波长无关。同时,由基尔霍夫定律[ 161]可知,(热平衡时)物体的辐射发射率等于其对黑体辐射的吸收比(αε=)。对于漫反射表面,其反射率与入射方向以及反射方向无关。 FLUENT 中使用的就是漫灰表面模型。另外,正如前文所述,对于我们所感兴趣的量来说,表面之间的辐射换热量实际上并不受到隔开这些表面的介质的影响。这样,由灰体假设,如果表面接受到一定的入射辐射(E ),那么,一部分被反射(E ρ),部分被吸收(E α),剩余的则穿过表面物体(E τ)。对于具体问题中遇到的多数表面,其对热辐射(红外谱段)是不可穿透的,因此,可以认为这些表面是非透明的。所以,我们可以忽略掉辐射的穿透率。从能量守恒有,1=+ρα,又由于εα=(发射率、黑度),因此ερ-=1 !!辐射模型只能使用分离式求解器。 一旦激活辐射模型之后,每轮迭代过程中能量方程的求解计算就会包含有辐射热流。若在设定问题时激活了辐射模型,而又希望将它禁止掉,那么,用户必须在Radiation Model 面板中选定Off 选项。

Fluent UDF 中文教程UDF第7章 编译与链接

第七章UDF的编译与链接 编写好UDF件(详见第三章)后,接下来则准备编译(或链接)它。在7.2或7.3节中指导将用户编写好的UDF如何解释、编译成为共享目标库的UDF。 _ 第 7.1 节: 介绍 _ 第 7.2 节: 解释 UDF _ 第 7.3 节: 编译 UDF 7.1 介绍 解释的UDF和编译的UDF其源码产生途径及编译过程产生的结果代码是不同的。编译后的UDF由C语言系统的编译器编译成本地目标码。这一过程须在FLUENT运行前完成。在FLUENT运行时会执行存放于共享库里的目标码,这一过程称为“动态装载”。 另一方面,解释的UDF被编译成与体系结构无关的中间代码或伪码。这一代码调用时是在内部模拟器或解释器上运行。与体系结构无关的代码牺牲了程序性能,但其UDF可易于共享在不同的结构体系之间,即操作系统和FLUENT版本中。如果执行速度是所关心的,UDF文件可以不用修改直接在编译模式里运行。 为了区别这种不同,在FLUENT中解释UDF和编译UDF的控制面板其形式是不同的。解释UDF的控制面板里有个“Compile按钮”,当点击“Compile按钮”时会实时编译源码。编译UDF的控制面板里有个“Open 按钮”,当点击“Open按钮”时会“打开”或连接目标代码库运行

FLUENT(此时在运行FLUENT之前需要编译好目标码)。 当FLUENT程序运行中链接一个已编译好的UDF库时,和该共享库相关的东西都被存放到case文件中。因此,只要读取case文件,这个库会自动地链接到FLUENT处理过程。同样地,一个已经经过解释的UDF文件在运行时刻被编译,用户自定义的C函数的名称与内容将会被存放到用户的case文件中。只要读取这个case文件,这些函数会被自动编译。 注:已编译的UDF所用到的目标代码库必须适用于当前所使用的计算机体系结构、操作系统以及FLUENT软件的可执行版本。一旦用户的FLUENT升级、操作系统改变了或者运行在不同的类型的计算机,必须重新编译这些库。 UDF必须用DEFINE宏进行定义,DEFINE宏的定义是在udf.h文件中。因此,在用户编译UDF之前,udf.h文件必须被放到一个可被找到的路径,或者放到当前的工作目录中。 udf.h文件放置在: path/Fluent.Inc/fluent6.+x/src/udf.h 其中path是Fluent软件的安装目录,即Fluent.Inc目录。X代表了你所安装的版本号。 通常情况下,用户不应该从安装默认目录中复制udf.h文件。编译器先在当前目录中寻找该文件,如果没找到,编译器会自动到/src目录下寻找。如果你升级了软件的版本,但是没有从你的工作目录中删除旧版本的udf.h文件,你则不能访问到该文件的最新版本。在任何情

FLUENT中文全教程

FLUEN教程 赵玉新 I、目录 第一章、开始第二章、操作界面第三章、文件的读写第四章、单位系统第五章、读入和操作网格第六章、边界条件第七章、物理特性第八章、基本物理模型第九章、湍流模型第十章、辐射模型第十一章、化学输运与反应流第十二章、污染形成模型第十三章、相变模拟第十四章、多相流模型第十五章、动坐标系下的流动第十六章、解算器的使用第十七章、网格适应第十八章、数据显示与报告界面的产生第十九章、图形与可视化第二十章、Alphanumeric Reporting 第二十一章、流场函数定义第二十二章、并行处理第二十三章、自定义函数第二十四章、参考向导第二十五章、索引( Bibliograp)hy 第二十六章、命令索引 II、如何使用该教程 概述 本教程主要介绍了FLUEN的使用,其中附带了相关的算例,从而能够使每一位使用者在学习的同时积累相关的经验。本教程大致分以下四个部分:第一部分包括介绍信息、用户界面信息、文件输入输出、单位系统、网格、边界条件以及物理特性。第二和第三部分包含物理模型,解以及网格适应的信息。第四部分包括界面的生成、后处理、图形报告、并行处理、自定义函数以及FLUEN所使用的流场函数与变量的定义。下面是各章的简略概括第一部分: z 开始使用:本章描述了FLUEN的计算能力以及它与其它程序的接口。介绍了如何对具体的应用选择适当的解形式,并且概述了问题解决的大致步骤。在本章中,我们给出 了一个可以在你自己计算机上运行的简单的算例。 z 使用界面:本章描述了用户界面、文本界面以及在线帮助的使用方法。同时也提供了远程处理与批处理的一些方法。(请参考关于特定的文本界面命令的在线帮助) z 读写文件:本章描述了FLUENT以读写的文件以及硬拷贝文件。 z单位系统:本章描述了如何使用FLUENTS提供的标准与自定义单位系统。 z 读和操纵网格:本章描述了各种各样的计算网格来源,并解释了如何获取关于网格的诊 断信息,以及通过尺度化(scale、分区(partition等方法对网格的修改。本章还描述了非一致 (nonconform网格的使用. z 边界条件:本章描述了FLUENT提供的各种类型边界条件,如何使用它们,如何定义它们and how to define boundary profiles and volumetric sources. z 物理特性:本章描述了如何定义流体的物理特性与方程。FLUENTS用这些信息来处理你的输入信息。 第二部分: z 基本物理模型:本章描述了FLUENT算流体流动和热传导所使用的物理模型(包括自然对流、周期流、热传导、swirling旋转流、可压流、无粘流以及时间相关流)。以 及在使用这些模型时你需要输入的数据,本章也包含了自定义标量的信息。 z 湍流模型:本章描述了FLUENT湍流模型以及使用条件。 z 辐射模型:本章描述了FLUENT热辐射模型以及使用条件。 z 化学组分输运和反应流:本章描述了化学组分输运和反应流的模型及其使用方法。本章详细的叙述了prePD 的使用方法。 z 污染形成模型:本章描述了NO和烟尘的形成的模型,以及这些模型的使用方法。 第三部分:

Fluent中的UDF详细中文教程(7)

第七章 UDF的编译与链接 编写好UDF件(详见第三章)后,接下来则准备编译(或链接)它。在7.2或7.3节中指导将用户编写好的UDF如何解释、编译成为共享目标库的UDF。 _ 第 7.1 节: 介绍 _ 第 7.2 节: 解释 UDF _ 第 7.3 节: 编译 UDF 7.1 介绍 解释的UDF和编译的UDF其源码产生途径及编译过程产生的结果代码是不同的。编译后的UDF由C语言系统的编译器编译成本地目标码。这一过程须在FLUENT运行前完成。在FLUENT运行时会执行存放于共享库里的目标码,这一过程称为“动态装载”。 另一方面,解释的UDF被编译成与体系结构无关的中间代码或伪码。这一代码调用时是在内部模拟器或解释器上运行。与体系结构无关的代码牺牲了程序性能,但其UDF可易于共享在不同的结构体系之间,即操作系统和FLUENT版本中。如果执行速度是所关心的,UDF文件可以不用修改直接在编译模式里运行。 为了区别这种不同,在FLUENT中解释UDF和编译UDF的控制面板其形式是不同的。解释UDF的控制面板里有个“Compile按钮”,当点击“Compile按钮”时会实时编译源码。编译UDF的控制面板里有个“Open 按钮”,当点击“Open按钮” 时会“打开”或连接目标代码库运行

FLUENT(此时在运行FLUENT之前需要编译好目标码)。 当FLUENT程序运行中链接一个已编译好的UDF库时,和该共享库相关的东西都被存放到case文件中。因此,只要读取case文件,这个库会自动地链接到FLUENT处理过程。同样地,一个已经经过解释的UDF文件在运行时刻被编译,用户自定义的C函数的名称与内容将会被存放到用户的case文件中。只要读取这个case文件,这些函数会被自动编译。 注:已编译的UDF所用到的目标代码库必须适用于当前所使用的计算机体系结构、操作系统以及FLUENT软件的可执行版本。一旦用户的FLUENT升级、操作系统改变了或者运行在不同的类型的计算机,必须重新编译这些库。 UDF必须用DEFINE宏进行定义,DEFINE宏的定义是在udf.h文件中。因此,在用户编译UDF之前,udf.h文件必须被放到一个可被找到的路径,或者放到当前的工作目录中。 udf.h文件放置在: path/Fluent.Inc/fluent6.+x/src/udf.h 其中path是Fluent软件的安装目录,即Fluent.Inc目录。X代表了你所安装的版本号。 通常情况下,用户不应该从安装默认目录中复制udf.h文件。编译器先在当前目录中寻找该文件,如果没找到,编译器会自动到/src目录下寻找。如果你升级了软件的版本,但是没有从你的工作目录中删除旧版本的udf.h文件,你则不能访问到该文件的最新版本。在任何情

Fluent动画制作教程

二维流体动画实例软件版本 Fluent-. Gambit-. 具体步骤 1.在Fluent中导入已经定义好的各种参数条件的cas文件 开启Fluent,选择2ddp,在Fluent中,“File”—“Read”—“Case&Data”,选择文件夹“Fluent-File”中的“”文件。这个二维模型的制作过程在PDF中有说明,上面的文件是已经做好的模型。 2.初始化数据 在Fluent中,“Solve”—“Initialize”—“Initialize”,点击“Init”,初始化完后点击“Close”关闭对话框,如图1所示。 图1 初始化数据 3.定义动画 在Fluent中,“Solve”—“Animate”—“Define”,弹出Solution Animation对话框,如图2所示的设置。 图2 动画设置对话框 接下来点击图2对话框中的“Define”,弹出Animation Sequence对话框,在“Storage Type”中选择“PPM Image”,在“Storage Directory”中设置动画序列的保存路径,注意路径不得有中文,在“Display Type”中选择“Contours”,弹出Contours对话框,按自己的显示需要设置好点击或直接点击“Display”弹出显示窗口,再点击“Close”完成等值线的设置,想要更改Display Type的话则点击“Properties”即可,分别如图3~5所示。 图3 动画序列对话框设置 图4 显示窗口 图5 等值线设置 设置完成后,在Animation Sequence对话框中点击OK完成设置,再在“Solution Animation”对话框中点击OK完成设置。 4.进行迭代运算 “Solve”—“Iterate”,弹出迭代运算对话框,迭代20次,如图6所示,迭代过程中,每迭代一次,会保存一帧动画到之前设定的保存路径中。 图6 迭代运算对话框 5.播放动画 关闭迭代运算对话框,通过“Solve”—“Animate”—“Playback”打开Playback对话框,如图7所示。 图7 Playback对话框 点击播放即可,而后点击下边的“Write”即可在设定的保存目录中生成一个“”文件,下次打开Playback对话框直接Read这个cxa文件即可播放动画,动画其中几幅图如图8~10所示。 图8 动画1 图9 动画2 图10 动画3

Fluent UDF教程

UDF中文教程

目录 第一章. 介绍 (4) 1.1什么是UDF? (4) 1.2为什么要使用UDF? (4) 1.3 UDF的局限 (5) 1.4Fluent5到Fluent6UDF的变化 (5) 1.5 UDF基础 (6) 1.6 解释和编译UDF的比较 (8) 1.7一个step-by-stepUDF例子 (9) 第二章.UDF的C语言基础 (16) 2.1引言 (16) 2.2注释你的C代码 (17) 2.3FLUENT的C数据类型 (17) 2.4常数 (17) 2.5变量 (17) 2.6自定义数据类型 (20) 2.7强制转换 (20) 2.8函数 (20) 2.9 数组 (20) 2.10指针 (21) 2.11 控制语句 (22) 2.12常用的C运算符 (24) 2.13 C库函数 (24) 2.14 用#define实现宏置换 (26) 2.15 用#include实现文件包含 (27) 2.16 与FORTRAN 的比较 (27) UDF 第3章写UDF (27) 3.1概述(Introduction) (28) 3.2写解释式UDF的限制 (28) 3.3 FLUENT求解过程中UDF的先后顺序 (29) 3.4 FLUENT 网格拓扑 (31) 3.5 FLUENT数据类型 (32) 3.6 使用DEFINE Macros定义你的UDF (33) 3.7在你的UDF源文件中包含udf.h文件 (34) 3.8在你的函数中定义变量 (34) 3.9函数体(Functin Body) (35) 3.10 UDF任务(UDF Tasks) (35) 3.11为多相流应用写UDF (41) 3.12在并行下使用你的UDF (50) 第四章DEFINE宏 (51) 4.1 概述 (51) 4.2 通用解算器DEFINE宏 (52) 4.3 模型指定DEFINE宏 (61)

Fluent_动画制作教程

二维流体动画实例 软件版本 Fluent-6.3.26. Gambit-2.2.30. 具体步骤 1.在Fluent中导入已经定义好的各种参数条件的cas文件 开启Fluent,选择2ddp,在Fluent中,“File”—“Read”—“Case&Data”,选择文件夹“Fluent-File”中的“mix-data.cas”文件。这个二维模型的制作过程在PDF中有说明,上面的文件是已经做好的模型。 2.初始化数据 在Fluent中,“Solve”—“Initialize”—“Initialize”,点击“Init”,初始化完后点击“Close”关闭对话框,如图1所示。 图1 初始化数据 3.定义动画 在Fluent中,“Solve”—“Animate”—“Define”,弹出Solution Animation 对话框,如图2所示的设置。

图2 动画设置对话框 接下来点击图2对话框中的“Define”,弹出Animation Sequence对话框,在“Storage Type”中选择“PPM Image”,在“Storage Directory”中设置动画序列的保存路径,注意路径不得有中文,在“Display Type”中选择“Contours”,弹出Contours对话框,按自己的显示需要设置好点击或直接点击“Display”弹出显示窗口,再点击“Close”完成等值线的设置,想要更改Display Type的话则点击“Properties”即可,分别如图3~5所示。 图3 动画序列对话框设置

图4 显示窗口 图5 等值线设置 设置完成后,在Animation Sequence对话框中点击OK完成设置,再在

Fluent建模教程

目录 1.理论知识 1.1Gambit软件的介绍 1.2Fluent软件的介绍 1.3Exceed.13+Gambit.V 2.4.06+Fluent.6.3安装介绍 2.建模过程 2.1Gambit 启动 2.2建立几何模型 3.网格划分 3.1划分网格 3.2检查网格划分情况 3.3设置边界类型 3.4输出网格文件 4.计算求解 4.1检查网格并定义长度单位 4.2设置计算模型 4.3设置流体材料属性 4.4设置边界条件 4.5求解初始化 4.6设置残差监视 4.7保存case文件 4.8求解计算 4.9保存计算结果 5.后期处理 5.1读入case和data文件 5.2显示网格 5.3创建相关面 5.4计算各单电池获得的质量流率 5.5绘制图表 6.参考链接

第一章理论知识 1.1Gambit软件的介绍 GAMBIT是为了帮助分析者和设计者建立并网格化计算流体力学(CFD)模型和其它科学应用而设计的一个软件包。GAMBIT通过它的用户界面(GUI)来接受用户的输入。GAMBIT GUI简单而又直接的做出建立模型、网格化模型、指定模型区域大小等基本步骤,然而这对很多的模型应用已是足够了。 面向CFD分析的高质量的前处理器,其主要功能包括几何建模和网格生成。由于GAMBIT本身所具有的强大功能,以及快速的更新,在目前所有的CFD前处理软件中,GAMBIT稳居上游。 GAMBIT软件具有以下特点: ☆ACIS内核基础上的全面三维几何建模能力,通过多种方式直接建立点、线、面、体,而且具有强大的布尔运算能力,ACIS内核已提高为ACIS R12。该功能大大领先于其它CAE软件的前处理器; ☆可对自动生成的Journal文件进行编辑,以自动控制修改或生成新几何与网格; ☆可以导入PRO/E、UG、CATIA、SOLIDWORKS、ANSYS、PATRAN等大多数CAD/CAE软件所建立的几何和网格。导入过程新增自动公差修补几何功能,以保证GAMBIT与CAD软件接口的稳定性和保真性,使得几何质量高,并大大减轻工程师的工作量; ☆新增PRO/E、CATIA等直接接口,使得导入过程更加直接和方便; ☆强大的几何修正功能,在导入几何时会自动合并重合的点、线、面;新增几何修正工具条,在消除短边、缝合缺口、修补尖角、去除小面、去除单独辅助线和修补倒角时更加快速、自动、灵活,而且准确保证几何体的精度; ☆G/TURBO模块可以准确而高效的生成旋转机械中的各种风扇以及转子、定子等的几何模型和计算网格; ☆强大的网格划分能力,可以划分包括边界层等CFD特殊要求的高质量网格。GAMBIT中专用的网格划分算法可以保证在复杂的几何区域内直接划分出高质量的四面体、六面体网格或混合网格; ☆先进的六面体核心(HEXCORE)技术是GAMBIT所独有的,集成了笛卡尔网格和非结构网格的优点,使用该技术划分网格时更加容易,而且大大节省网格数量、提高网格质量; ☆居于行业领先地位的尺寸函数(Size function)功能可使用户能自主控制网格的生成过程以及在空间上的分布规律,使得网格的过渡与分布更加合理,最大限度地满足CFD分析的需要;

Fluent中的UDF详细中文教程(8)

第八章 在FLUENT中激活你的UDF 一旦你已经编译(并连接)了你的UDF,如第7章所述,你已经为在你的FLUENT模型中使用它做好了准备。根据你所使用的UDF,遵照以下各节中的指导。 z8.1节激活通用求解器UDF z8.2节激活模型明确UDF z8.3节激活多相UDF z8.4节激活DPM UDF 8.1 激活通用求解器UDF 本节包括激活使用4.2节中宏的UDF的方法。 8.1.1 已计算值的调整 一旦你已经使用7.2节和7.3节中概括的方法之一编译(并连接)了调整已计算值UDF,这一UDF在FLUENT中将成为可见的和可选择的。你将需要在User-Defined Function Hooks面板的Adjust Function下拉菜单(图8.1.1)中选择它。 调整函数(以DEFINE_ADJUST宏定义)在速度、压力及其它数量求解开始之前的一次迭代开始的时候调用。例如,它可以用于在一个区域内积分一个标量值,并根据这一结果调整边界条件。有关DEFINE_ADJUST宏的更多内容将4.2.1节。调整函数在什么地方适合求解器求解过程方面的信息见3.3节。 8.1.2 求解初始化 一旦你已经使用7.2节和7.3节中概括的方法之一编译(并连接)了求解初始化UDF,这一UDF在FLUENT中将成为可见的和可选择的。你将需要在User-Defined Function Hooks面板的Initialization Function下拉菜单(图8.1.1)中选择它。

求解初始化UDF使用DEFINE_INIT宏定义。细节见4.2.2节。 8.1.3 用命令执行UDF 一旦你已经使用7.2节和7.3节中概括的方法之一编译(并连接)了你的UDF,你可以在Execute UDF On Demand面板中选择它(图8.1.2),以在某个特定的时间执行这个UDF,而不是让FLUENT在整个计算中执行它。 点击Execute按纽让FLUENT立即执行它。 以命令执行的UDF用DEFINE_ON_COMMAND宏定义,更多细节见4.2.3节 8.1.4 从case和data文件中读出及写入 一旦你已经使用7.2节和7.3节中概括的方法之一编译(并连接)了一个将定制片段从case 和data文件中读出或写入的UDF,这一UDF在FLUENT中将成为可见的和可选择的。你将需要在User-Defined Function Hooks面板(图8.1.1)中选择它。

Fluent建模教程讲解

目录1.理论知识 1.1Gambit软件的介绍 1.2Fluent软件的介绍 1.3Exceed安装介绍 2.建模过程 2.1Gambit 启动 2.2建立几何模型 3.网格划分 4.1划分网格 4.2检查网格划分情况 4.3设置边界类型 4.4输出网格文件 4.计算求解 5.1检查网格并定义长度单位 5.2设置计算模型 5.3设置流体材料属性 5.4设置边界条件 5.5求解初始化 5.6设置残差监视 5.7保存case文件 5.8求解计算 5.9保存计算结果 5.后期处理 第一章读入case和data文件 第二章显示网格

第三章创建相关面 第四章计算各单电池获得的质量流率 第五章绘制图表 6.参考链接 第一章理论知识 1.1Gambit软件的介绍 GAMBIT是为了帮助分析者和设计者建立并网格化计算流体力学(CFD)模型和其它科学应用而设计的一个软件包。GAMBIT通过它的用户界面(GUI)来接受用户的输入。GAMBIT GUI简单而又直接的做出建立模型、网格化模型、指定模型区域大小等基本步骤,然而这对很多的模型应用已是足够了。 面向CFD分析的高质量的前处理器,其主要功能包括几何建模和网格生成。由于GAMBIT本身所具有的强大功能,以及快速的更新,在目前所有的CFD前处理软件中,GAMBIT稳居上游。 GAMBIT软件具有以下特点: ☆ ACIS内核基础上的全面三维几何建模能力,通过多种方式直接建立点、线、面、体,而且具有强大的布尔运算能力,ACIS内核已提高为ACIS R12。该功能大大领先于其它CAE软件的前处理器; ☆可对自动生成的Journal文件进行编辑,以自动控制修改或生成新几何与网格; ☆可以导入PRO/E、UG、CATIA、SOLIDWORKS、ANSYS、PATRAN等大多数CAD/CAE 软件所建立的几何和网格。导入过程新增自动公差修补几何功能,以保证GAMBIT与CAD软件接口的稳定性和保真性,使得几何质量高,并大大减轻工程师的工作量; ☆新增PRO/E、CATIA等直接接口,使得导入过程更加直接和方便; ☆强大的几何修正功能,在导入几何时会自动合并重合的点、线、面;新增几何修正工具条,在消除短边、缝合缺口、修补尖角、去除小面、去除单独辅助线和修

相关主题
文本预览
相关文档 最新文档