当前位置:首页 >> 能源/化工 >>

FLUENT udf中文资料ch5


Chapter 5. Accessing FLUENT Solver Variables Using Macros 第五章 使用宏访问(读写)流体求解器的变量 翻译跟没翻译一样
This chapter provides predefined macros that you can use to access variables from the FLUENT solv

er. _ Section 5.1: Introduction _ Section 5.2: Cell Macros _ Section 5.3: Face Macros _ Section 5.4: Geometry Macros _ Section 5.5: Node Macros _ Section 5.6: Multiphase Macros _ Section 5.7: DPM Macros _ Section 5.8: NOx Macros 这章提供了预先确定的宏来访问FLUENT的求解器中的变量。 —5.1 介绍 —5.2 单元格宏 —5.3 面宏 —5.4 几何宏 —5.5 节点宏 —5.6 多相宏 —5.7 DPM宏 —5.8 NOx宏

5.1 Introduction

Fluent Inc. has provided you with a set of predefined functions that you can use to access data from the FLUENT solver. These functions are primarily implemented in the code as macros. The macros listed in this chapter are defined in header files such as mem.h, metric.h, and dpm.h. The udf.h file contains definitions for DEFINE macros, as well as #include directives for most of the solver access macro header files found in this chapter. Therefore, including udf.h in your source code file will also result in the inclusion of solver access .h files. Some examples of solver data you can access using predefined macros are: _ solution variables and their derivatives (e.g., velocity, temperature, turbulence quantities) _ geometry variables (e.g., coordinates, areas, volumes) _ grid and node variables (e.g., node velocities) _ material property variables (e.g., density, viscosity, conductivity) _ discrete phase model variables

5.1 介绍

Fluent 系列软件提供了一系列预先设计的方程来从求解器中读写数据。这些方程以 宏的形式存放在代码中。这章的所列出的宏是被定义在扩展名为.h文件里的。例如 mem.h, metric.h, 和dpm.h。在udf.h文件中包含了宏的定义和这章中所用到的大部分宏 文件和它的说明。因此如果在你的原程序中包含了udf.h文件,那么也就包含了各种 的求解器读写文件了。(.h文件)。 下面列出了一些使用预先设计的宏来读写数据类型: ——溶液变量及它们的组合变量(速度,温度,湍流量等) ——几何变量(坐标,面积,体积等) ——网格和节点变量(节点速度等) ——材料性质变量(密度,粘度,导电性等) ——分散相模拟变量。 For all types of data except specific heat, the word \access" refers to reading and writing data. In the case of specific heat, however, data can be read but cannot be modified. In the following sections, each macro is listed with its arguments, argument types, and returned value. Arguments belong to the following data types: cell_t c cell identifier face_t f face identifier Thread *t pointer to a thread Thread **pt pointer to an array of phase threads Int i integer index Node *node pointer to a node Arguments are either inputs to a function, or are outputs. Each macro returns a value, which either is output back to the solver (as an argument), or is available for assignment in your function. 对于除了明确的热量以外的所有数据而言,access这个词还指读写数据。然而对于 确定的热量的数据是只能读不能改的在下面章节中列出了每一个宏的包含的参数, 参数的类型和返回值。其中参数属于下面的数据类型。 cell_t c 单元格标识符 face_t 面积标识符 线指示器

Thread *t

Thread **pt 象限矩阵指示器 Int I 整数 Node *node 节点指示器

参数既不是方程的输入也不是方程的输出。每一个宏返回一个值,这个值要么作为 一个参数以输出值的形式返回求解器,要么是你方程中可用参数。 For example, the macro C_T real temp; temp = C_T(c,t); has two arguments, cell identifier c and thread pointer t. These arguments are passed from the FLUENT solver to the function. C T returns the real value of temperature, which can then be assigned to a variable in your UDF (temp in this example). 例如宏C_T real temp; temp = C_T(c,t); C_T有两个参数,单元标识符C和线指示器t。这些参数从FLUENT求解器中返回到方 程中。C_T返回一个温度的实数值,这个值能够分配到的你的UDF变量中去。(比如 这个例子中的temp) C_CENTROID(x,c,t); has three arguments: x, c, and t. In this case the cell identifier c and thread pointer t are input arguments, while the array x (the cell centroid) is output to the FLUENT solver as an argument. C_CENTROID(x,c,t)有三个参数,x,c,t。在这里单元标识符C和线指示器是输入参数,而 矩阵x(单元格的质心)是以参数形式输出到FLUENT求解器中的。

5.2 Cell Macros

The macros listed in this section are real variables returned by the solver, and are de_ned on a cell. These cell variables are available in both the segregated and the coupled solvers. Definitions for these cell macros can be found in the referenced header files (e.g., mem.h). 5.2 单元格宏 这章所列出的宏是由求解器返回的实数变量,并且这些变量都是定义在一个单元格 中的。这些单元格变量在单独的或是联合的求解器中都能得到。(segregated and the coupled solvers.) 这些单元格宏的定义在相关的扩展名为(.h)的文件中可以得到。(例如mem.h等)

5.2.1 Macros for Accessing Flow Variables

