udf中文帮助第10章应用举例_第1页
udf中文帮助第10章应用举例_第2页
udf中文帮助第10章应用举例_第3页
udf中文帮助第10章应用举例_第4页
udf中文帮助第10章应用举例_第5页
已阅读5页,还剩32页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本章包含了 FLUENT 中 UDFs 的应用例子。边界条件源项物理属性反应速率(Reacting Rates)用户定义标量(User_Defined Scalars)10.1 边界条件这部分包含了边界条件 UDFs 的两个应用。两个在 FLUENT 中都是作为解释式UDFs 被执行的。10.1.1 涡轮叶片的抛物线速度分布要考虑的涡轮叶片显示在 Figure 10.1.1 中。非结构化网格用于模拟叶片周围的流场。区域从底部周期性边界延伸到顶部周期性边界,左边是速度,右边是压力出口。Figure 10.1.1: The Grid for the Turbine Vane Exle常数 x 速度

2、应用于的流场与抛物线 x 速度应用于的流场作了比较。当采用分段线性分布的型线的应用是有效的对边界型线选择,多项式的详细说明只能通过用户定义函数来完成。常数速度应用于流场的结果显示在 Figure 10.1.2 和 Figure 10.1.3 中。当移动到涡轮叶片周围时初始常速度场被。Figure 10.1.2: Velocity Magnitude Contours for a Constant Inlet x VelocityFigure 10.1.3: Velocity Vectors for a Constant Inlet x Velocityx 速度将用以下型线描述:现在中心是 0.

3、0,在顶部和底部其值分别延伸到 0.0745 。这样 x 速度在这里变量 y 在中心为 20m/sec,在边缘为 0。UDF 用于传入了Section上的这个抛物线分布。C 源代码(vprofile.c)显示如下。函数使用5.3中 描 述 的Fluent提 供 的 求 解 器 函 数 。/*/* vprofile.c/* UDF for specifying steady-s*/*/e velocity profioundary condition/*/#include udf.hDEFINE_PROFILE(inlet_x_velocity, thread,ition)real xND_ND

4、; real y;face_t f;/* this will hold theition vector */begin_f_loop(f, thread)F_CENTROID(x,f,thread); y = x1;F_PROFILE(f, thread,ition) = 20. - y*y/(.0745*.0745)*20.;end_f_loop(f, thread)函数,被命名为 inlet_x_velocity,使用了 DEFINE_PROFILE 定义并且有两个自变量:thread和ition。Thread 是一个指向面的 thread 的指针,ition 是一个整数,它是每个循环(l

5、oop)内为变量设置的数值。函数通过声名变量 f 作为 face_t 的数据类型。一维数组 x 和变量 y 被定义为 real 数据类型。循环宏用于循环区域内每个面来创建型线,或数据数组。每个循环内,F_CENTROIDS为带指标 f 的面输出面质心(数组 x)的值,指标 f 在被 thread 指向的线(thread)上。在 x1中的 y 坐标用于为变量 y 赋值,然后用于计算 x 速度。这个值接着被分配到F_PROFILE,使用整数ition(在你从 Velocity Inlet 面板中选择的 UDF 作为 x 速度的边界条件的基础上通过求解器传递给它)来设置内存中 x 速度面值。为了在

6、FLUENT 中使用这个解释式 UDF,你必须首先编译它。DefineUser-DefinedFunctionsreted.在reted UDFs 面板中,在 Source File Name 区域命名你的函数。如果必要,在 CPP d Name 区域输入你的 C 预处理程序类型和在 Stack Size 下输入堆栈大小。打开Assembly Listing 在你的控制台窗口中能看到汇编列表,当函数编译时。点击DisplayCompile 然后 Close 面板。为了选择这个用户定义函数作为所选区域的速度边界条件,打开 Velocity Inlet 面板。在 X-Velocity 下拉列表下,