Macros for accessing flow variables in FLUENT are shown in Table 5.2.1. Note that the G, RG, M1, and M2 suffixes that are shown for the cell temperature macro (C T) can be applied to all of the solver variable macros listed in Table 5.2.1 with the exception of cell pressure (C P). These suffixes correspond to gradient vector, reconstruction gradient vector, previous time step, and 2nd previous time step, respectively. In the case of cell pressure, the gradient vector and components are derived using C DP instead of C P G. A description of each suffix and its usage is presented in the sections below. 5.2.1 用来读写流体变量的宏。

在FLUENT中可以用来读写流体变量的宏在表5.2.1中列出,注意加了_G,_ RG, _M1, 和 _M2这些下标的单元格温度的宏可以应用于表5.2.1 中的所有求解器的变量中,但是 除了单元格压力(C-P)。这些下标分别表示的是矢量梯度,改造的矢量梯度,前一 次的步长,和前两次的步长。而对于单元格压力,它的矢量梯度和相应的分量是使 用C_DP 得到的而不是C_P_G。每一个下标的描述和用法在下面介绍。 表 5.2.1: 在mem.h文件中的流体变量宏 名称(参数) C_T(c,t) C_T_G(c,t) C_T_G(c,t)[i] C_T_RG(c,t) C_T_RG(c,t)[i] C_T_M1(c,t) C_T_M2(c,t) C_P(c,t) ** C_DP in sg mem.h C_DP(c,t) C_DP(c,t)[i] C_U(c,t) C _V(c,t) C_W(c,t) C_H(c,t) C_YI(c,t,i) C_K(c,t) C_D(c,t) C_O(c,t) 参数类型 cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t, int i cell t c, Thread *t cell t c, Thread *t, int i cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t, int I cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t, int i cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t 返回值 温度 温度梯度矢量 温度梯度矢量的分量 改造后的温度梯度矢量 改造后的温度梯度矢量的 分量 温度的前一次步长 温度的前二次步长 压力 压力梯度矢量 压力梯度矢量的分量 u 方向的速度 v方向的速度 w方向的速度 焓 物质质量分数 湍流运动能 湍流运动能的分散 速率 确定的分散速率

Accessing Gradient (G) Vectors and Components

You can add the the G suffix to your macro to access the gradient (G) vector of a variable

quantity. For example, C_T_G(c,t); /* returns the cell temperature gradient vector. */ returns the temperature gradient vector. Note that gradient variables are available only when the equation for that variable is being solved. For example, if you are defining a source term for energy, your UDF can access the cell temperature gradient (using C T G), but it can't get access to the x-velocity gradient (using C U G). Therefore, if you are setting up a user-defined scalar transport equation, some gradients may not be available. This is because the solver continually removes from memory data that it doesn't need. You can prevent the solver from freeing up memory by issuing the text command solve/set/expert, and then answering yes to the question, Keep temporary solver memory from being freed?. If you do this, all of the gradient data are retained, but the calculation requires more memory to run. 读写梯度矢量和其分量 你可以在你的宏中加入下标_G来得到梯度矢量和它的分量,例如: C_T_G(c,t); /* 返回单元格的温度梯度矢量. */ 注意只有当已经求解出包含这个变量的方程时才能得到梯度变量。例如如果你定义 了一个关于能量的原程序,那么你的UDF可以读写单元格的温度梯度(使用C_ T _G) 但是你却不能读写X方向的速度分量(使用C_ U _G)。而且,如果你建立了一个由 使用者确定的方式转移方程,那么你就不能得到一部分的梯度了。这是因为求解器 不断的移走它不需要的数据。你可以使用下面的方法来阻止存储器释放记忆:发出 文本命令save/set/expert ,然后对计算机提出的“是否阻止暂时的求解器记忆释放”这 一提问回答“是”。按照这种做法就可以保留所有的梯度数据,但是这种计算需要 更多的内存。 You can access a component of a gradient vector by specifying it as an argument in the gradient vector call (0 for the x component; 1 for y; and 2 for z). For example, C_T_G(c,t)[0]; /* returns the x-component of the cell temperature */ /* gradient vector */ returns the x component of the temperature gradient vector. Note that in Table 5.2.1, the gradient and component macros are shown only for temperature but can be extended to all of the variables except pressure. You must use C DP to access the cell pressure gradient vector and components, as shown in Table 5.2.1. 在调用梯度矢量时把某一分量作为参数, 这样就可以得到梯度分量了, (参数0代表 X方向的分量,1代表Y方向的分量,2代表Z方向的分量)例如: C_T_G(c,t)[0]; /* 返回温度梯度X方向的分量 */ 注意在表5.2.1中虽然只列出了温度梯度和其分量求解的宏,但是却可以扩展到除了 压力以外的所有变量中去,对于压力你只能按照表5.2.1中的方法使用C_DP来得到压 力梯度和其分量。

Accessing Reconstruction Gradient (RG) Vectors and Components

In the same way as the gradient, you can add the RG su_x to your macro to access the

reconstruction gradient (RG) vector and components of a variable quantity. By specifying the appropriate integer (0 for the x component; 1 for y; and 2 for z) as an argument, you can obtain the desired vector component. Reconstruction gradients are typically used when you want to implement your own interpolation scheme. Reconstruction gradient and component macros are shown only for temperature in Table 5.2.1, but can be extended to all of the variables. Note that RG variables, like gradient variables, are available only when the equation for that variable is being solved. 读写改造过的梯度矢量和其分量 和梯度一样的方式,你可以通过加RG的下标在你的宏中来得到梯度向量和其分 量。通过使用恰当的整数作为参数来获得想要的矢量分量。(参数0代表X方向的分 量,1代表Y方向的分量,2代表Z方向的分量)当你完成你自己的插补计划时可以使 用改造过的梯度。改造过的温度梯度和其分量在表5.2.1中列出了,但是可以推广到 所有的变量。注意改造过的梯度矢量和梯度矢量一样都只有在梯度方程被求解出来 时才可以得到。

Accessing Previous Time Steps

The M1 suffix can be generally applied to the macros in Table 5.2.1 to allow access to the value of the variable at the previous time step (i.e., t - _t). These data may be useful in unsteady simulations. For example, C_T_M1(c,t); /* returns value of cell temperature at previous time step*/ returns the value of the cell temperature at the previous time step. The M2 suffix can be generally applied to the macros in Table 5.2.1 to allow access to the value of the variable at the time step before the previous one (i.e., t - 2_t). These data may be useful in unsteady simulations. Previous time step macros are shown only for temperature in Table 5.2.1, but can be extended to all of the variables. 读写前一步长下的时间 在表5.2.1里的宏中加入下标_M1就可以得到前一次步长时间下(t-⊿t)的变量的值。 得到的这些数据可以在不稳定的模拟中使用。例如: C_T_M1(c,t); /*返回前一步时间下的单元格温度的值 */ 若在表5.2.1里宏的后面加上下标M2就可以得到前两次步长下的时间(t-2⊿t)。这些 数据可用与不稳定的模拟计算中。在表5.2.1中仅列出了温度的前一次步长的求法, 但是可以扩展到其它的变量中去。

5.2.2 Macros for Accessing Derivatives

The macros listed in Table 5.2.2 can be used to access velocity derivative variables. Table 5.2.2: Derivative Macros in mem.h 5.2.2读写导数的宏 在表5.2.2中列出来的宏可以用于读写由速度导数。

名称(参数)

表5.2.2 参数类型

返回值

C DUDX(c,t) C DUDY(c,t) C DUDZ(c,t) C DVDX(c,t) C DVDY(c,t) C DVDZ(c,t) C DWDX(c,t) C DWDY(c,t) C DWDZ(c,t)

cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t

velocity derivative velocity derivative velocity derivative velocity derivative velocity derivative velocity derivative velocity derivative velocity derivative velocity derivative

5.2.3 Macros for Accessing Material Properties
5.2.3存取材料性质的宏 在表5.2.3中列出的宏可以用于存取材料的性质。

The macros listed in Table 5.2.3 can be used to access material property variables.

名称(参数) C_FMEAN(c,t) C_FMEAN2(c,t) C_FVAR(c,t) C_FVAR2(c,t) C_PREMIXC(c,t) C_LAM FLAME SPEED(c,t) C_CRITICAL STRAIN RATE(c,t) C_ POLLUT(c,t,i) C_R(c,t) C_MU L(c,t) C_MU T(c,t) C_MU EFF(c,t) C_K_L(c,t) C_K_T(c,t) C_K_ EFF(c,t) C_CP(c,t) C_RGAS(c,t) C_DIFF L(c,t,i,j) C_DIFF EFF(c,t,i) C_ABS COEFF(c,t) C_SCAT COEFF(c,t)

表5.2.3在mem.h中存取材料性质的宏 参数类型 cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t, int i cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t, int i, int j cell t c, Thread *t, int i cell t c, Thread *t cell t c, Thread *t

返回值

第一次混合分数的平均值 第一次混合分数的平均值 第一次混合分数变量 第二次混合分数变量 反应过程变量 层流焰速度 临界应变速度 第i个污染物质的质量分数 密度 层流速度 湍流速度 有效粘度 热传导系数 湍流热传导系数 有效热传导系数 确定的热量 气体常数 层流物质的扩散率 物质的有效扩散率 吸附系数 扩散系数

C_NUT(c,t)

cell t c, Thread *t

湍流速度for Spalart-Allmaras

5.2.4 Macros for Accessing User-Defined Scalars and Memory

The macros listed in Table 5.2.4 can be used to access user-defined scalars and memory for cells. Table 5.2.4: User-Defined Scalar and Memory Macros for Cells in mem.h Name(Arguments) Argument Types Returns C _UDSI(c,t,i) cell t c, Thread *t, int i user-defined scalar (cell) C_UDSI M(c,t,i) cell t c, Thread *t, int i user-defined scalar previous time step (cell) C_UDSI_DIFF(c,t,i) cell t c, Thread *t, int i user-defined scalar di_usivity (cell) C_UDMI(c,t,i) cell t c, Thread *t, int i user-defined memory (cell) 5.2.4用户定义的标量和存储器的宏的读写 在表5.2.4中列出的宏可以为单元格读写用户定义的标量和存储器。 表5.2.4在mem.h文件中的可以为单元格读写用户定义的标量和存储器的宏 名称(参数) 参数类型 返回值 C _UDSI(c,t,i) cell t c, Thread *t, int i 用户定义的标量(单元格) C_UDSI M(c,t,i) cell t c, Thread *t, int i 前一次步长下用户定义的标量 (单元格) C_UDSI_DIFF(c,t,i) cell t c, Thread *t, int i 用户定义的标量的分散率 (单元格) C_UDMI(c,t,i) cell t c, Thread *t, int i 用户定义的存储器(单元格)