7、选择 udf inlet_x_velocity,这个名字在上面已经命名给函数。这个函数将被使用,而不是出现在 X-Velocity 区域的 0 值(在这个例子中)。点 OK 接受这个新边界条件并关闭面板。在求解运行到收敛之后,获得了一个修正的速度场如 Figure 10.1.4 and 10.1.5 所示。速度场在中心显示了最大值,到边缘上降为 0。Figure 10.1.4: Velocity Magnitude Contours for a Parabolic Inlet xVelocityFigure 10.1.5: Velocity Vectors for a Parabolic In

8、let x Velocity10.1.2 管内的瞬态速度分布这个例子中,瞬时的周期性的速度边界条件使用 UDF 应用于管子的。速度形式为:(10.1.1)管子长 1m,半径为 0.2m。假设充满密度为 1kg/m3 和粘度为2 105 kg/m-s 的空气。空气速度关于平衡值v0 20m / s 的波动振幅为 5m/s,频率为 10rad/s。速度分布UDF(unsteady.c)的源代码显示如下。/*/*/*/unsteady.cUDFforspecifyingatransientvelocityprofileboundarycondition/*/#include udf.hDEFINE_

9、PROFILE(unsteady_velocity, thread,ition)face_t f;begin_f_loop(f, thread)real t = RP_Get_Real(flow-time);F_PROFILE(f, thread,ition) = 20. + 5.0*sin(10.*t);end_f_loop(f, thread)函数,被命名为 unsteady_velocity,使用DEFINE_PROFILE macro 定义。The utilityRP_Get_Real(flow-time) 用于 real时间,它被分配给变量 t 。(RP_Get_Real 的详细内容

10、见 Section 6.9)。在你编译这个 UDF 之前,你必须在 Solver 面板中指定为非稳态计算。DefineMsSolver.reted UDFs 面板。在 Source File Name 下面的文本框内接下来你将打开输入函数的名字,如果必要,还有你的 C 预处理程序的名字。打开DisplayAssemblyDefinepile 然后关闭面板。点击User-DefinedFunctionsreted.由 UDF区域的 X-Velocity 。在定义的正弦速度边界条件现在可选为X-Velocity 面板中,在 X-Velocityunsteady_velocity,并点击 OK。区域

11、右边的下拉列表中选择 udf时间步参数在 Iterate 面板中设置。SolveIterate.在这个例子中,使用了 0.0314 的 Time Step Size,因此在速度一个完整的震荡周期内将完成 20 个时间步。在每个时间执行的迭代次数被限制为 20。在求解的早期阶段这个迭代次数以获得收敛的流场,但是在通过几个时间步之后,很可能导致收敛的时间步。UDF Profile Updateerval 被设置为 1 因此每次迭代速度都被更新。在完成了 60 个时间步之后(或 3 个周期),你可以检查跨越压力出口由振荡条件引起速度数量级。为了在计算阶段收集这个信息,在开始迭代之前打开 Surfac

12、e Monitors 面板。SolveMonitorrface.增加 Surface Monitors 的指标到 1。这将使你定义 monitor-1(如果需要,你可重命名,在 Name 下的文本输入框内)的参数。选择 Plot,所以所选的数量将作为计算的收益被画出来。选择Pr在控制台窗口来看所选数的变化值。选择Write,因而信息将被写入文件,它将被给一个名字为 monitor-1.out。(如果你改变了 monitor 的名字,这个名字将用作输出文件的前缀)。在 Every 下面,你可选择 Iteration, Time Step, or Flow Time。为了监视每个时间步的结果,你应

13、选择 Time Step 选项。通过点击 Define.你可在 Define SurfaceMonitor 面板中指定被监视的数量。在这个例子中,在 Report Of 下的下拉列表中选择 Velocity. and VelocityMagnitude。的区域是 prere-outlet-5,,在 Surfa列表中选择它。Area-Weighted Average 在 Report Type 的下拉列表中选择,Flow Time 在 X Axis的下拉列表中选择。一旦完成了你要求的迭代次数,监视器应出现在所选绘图窗口中。作为选择,你可通过打开 File XY Plot 面板读入文件。PlotF

14、ile.你可通过在 Files 下面的文本框中输入它的名字来输出文件和选择这个文件并点击 Add.,然后点击 Plot,你可获得 Figure10.1.6 的图形显示。Figure 10.1.6: Average Velocity Magnitude at the Prere Outlet这个图精细地显示了速度以期望的振幅值 5m/s 围绕平衡值 20m/s 上下振荡。10.2 源项这部分包含了源项 UDF 的应用。在 FLUENT 中它是作为解释式 UDF 被执行的。10.2.1 给管道添加动量源项(Adding a Momentum Source to a Duct Flow)当使用 UD

15、F 模拟源项时,理解函数调用的内容是很重要的。当你增加了一个源项,它在单元上执行全局的循环时,FLUENT 将调用你的函数。你的函数应只计算源项并返回它到求解器。在这个例子中,动量源项将被添加到 2D管道中。管道长 4m, 宽 2m,使用通过中心线的对称边界条件来模拟。液体金属(其属性列举在表 10.2.1 中)在 290K 温度下从左边以 1mm/s 的速度进入管道。在金属沿着管道前进了 0.5m之后,它受到了冷壁面的冷却,壁面温度保持在 280K。为了模拟金属的凝固,只要它的温度一降到 288K 以下,动量源项就应用于金属。动量源项是与速度的x 分量vx 成比例的,并有相反的符号:S x

16、= - C v x(10.2.1)这里 C 是常数。当液体凝固时,它的运动将减小到 0,模拟的是固体的形成。(在这个例子中,能量方程不能用来解决凝固潜热。速度场只能作为凝固区域指示来使用)。为了提高求解的稳定性和收敛性,求解器应线性化源项。为了能使求解器做到这点,你必须在你的 UDF 中以导数的形式指定源项和求解变量之间的依赖关系。源项S的导数为:(10.2.2)下面的 UDF 指定了源项和它的导数:/*/* UDFt adds momentum source term and derivative to duct flow*/*/#include udf.h#define CON20.0DE

17、FINE_SOURCE(cell_x_source, cell, thread, dS, eqn)real source;Table 10.2.1: Properties of the Liquid MetalPropertyValueDensity8000 kg/m 3Viscosity5.5kg/m-sSpecific Heat680 J/kg-KThermal Conductivity30 W/m-Kif (C_T(cell,thread) 288K)流体的的粘度对液体有一个分子值的同样( 5.5 103 kg / m s ),而更冷区域( T 286K )的粘度有更大的值(1.0kg/

18、m-s)。在中等温度范围内( 286K T 288K ),粘度在上面给出的两个值之间按线性分布:(10.3.1)这个模型的基础是假设液体冷却时很快地变为高粘性,它的速度降低,所以模拟的是凝固。这里,没有为能量场做修正以包含凝结潜热。UDF 的 C 源代码显示如下。/*/* UDF for specifying a temperature-dependent viscosity property*/*/#include udf.hDEFINE_PROPERTY(cell_viscosity, cell, thread)real mu_lam;real temp = C_T(cell, threa

19、d);if (temp 288.) mu_lam = 5.5e-3;else if (temp 286.)mu_lam = 143.2135 - 0.49725 * temp; elsemu_lam = 1.;return mu_lam;函数,被命名为 cell_viscosity,使用了 DEFINE_PROPERT 定义在单元上。引入了两个 real 变量:temp,C_T(cell,thread)的值,和 mu_lam, 由函数计算的层流粘度。温度值被检测了,在它的下降范围的基础上计算了适当的 mu_lam 值。在函数的结尾,mu_lam 的计算值返回到求解器。为了使用用户定义的属性,你

20、将使用 Materials 面板。在 Viscosity 的下拉列表下,选择 user-defined 选项。一旦你选了这个选项,User-Defined Functions 面板将打开,在其中你可选择合适的函数名字。这个例子中,只有一个是有效的,但在别的例子中,你可从中选择几个函数。(如果你需要编译多于一个的解释式 UDF,这些函数应在编译前连接。详细内容见 Section 7.2.1)。这个模拟的结果相似于 Section 10.2.1 中得到的。Figure 10.3.1 显示由于应用用户定义函数而导致的粘度场。粘度在很窄的范围内很快地从常数值 0.0055 变化到1.0kg/m-s。速

21、度场(Figure 10.3.2)证明响应于粘度的增加,液体减慢,这在预料之中。在这个模拟中,有一个大的“mushy”区域,在其中液体的运动逐渐减小。这是与第一个模拟的对比,在第一个模拟中应用了动量源项,在流体运动中观察到一个急剧的变化。Figure 10.3.1: Laminar Viscosity Generated by a User-Defined FunctionFigure 10.3.2: Contours of Velocity Magnitude Resulting from a User-DefinedViscosityFigure 10.3.3: Stream Functi

22、on Contourggesting Solidification反应速率(Reaction Rates)这部分包含了一个反应速率 UDF 的应用。它在 FLUENT 中以编译式的方式执行。自定义体积反应速率(A Custom Volume Recation Rate)作为一个编译式 UDF 的例子,考虑为一个两种气态物质的简单系统自定义体积反应速率。两种物质分别被命名为 species-a 和 spexies-b。反应速率是一个由下面的表达式给出的从 pecies-a 转变 species-b 的速率:(10.4.1)这里 X a 是 species-a 的质量分数, K1 和 K 2 是常

23、数。2D(平面)区域由 90 度的弯管组成。管子宽 16 inches,约 114 inches 长。一个 6 inches 厚的多孔区域覆盖在底部和右壁面,反应仅发生在多孔区域。管子内的物质有相同的属性。密度是 1.0kg/m3, 粘度为1.72 105 kg / m s 。区域的轮廓显示在 Figure 10.4.1 中。多孔介质是从左边压力出口的线的下方和右方的区域。延伸到区域顶部Figure 10.4.1: The Outline of the 2D Duct通过左边,气态纯物质 species-a 以 0.1m/s 的速度进入。气体进入多孔介质顶部的开区域和多孔介质本身,这里在两个坐

24、标方向中的每一个上都有 5m-1的惯性阻力。层流流场(Figure 10.4.2)显示了大部分气体是从多孔区域转向开区域。Figure 10.4.2: Streamlines for the 2D Duct wiPorous Region方式通过显示在 Figure 10.4.3 中的矢量图得到进一步证实。多孔区域的比开区域的慢的多。Figure 10.4.3: Velocity Vectors for the 2D Duct wiPorous Region用于模拟发生在多孔区域反应的包含 UDF 的 C 源代码(rate.c)显示如下:/*/* rate.c/* UDF for specif

25、ying a reaction rate in a porous medium*/*/*/#include udf.h#define K1 2.0e-2#define K2 5.DEFINE_VR_RATE(user_rate, c, t, r, mole_weight, species_mf, rate, rr_t)real s1 = species_mf0;real mw1 = mole_weight0;if (FLUID_THREAD_P(t) & THREAD_VAR(t).fluid.porous)*rate = K1*s1/ else*rate = 0.;(1.+K2*s1),2.

26、0)/mw1;函数,被命名为 user_rate, 用 DEFINE_VR_RATE 为给定物质的质量分数定义在单元上。UDF 执试来检查多孔区域,仅应用反应速率方程于多孔区域。宏 FLUID_THREAD_P(t)用于确定一个单元 thread 是否是流体(而不是固体)thread。变量 THREAD_VAR(t).fluid.porous 用于检测流体单元 thread 是否是多孔区域。为了使用这个 UDF,设置名字为 librate 的目录来控制库目录结构。然后,建立一个如 Section 7.3.3 描述的共享库。接着,启动 FLUENT,或者在你的 case 文件读入或者 set i

27、t up。打开在 Makefile过程建立的库,通过在 Compiled UDFs 面板中指定 librate 为 Library Name 和点击 Open 连接这个库到 FLUENT 执行。DefineUser-DefinedFunctionsCompiled.现在你可通过在 User-Defined Function Hooks 面板的 Volume ReactionFunction 的下拉列表中选择它来指定 user_rate 作为反应速率。RateDefineUser-DefinedFunction Hooks.初始化和运行计算。Species-a 的质量分数收敛解显示在 Figur

28、e 10.4.4 中。穿过多孔区域的运动的气体在管子的水平部分逐渐转化成 species-b。尽管多孔区域之外 species-b 的某些扩散被 100% and 0% species-a 区域之间的宽阔的过度层所暗示,但在流体区域没有反应发生。Figure 10.4.4: Mass Fraction for species-aRegionerned by a Reaction in a Porous10.5 用户定义标量(User-Defined Scalars)这部分包含了用于联合用户定义标量输运方程的 UDF 的例子。关于在 FLUENT中模化用户定义标量输运方程的信息见第 9 章。10

29、.5.1 使用用户定义标量的后处理(tprosing Using User-Defined Scalars)下面是一个编译式 UDF 例子,该 UDF 计算温度四次幂的梯度,并其数量于拥护定义标量中。例如,被计算的温度梯度可随后用于绘制等值线图。尽管这个UDF 的实际应用是可疑的,这里它的目的在于显示用于后处理的任意数量梯度的计算方法。/*/* UDF for computing the magnitude of the gradient of T4*/*/ #include udf.h/* Define which user-defined scalars to use. */ enumT4