5.2.5 Reynolds Stress Model Macros

The macros listed in Table 5.2.5 can be used to access variables for the Reynolds stress turbulence model. Name(Arguments) Argument Types Returns C RUU(c,t) C RVV(c,t) C RWW(c,t) C RUV(c,t) C RVW(c,t) C RUW(c,t) cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t uu Reynolds stress vv Reynolds stress ww Reynolds stress uv Reynolds stress vw Reynolds stress uw Reynolds stress

5.2.5雷诺兹压力模型宏 在表5.2.5中列出了可以给雷诺兹压力模型读写变量的宏 表5.2.2在metric.h中的RSM宏 名字(参数) 参数类型 返回值 C RUU(c,t) cell t c, Thread *t uu 雷诺兹压力 C RVV(c,t) cell t c, Thread *t vv 雷诺兹压力

C RWW(c,t) C RUV(c,t) C RVW(c,t) C RUW(c,t)

cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t cell t c, Thread *t

ww 雷诺兹压力 uv雷诺兹压力s vw 雷诺兹压力 uw 雷诺兹压力

5.3 Face Macros

The macros listed in this section are defined at the boundary face of a cell and return real variables from the solver. The face variables are available in the segregated solver only. Definitions for these face macros can be found in the referenced header file (e.g., mem.h). 5.3表面宏 在这节中列出的宏是在单元格的边界面上定义的并且从求解器中返回一个真值。表 面宏仅可在偏析求解器中用。这些表面宏的定义可以在相关的(.h)文件中找到。 (如mem.h等)

5.3.1 Macros for Accessing Flow Variables

The macros listed in Table 5.3.1, access flow variables at a boundary face. Note that the direction of the flux determined by F_FLUX points out of the domain if the face is on the boundary. Table 5.3.1: Macros for Accessing Flow Variables in mem.h Name(Arguments) F R(f,t) F P(f,t) F U(f,t) F V(f,t) F W(f,t) F T(f,t) F H(f,t) F K(f t) F D(f,t) F YI(f,t,i) F FLUX(f,t) Argument Types face t f, Thread *t, face t f, Thread *t, face t f, Thread *t, face t f, Thread *t, face t f, Thread *t, face t f, Thread *t, face t f, Thread *t, face t f, Thread *t, face t f, Thread *t, face t f, Thread *t, int i face t f, Thread *t Returns density pressure u velocity v velocity w velocity temperature enthalpy turbulent kinetic energy turbulent kinetic energy dissipation rate species mass fraction mass ow rate through a boundary face

5.3.1读写流体变量的宏 在表5.3.1中列出的宏可以在边界面读写流体变量。注意如果表面在边界上那么流体 的方向是由F_FLUX决定的点指向外围空间的。

名称(参数) F_R(f,t) F_P(f,t) F_U(f,t) F_V(f,t) F_W(f,t) F_T(f,t) F_H(f,t) F_K(f t) F_D(f,t) F_YI(f,t,i) F_FLUX(f,t)

表5.3.1在mem.h中的流体变量读写的宏 参数类型 返回值 face t f, Thread *t, 密度 face t f, Thread *t, 压力 face t f, Thread *t, u方向的速度 face t f, Thread *t, v 方向的速度 face t f, Thread *t, w方向的速度 face t f, Thread *t, 温度 face t f, Thread *t, 焓 face t f, Thread *t, 湍流运动能 face t f, Thread *t, 湍流运动能的分散速率 face t f, Thread *t, int i 物质的质量分数 face t f, Thread *t 通过边界表面的质量流速

5.3.2 Macros for Accessing User-Defined Scalars and Memory

The macros listed in Table 5.3.2 can be used to access user-defined scalars and memory for faces. Name(Arguments) Argument Types Returns F_ UDSI(f,t,i) F_UDMI(f,t,i) face t f, Thread *t, int i face t f, Thread *t, int i user-de_ned scalar (face) user-de_ned memory (face)

5.3.2读写用户定义的标量和存储器的宏 在表5.3.2中列出的宏可以用于给表面读写用户定义的标量和存储器的宏 名称(参数) 参数类型 返回值 F_UDSI(f,t,i) face t f, Thread *t, int i 用户确定的标量(表面) F_UDMI(f,t,i) face t f, Thread *t, int i 用户定义的存储器(表面)

5.3.3 Miscellaneous Face Variable Macros

Additional face variable macros are listed in Table 5.3.3. Table 5.3.3: Miscellaneous Face Variable Macros Name(Arguments) Argument Types F_C0(f,t) face t f, Thread *t F_C0_THREAD(f,t) F_C1(f,t) F_C1_THREAD(f,t) face t f, Thread *t face t f, Thread *t face t f, Thread *t

Returns cell t for cell on \0" side of face Thread *t for cell thread on \0" side of face cell t for cell on \1" side of face Thread *t for cell thread on \1" side of face

5.3.3混合面变量宏 其余的表面变量宏在表5.3.3中列出 名称(参数) 参数类型

返回值

F_C0(f,t) F_C0_THREAD(f,t) F_C1(f,t) F_C1_ THREAD(f,t)

face t f, Thread *t face t f, Thread *t face t f, Thread *t face t f, Thread *t

5.4 Geometry Macros

This section contains macros for retrieving geometry variables in FLUENT. Definitions for these macros can be found in the referenced header file (e.g., mem.h). 5.4几何宏 这节包含的宏是为了在FLUENT中重新得到几何变量。这些表面宏的定义可以在相关 的(.h)文件中找到。(如mem.h等)

5.4.1 Number of Nodes and Faces

The macros C_NNODES and C_NFACES shown in Table 5.4.1 return the integer number of nodes or faces, respectively, for a given cell. F_NNODES returns the integer number of nodes associated with a face. Table 5.4.1: Node and Face Variable Macros in mem.h Name(Arguments) Argument Types Returns C NNODES(c,t) C NFACES(c,t) F NNODES(f,t) cell t c, Thread *t cell t c, Thread *t face t f, Thread *t number of nodes in a cell number of faces in a cell number of nodes in a face

5.4.1节点和面的数量 在表5.4.1中列出的宏C_NNODES和C_NFACES返回相应的节点和面的整数值。对于一 个给定的单元格, F_NNODES返回与某个表面相关的节点的整数个数。 表5.4.1在mem.h中的节点和表面的宏 名称(参数) C_NNODES(c,t) C_NFACES(c,t) F_NNODES(f,t) 参数类型 cell t c, Thread *t cell t c, Thread *t face t f, Thread *t 返回值 一个单元格中的节点数 一个单元格中的表面数 一个表面中节点数

5.4.2 Cell and Face Centroids

The macros listed in Table 5.4.2 can be used to obtain the real centroid of a cell or face. C_CENTROID finds the coordinate position of the centroid of the cell c and stores the coordinates in the x array. F_CENTROID finds the coordinate position of the centroid of the face f and stores the coordinates in the x array. Note that the array x can be a one-, two-, or three-dimensional array. Table 5.4.2: Centroid Variable Macros in metric.h Name(Arguments) Argument Types Returns C CENTROID(x,c,t) real x[ND ND], cell t c, Thread * t x (cell centroid)

F CENTROID(x,f,t)

real x[ND ND], face t f, Thread *t

x (face centroid)

5.4.2单元格和表面的重心 在表5.4.2中列出的宏可以用来获得一个单元格或是表面的真实的重心。 C_CENTROID 找到单元格的重心的坐标,并把它的坐标存储在矩阵X中。F_CENTROID找到表面的 重心的坐标,并把它的坐标存储在矩阵X中。注意矩阵X可以是一维,二维或者是三 维的。 表5.4.2 在metric.h中变量重心宏 名字(参数) 参数类型 返回值 C_CENTROID(x,c,t) real x[ND ND], cell t c, Thread * t x (单元格重心) F_CENTROID(x,f,t) real x[ND ND], face t f, Thread *t x (表面中心)

5.4.3 Face Area

The macro F_AREA shown in Table 5.4.3 can be used to return the real face area vector. For interior faces, the face area normal vector points from cell c0 to cell c1. The normal always points outward (out of the domain) for boundary faces. Table 5.4.3: Face Area Macros in metric.h Name(Arguments) Argument Types Returns F_AREA(A,f,t) A[ND ND], face t f, Thread *t A (area vector) 5.4.3 表面积 在表5.4.3中列出的宏F_AREA可以被用于返回一个实数的面积向量。对于内部的表 面,标准的面积向量的方向是从单元格C0指向单元格C1。标准的方向总是从边界面 向外指(范围之外)。 表5.4.3 在metric.h中的表面积宏 名称(参数) 参数类型 返回值 F_AREA(A,f,t) A[ND ND], face t f, Thread *t A (面积向量)

5.4.4 Cell Volume

The macros listed in Table 5.4.4 can be used to obtain the real cell volume for 2D, 3D, and axisymmetric simulations. Table 5.4.4: Cell Volume Macros in mem.h Name(Arguments) Argument Types Returns C VOLUME(c,t) cell t c, Thread *t cell volume for 2D or 3D, cell volume/2_ for axisymmetric

5.4.4单元格体积 在表5.4.4中列出的宏可以用于获得二维,三维和轴对称的模型的单元格的真实体积 表5.4.4在mem.h中的单元格体积宏 名称(参数) 参数类型 返回值 C VOLUME(c,t) cell t c, Thread *t 二维或是三维的单元格体积 单元格体积/2 ? 是轴对称模型的体积

5.4.5 Cell-to-Cell and Cell-to-Face Centroid Macros

FLUENT provides macros that allow the vectors connecting cell centroids and the vectors connecting cell and face centroids to be readily defined. These macros return information that are helpful in evaluating face values of scalars which are generally not stored, as well as the diffiusive flux of scalars across cell boundaries. The geometry and gradients involved with these macros are summarized in Figure 5.4.1 below. To better understand the parameters that are returned by these macros, it is best to consider how the aforementioned calculations are evaluated. Assuming that the gradient of a scalar is available, the face value of a scalar, _ can be approximated by,

? ??
f

0

? ?? . d r

?

(5.4.1)