30、, MAG_GRAD_T4, N_REQUIRED_UDS;DEFINE_ADJUST(Thread *t; cell_t c; face_t f;,)/* Make sure there are enough user-defined scalars. */ if (n_uds t0,SV_T)T = C_T(F_C0(f,t),t-t0);F_UDSI(f,t,T4) =(T,4.);end_f_loop (f,t)/* Fill second UDS with magnitude of gradient. */thread_loop_c (t,)if (NULL != THREAD_ST

31、ORAGE(t,SV_UDS_I(T4) & NULL != T_STORAGE_R_NV(t,SV_UDSI_G(T4)begin_c_loop (c,t)C_UDSI(c,t,MAG_GRAD_T4) = NV_MAG(C_UDSI_G(c,t,T4);end_c_loop (c,t)thread_loop_f (t,)if (NULL != THREAD_STORAGE(t,SV_UDS_I(T4) & NULL != T_STORAGE_R_NV(t-t0,SV_UDSI_G(T4)begin_f_loop (f,t)F_UDSI(f,t,MAG_GRAD_T4)=C_UDSI(F_C

32、0(f,t),t-t0,MAG_GRAD_T4);end_f_loop (f,t)条件语言 if (NULL != THREAD_STORAGE(t,SV_UDS_I(T4)用于检测用户定义标量 T4 的是否被分配,而 NULL != T_STORAGE_R_NV(t,SV_UDSI_G(T4)检测用户定义标量 T4 的梯度的是否被分配。除了编译和连接这个 UDF,如在第 7 章描述的,你还必须在 FLUENT 中求解用户定义标量输运方程。DefineUser-DefinedScalars.更详细的内容见 Section 9.3。10.5.2 实现 FLUENT 的 P-1 辐射模型(Impl

33、ementing FLUENTs P-1 RadiationM)这部分给出了一个例子示范了 P1 辐射模型是如何使用 UDFs 和用户定义标量输运方程来实现的。在 P1 模型中,入射辐射变量 G,在区域内通过由扩散(diffu)和源项组成的方程描述。入射变量 G 的输运方程由方程 10.5.1 给出。扩散系数 ,由方程 10.5.2 给出,源项由方程 10.5.3 给出。这些方程更详细的的 Section 11.3.4 中。在用户指南(10.5.1)(10.5.2)(10.5.3)如用户指南中所显示的,壁面上 G 的边界条件等于辐射壁面热流qr ,w 的负数(方程 10.5.4),在这个方程中

34、, n 是外法向量。辐射壁面热流由方程 10.5.5 给出。(10.5.4)(10.5.5)根据壁面入射辐射Gw 指定的边界条件的这种形式是不适宜的。这种混合边界条件可通过先使用方程 10.5.4 和 10.5.5 求解Gw ,导致方程 10.5.6 来避免。那么,Gw的表达式由方程 10.5.7 给出的辐射壁面热流qr ,w 来取代方程 10.5.5 给出的。(10.5.6)(10.5.7)出现在方程 10.5.6 和 10.5.7 中的附加项 0 和G0 是估计方程 10.5.4 中入射辐射梯度的结果。在 FLUENT 中,被控制标量的梯度的分量垂直于单元边界(面), G n 是主要和次要

35、分量总和的估计。主要分量代表由单元质心定义方向上的梯度,次要分量是沿着分隔两个单元的面的方向。从这个信息中,面法向量可确定。梯度的次要分量可使用FLUENT 宏BOUNDARY_SECONDARY_GRADIENT_SOURCE 来建立。这个宏的使用首先要求定义单元几何信息,它可使用第二个宏BOUNDARY_FACE_GEOMETRY(见 Section 5.4.5)容易的获得。你将在定义 G的壁面边界条件的 UDF 中看到这些宏的调用。为了完成 P1 模型的实现,辐射能量方程必须与热能方程耦合。这可通过修改源项和能量方程的壁面边界条件来完成。首先应考虑如何修改能量方程的源项。入射辐射梯度与辐

36、射热流是成比例的。辐射热流局部的增加(或减小)可归结于能量方程通过吸收和散射机理的局部减小(或增加)。所以,辐射热流梯度是能量方程的(负的)源项。如用户指南中显示的,入射辐射能量方程 10.5.3 的源项等于辐射热流的梯度,因此,它的负值指定了需要修改的能量方程的源项。现在,考虑如何修改壁面上能量的边界条件。局部地,能量从壁面传递默认的计算流体的唯一模式是传导。在包含辐射影响时,必须计算流体与壁面之间的辐射传热。(如果你使用了 FLUENT 的内建的 P1 模型,这项将被自动地计算)。宏DEFINE_HEAT_FLUX 允许通过指定 Section4.3.3 中的qir 方程的系数来修改壁面边

37、界条件以适应第二种传热模式。对壁面的净辐射热流已经由方程 10.5.5给出。比较这个方程与 Section 4.3.3 中qir 方程将为cir 得出合适的系数。在这个例子中,P1 模型的实现通过六个分离的 UDFs 来完成。它们都被包含在一个源文件中,它作为编译式 UDF 来执行。入射辐射 G 的单独的用户定义标量输运方程,使用 DEFINE_DIFFUSIVITY UDF 来定义方程 10.5.2 中的 和 DEFINE_SOURECE UDF 来定义方程 10.5.3 中的源项。壁面上 G 的边界条件通过在 DEFINE_PROFILE 中指定方程 10.5.7 的负值作为指定热流。 D

38、EFINE_ADJUST UDF 用于通知 FLUENT 检查已定义的(在求解器中)合适的用户定义标量数。最后,能量方程必须指定源项等于入射辐射方程中使用的源项的负值,而 DEFING_HEAT_FLUX UDF 用于改变能量方程壁面上的边界条件。在求解器中,必须至少激活一个用户定义标量输运方程。标量扩散率在 Materials面板中为标量方程指定。标量源项和能量源项在边界条件面板中为流体区域指定。壁面上标量方程的边界条件在边界条件面板中为壁面区域指定。DEFINE_ADJUST and DEFINE_HEAT_FLUX 函数在 User-Defined FunctionHooks 面板中指定

39、。/*/* Implemenion of the P1 musing user-defined scalars*/*/#include udf.h/* Define which user-defined scalars to use. */ enumP1, N_REQUIRED_UDS;s ssic real abs_coeff = 1.0;ic real scat_coeff = 0.0;/* absorption coefficient */* scattering coefficient */ic real las_coeff = 0.0; /* linear-anisotropic*/

40、* scattering coefficient */* wall emissivity */sic real epsilon_w = 1.0;DEFINE_ADJUST(p1_adjust,)/* Make sure there are enough user defined-scalars. */ if (n_uds t0;/* Do nothing if areas arent computed yet or not next to fluid. */if (!Data_Valid_P() | !FLUID_THREAD_P(t0) return;begin_f_loop (f,thre

41、ad)cell_t c0 = F_C0(f,thread);BOUNDARY_FACE_GEOMETRY(f,thread,A,ds,es,A_by_es,dr0);At = NV_MAG(A);if (NULLP(T_STORAGE_R_NV(t0,SV_UDSI_G(P1)Gsource = 0.;else/* if gradient not stored yet */BOUNDARY_SECONDARY_GRADIENT_SOURCE(GsourV_UDSI_G(P1),dG,es,A_by_es,1.);gamma0 = C_UDSI_DIFF(c0,t0,P1); alpha0 =

42、A_by_es/ds;beta0= Gsource/alpha0;aterm= alpha0*gamma0/At;Ibw = SIGMA_SBC*(WALL_TEMP_OUTER(f,thread),4.)/M_PI;/* Specify the radiative heat flux. */F_PROFILE(f,throsition) =aterm*Ew/(Ew + aterm)*(4.*M_PI*Ibw - C_UDSI(c0,t0,P1) + beta0);end_f_loop (f,thread)DEFINE_HEAT_FLUX(heat_flux, f, t, c0, t0, ci

43、d, cir)real Ew = epsilon_w/(2.*(2. - epsilon_w);cid0 = Ew * F_UDSI(f,t,P1);cid3 = 4.0 * Ew * SIGMA_SBC;A .DEFINE Macro DefinitionsA1.通用求解器定义宏(General Solver DEFINE Macros)下面的通用求解器定义宏(见 Section 4.2)的定义来自 udf.h 头文件。#define DEFINE_ADJUST(name,void name( #define DEFINE_INIT(name,void name() *) *)#define

44、 DEFINE_ON_DEMAND(name) void name(void) #define DEFINE_RW_FILE(name, fp) void name(FILE *fp)A2 .M下面的 m-Specific DEFINE Macros-specific DEFINE macros(见 Section 4.3)的定义来自 udf.h 头文件。#define DEFINE_CG_MOTION(name, dt, vel, omega, time, dtime) void name(void *dt, real vel, real omega, real time, real dti

45、me)#define DEFINE_DIFFUSIVITY(name, c, t, i)real name(cell_t c, Thread *t,i)#define DEFINE_GEOM(name, d, dt,ition) ition)void name(*d, void *dt, real *#define DEFINE_GRID_MOTION(name, d, dt, time, dtime) void name(*d, void *dt, real time, real dtime)#define DEFINE_HEAT_FLUX(name, f, t, c0, t0, cid,

46、cir) void name(face_t f, Thread *t, cell_t c0, Thread *t0, real cid, real cir)#define DEFINE_NOX_RATE(name, c, t, NOx) void name(cell_t c, Thread *t, NOx_Parameter *NOx) #define DEFINE_PROFILE(name, t, i) void name(Thread *t,#define DEFINE_PROPERTY(name, c, t) i)real name(cell_t c, Thread *t) #defin

47、e DEFINE_SCAT_PHASE_FUNC(name, c, f) real name(real c, real *f) #define DEFINE_SOURCE(name, c, t, dS, i) real name(cell_t c, Thread *t, real dS, #define DEFINE_SR_RATE(name, f, t, r, mw, yi, rr) void name(face_t c, Thread *t, Reaction *r, real *mw, real *yi, real *rr)i)#define DEFINE_TURB_PREMIX_SOU

48、RCE(name, c, t, turbulent_flame_speed, source) void name(cell_t c, Thread *t, real *turbulent_flame_speed, real *source)#define DEFINE_TURBULENT_VISCOSITY(name, c, t) real name(cell_t c, Thread*t)#define DEFINE_UDS_FLUX(name, f, t, i) real name(face_t f, Thread *t,i)#define DEFINE_UDS_UNSTEADY(name,

49、 c, t, i, apu, su) void name(cell_t c, Thread *t,i, real *apu, real *su)#define DEFINE_VR_RATE(name, c, t, r, mw, yi, rr, rr_t) void name(cell_t c, Thread *t, Reaction *r, real *mw, real *yi, real *rr, real *rr_t)A3. Multiphase DEFINE Macros下面的 multiphase DEFINE macros(见 Section 4.4)的定义来自 udf.h 头文件。#define DEFINE_CAVIm_dot) ION_RATE(name, c, t, p, rhoV, rhoL, vofV, p_v, n_b,void name(cell_t c, Thread *t, real *p, real *rhoV, rea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论