where ~ dr is the vector that connects the cell centroid with the face centroid. The gradient in this case is evaluated at the cell centroid where _0 is also stored. where _f is the di_usion coe_cient at the face. In FLUENT's unstructured solver, the gradient along the face normal direction may be approximated by evaluating gradients along the directions that connect cell centroids and along a direction confined within the plane of the face. Given this, Df may be approximated as, ? (5.4.2) D f = ? f ? ?A where _f is the di_usion coe_cient at the face. In FLUENT's unstructured solver, the gradient along the face normal direction may be approximated by evaluating gradients along the directions that connect cell centroids and along a direction con_ned within the plane of the face. Given this, Df may be approximated as, ? ? ? ? (? ? ? ) A ? A ? ? ? ?A) A (5.4-3) ? D f = ? f 1ds 0 A ? ? ? ? f (?? ? A ? ?? ? e S A ? ? es eS where the _rst term on the right hand side represents the primary gradient directed along the vector ~es and the second term represents the 'cross' di_usion term. In this equation, A is the area normal vector of face f directed from cell c0 to c1, ds is the distance between the cell centroids, and ~es is the unit normal vector in this direction. This is shown in Figure 5.4.1 below.

5.4.5单元格对单元格,单元格对表面重心宏 FLUENT提供的宏使得连接单元格重心的向量和连接单元格重心与表面重心的向量 很容易定义。这些宏的返回信息对于估计那些不储存的表面的数量值是有帮助的, 同时对于估计通过单元格边界的流体分散率的数值也有益。这些宏所包含的几何和 梯度在下面的表5.4.1中总结出来了。 为了更好的理解由这些宏所返回的参数,最好的方法是考虑一下上述计算是如何估 计的。假定可以得到一个向量的梯度可以得到,那么向量的表面值 ? 可以用下式估 计:

? ??
f

0

? ?? . d r

?

(5.4.1)

在这里 dr 是连接单元格重心和表面重心的向量。在这个例子中是在存储? 处的单
0

?

元格重心位置估计的。 通过表面f,向量 ? 的流体分散率 D f 由下式给定 ? = ? f ? ?A Df

(5.4.2)

这的 ? f 是表面的分散系数。在FLUENT 的未定结构求解器中,沿表面标准方向的 梯度可以由在一个沿单元格重心方向梯度和一个限定在表面的平面里的梯度方向来 估计。按照这种规定, D f 可以按下式近似: ? ? ? ? (? ? ? ) A ? A ? ? ? ?A) A 1 0 (5.4-3) ? D f = ? f ds A ? ? ? ? f (?? ? A ? ?? ? e S A ? ? es eS 在此右边的第一项代表沿着向量 e s 方向的主梯度,第二项代表交叉分散率项。在这 个方程中A是从单元格c0指向单元格c1的表面f的标准向量围成的面积,ds是两个单 ? 元格重心间的距离,e s 是这个方向的单元向量。这些在下面的图形5.4.1中表示出来 了

?

图形 5.4.1 用定义的梯度和向量连接单元格 c0 和 c1 The INTERIOR_FACE_GEOMETRY and BOUNDARY_FACE_GEOMETRY macros can be called to return some of the terms needed to evaluate Equations 5.4-1 and 5.4-3. 调用宏 INTERIOR_FACE_GEOMETRY 和 BOUNDARY_FACE_GEOMETRY 可以返回一些 可以估计方程 5.4_1 和 5.4_2 的一项。

INTERIOR_FACE_GEOMETRY
INTERIOR_FACE_GEOMETRY(f,tf,A,ds,es,A_by_es,dr0,dr1) returns for the face, f, in face thread tf, the following variables: A[ND_ND] 面积的单元向量 ds 单元格重心的距离 es[ND_ND] 从单元格c0到单元格c1方向的单元向量 ? ? A? A ? ? 的值 A_by_es A?es

dr0[ND_ND] 连接单元格c0重心和表面重心的单元向量 dr1[ND-ND] 连接单元格c1重心和表面重心的单元向量 Note that the INTERIOR_FACE_GEOMETRY macro is defined in the sg.h header file. Since sg.h is not included in the udf.h file, you will need to add the include directive to your UDF. 注意宏INTERIOR_FACE_GEOMETRY在文件sg.h中定义,因为sg.h没有包含在udf.h文件 中,所以你就必须把它加到你的UDF中。 BOUNDARY FACE GEOMETRY(f,tf,A,ds,es,A by es,dr0) returns for the face, f, in face thread tf, the following variables: A[ND_ND] 面积标准向量 ds 单元格重心和表面重心之间的距离 es[ND_ND] 从单元格c0重心到表面重心的单元向量 ? ? A? A ? ? 的值 A_by_es A?ex dr0[ND_ND] 连接单元格c0重心到表面重心的向量 The BOUNDARY_FACE_GEOMETRY 宏也被定义在sg.h文件中,它也没有被包含在udf.h 中,你需要包含sg.h在UDF。

5.5 Node Macros

The macros listed in Tables 5.5.1 and 5.5.2 return the real Cartesian coordinates of the cell node (at the cell corner), and the components of the velocity of the node, respectively. The node velocities are relevant in moving mesh simulations, for example. The argument Node *node for each of the variables defines a node. Definitions for these macros can be found in the referenced header file (e.g., mem.h). Table 5.5.1: Node Coordinate Variable Macros in metric.h Name(Arguments) Argument Types Returns NODE X(node) NODE Y(node) NODE Z(node) Name(Arguments) NODE GX(node) NODE GY(node) NODE GZ(node) Node *node x coordinate of node Node *node y coordinate of node Node *node z coordinate of node Table 5.5.2: Node Velocity Variable Macros in mem.h Argument Types Returns Node *node Node *node Node *node x component of node velocity y component of node velocity z component of node velocity

5.5节点宏 表5.5.1和5.5.2列出的宏返回单元格节点的实数直角坐标(在单元格的拐角)和相应 的节点速度的分量。例如在移动的网格模拟中节点速度是相对应的。每个变量的节 点*节点的参数定义了一个节点。这些宏的定义可以在相关的.h文件中找到。(例如

mem.h) 表5.5.1在 metric.h 中变量的节点坐标宏 名称(参数) NODE X(node) NODE Y(node) NODE Z(node) 名称(参数) NODE GX(node) NODE GY(node) NODE GZ(node) 参数类型 返回值 Node *node 节点的X坐标 Node *node 节点的Y坐标 Node *node 节点的Z坐标 表5.5.2在 metric.h中的节点速度变量宏 参数类型 返回值 Node *node 节点速度的X分量 Node *node 节点速度的Y分量 Node *node 节点速度的Z分量

5.6 Multiphase Macros

The macros listed in Table 5.6.1 return real variables associated with the general multiphase models. Definitions for these macros can be found in sg_mphase.h, which is included in udf.h. Table 5.6.1: Multiphase Variable Macros in sg_mphase.h Name(Arguments) Argument Types Returns C VOF(c,pt[0]) cell t c, Thread **pt volume fraction for primary phase C VOF(c,pt[n]) cell t c, Thread **pt volume fraction for nth secondary phase 5.6多相宏 表5.6.1中列出的宏返回一个与整体多相节点相连的实数变量。这些变量的定义在 sg_mphase.h文件中可以找到,这些包含在udf.h.文件中。 表5.6.1在sg_mphase.h中的变量宏 名称(参数) 参数类型 返回值 C VOF(c,pt[0]) cell t c, Thread **pt 主要相的体积分数 C VOF(c,pt[n]) cell t c, Thread **pt 第n个辅助相的体积分数

5.7 DPM Macros

The macros listed in Tables 5.7.1{5.7.4 are defined in the dpm.h header file, which is included in the udf.h header file. The variable p indicates a pointer to the Tracked Particle structure (Tracked Particle *p). Tracked particle *p gives you the value for the particle at the current position.. Name(Arguments) Argument Types Returns P_DIAM(p) P_VEL(p)[i] P-T(p) P-RHO(p) Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p particle diameter particle velocity i=0,1,2 particle temperature particle density

P-MASS(p) P-TIME(p) P-DT(p) P_LF(p) P-VFF(p)

Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p

particle mass current time for particle particle time step particle liquid fraction (wet combusting particles only) particle volatile fraction (combusting particles only)

5.7 DPM宏 在表5.7.1—5.7.4中列出的宏是在dpm.h文件中定义的这些都是包含在udf.h文件中的。 变量p是Tracked_Particle结构的指示器(Tracked_Particle*p)。Tracked_Particle*p给出物体 在当前位置的值。 表5.7.1中在dpm.h文件中在质点在当前位置的宏 Name(Arguments) Argument Types Returns P_DIAM(p) Tracked particle *p 质点直径 P_VEL(p)[i] Tracked particle *p 质点速度 i=0,1,2 P_T(p) Tracked particle *p 质点温度 P_RHO(p) Tracked particle *p 质点密度 P_MASS(p) Tracked particle *p 质点质量 P_TIME(p) Tracked particle *p 质点的当前时间 P_DT(p) Tracked particle *p 质点时间步长 P_LF(p) Tracked particle *p 质点液体分数(湿的组分燃烧的质点) P_VFF(p) Tracked particle *p 质点挥发性馏分(仅仅燃烧的质点) Table 5.7.4: Macros for Particle Material Properties in dpm.h Name(Arguments) Argument Types P_MATERIAL(p) Tracked particle *p DPM-SWELLING-COEFF(p) Tracked particle *p DPM-EMISSIVITY(p) DPM-SCATT-FACTOR(p) DPM-EVAPORATION TEMPERATURE(p) DPM-BOILING-TEMPERATURE(p) DPM-LATENT HEAT(p) DPM_HEAT OF PYROLYSIS(p) DPM_HEAT OF REACTION(p) DPM_VOLATILE FRACTION(p) DPM-CHAR-FRACTION(p) DPM_SPECIFIC -HEAT(p,t) Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Returns material pointer swelling coefficient for devolatilization emissivity for radiation model scattering factor for radiation model evaporation temperature boiling temperature latent heat heat of pyrolysis heat of reaction volatile fraction char fraction specific heat at temperature t

表5.7.4在dpm.h中描述质点材料性质的宏 名称(参数) P_MATERIAL(p) DPM_SWELLING-COEFF(p) DPM-EMISSIVITY(p) DPM –SCATT-FACTOR(p) DPM-EVAPORATION TEMPERATURE(p) DPM-BOILING-TEMPERATURE(p) DPM-LATENT-HEAT(p) DPM-HEAT OF PYROLYSIS(p) DPM-HEAT OF REACTION(p) DPM-VOLATILE FRACTION(p) DPM-CHAR-FRACTION(p) DPM-SPECIFIC-HEAT(p,t)

参数类型 Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p Tracked particle *p

返回值 材料的指示器 液化作用的膨胀系数 辐射模型的分散系数 辐射模型的分散因子 蒸发温度 沸点温度 潜热 高温分解热 反应热 挥发性馏分 烧焦分数 在温度t下的确定热

5.8 NOx Macros

The macros listed in Table 5.8.1 are useful for defining NOx production and reduction rates using DEFINE_NOX_RATE. These macros are defined in the sg_nox.h header file, which is included in udf.h. The argument NOx is the pointer to the NOx structure. Table 5.8.1: Macros for NOx Rates in sg_nox.h Name(Arguments) NOX EQN(nox) NOX FRATE(nox) NOX RRATE(nox) ARRH(nox, k) MOLECON(nox, i) Argument Types NOx *nox NOx *nox NOx *nox NOx *nox, Rate const k[3] NOx *nox, int i Returns NOx pollutant equation ID NOx production rate NOx reduction rate Arrhenius rate coefficient species i molar concentration

In the argument Rate const k[3], k = A, ? , E where, A = Pre-exponential factor ? = Temperature Exponent E = Activation Energy 5.8 Nox宏

在表5.8.1中列出的宏对于使用DEFINE_NOX_RATE来定义Nox的产生和减少是有用的。 这些宏定义在sg_nox.h中,它包含在udf.h里。 参数Nox是Nox结构的指示器。 表5.8.1 在sg_nox.h中描述Nox速率的宏 名称(参数) 参数类型 返回值 NOX EQN(nox) NOX FRATE(nox) NOX RRATE(nox) ARRH(nox, k) MOLECON(nox, i) NOx *nox NOx *nox NOx *nox NOx *nox, Rate const k[3] NOx *nox, int i Nox污染物质方程 ID NOx 产生速率 Nox减少速率 阿列纽斯速率系数 物质 I的摩尔浓度

在参数Rate_ const k[3] 中, k = A, ? , E 这里 A =指前因子 ? =温度指数 E = 活化能 ?


相关文章:
fluent UDF-Ch5
fluent UDF-Ch5_机械/仪表_工程科技_专业资料Fluent软件的UDF功能介绍第五章 使用宏存取FLUENT解算器变量本章提供了可以存取FLUENT解算器中变量的预定义宏。 5...
FLUENT udf中文资料ch8
FLUENT udf中文资料ch8_能源/化工_工程科技_专业资料。Fluent 用户自定义函数/功能...(图 8.2.5) 湍流预混速度和源项 UDF 用 DEFINE_TURB_PREMIX_SOURCE 宏...
FLUENT udf中文资料ch10
FLUENT udf中文资料ch10_能源/化工_工程科技_专业资料。Fluent 用户自定义函数/...Properties of the Liquid Metal Property Density Viscosity 5.5 Specific Heat ...
FLUENT udf中文资料ch7
FLUENT udf中文资料ch7_能源/化工_工程科技_专业资料。Fluent 用户自定义函数/功能...5. 链接共享库到FLUENT(见7.3.4节)。 7.3.2 建立目录结构 对于UNIX系统...
FLUENT udf中文资料ch9
FLUENT udf中文资料ch2 FLUENT udf中文资料ch4 FLUENT udf中文资料ch5 FLUENT udf中文资料ch6 FLUENT udf中文资料ch7 FLUENT udf中文资料ch8 FLUENT udf中文资料ch...
Fluent UDF 中文教程3
Fluent UDF 中文教程3_计算机软件及应用_IT/计算机_专业资料。UDF 第 3 章写...4. 使用 Fluent.Inc 提供的预定义宏和函数来访问 FLUENT 求解器数据。 5. ...
Fluent UDF中文教程目录
Fluent UDF中文教程目录_计算机软件及应用_IT/计算机_专业资料Fluent UDF中文教程...1.2 为什么要使用UDF? 1.3 UDF 的局限 1.4 Fluent5Fluent6 UDF的变化 ...
fluent-udf-经验
fluent-udf-经验_工学_高等教育_教育专区。[转]菜鸟学 UDF 的感觉,希望对 UDFers 有用光看书,感觉 UDF 不难。看例子,有些看个四五遍之后才能差不多看懂。...
Fluent UDF 中文教程1
Fluent UDF 中文教程1_计算机软件及应用_IT/计算机_专业资料。第一章 介绍本章...1.1 什么是 UDF? 1.2 为什么要使用 UDF? 1.3 UDF 的局限 1.4 Fluent5 ...
udf配置及错误解决
udf配置及错误解决_能源/化工_工程科技_专业资料FLUENT UDF 中关于动网格的 ...我在安装 14.5 时还遇到过一个 问题就是在安装许可时,当我生成了许可文件,...
更多相关标签:
fluent udf中文教程 | fluent udf中文手册 | fluent的udf中文 | fluent udf | fluent udf操作实例 | fluent udf实例 | fluent udf 环境变量 | fluent udf视频教程 |