Figure 3.11.1: Domain and Thread Structure Hierarchy
Figure 3.11.1也引入了domain_id和phase_domain_indexed的概念。domain_id在UDF中用于辨别超级区域从主要和次要的相级别区域中。超级区域的domain_id值总是被指定为1。相互作用区域也有相同的domain_id。domain_ids不必要如Figure3.11.1显示的顺序排列。dhase_domain_index在UDF中用于从次要相级别线程中辨别主要相级别线程。对主要相级别线程,phase_domain_index总是分配值为0。 访问数据(Accessing Data)
当你写UDF或为多相应用使用宏时,参考与尝试访问其属性的相(subdomain)或混合(super domain)相关的数据结构(thread or domain)是很重要的。作为例子,宏C_R(c,t)将返回线程t的单元c上的密度。如果t是指向超级线程的指针,那么返回的是混合密度。如果t是指向子线程的指针,那么返回的是相密度。
当传递到你的UDF的线程或区域指针不被你的函数需要时,也有一些例子。这取决于你使用的多相模型,你尝试修改的属性或项(例如,你使用的那个DEFINE宏),还有受到影响的相或混合。为了更好地理解这点,回想一个混合模型和欧拉多相模型之间区别的例子。在混合模型中,为混合相求解单一的动量方程,混合相的属性由它的相的总和来决定。在欧拉模型中,动量方程为每一相求解。当使用混合模型时,FLUENT允许你直接为混合相指定动量源项(使用DEFINE_SOURCE),但是不能为欧拉模型。对后者,你可以为单个相指定动量源项。因此,多相模型及被UDF修改的项,决定了那哪个区域或线程是需要的。
从求解器传递到你的UDF的特定的区域或线程的结构取决于你使用的DEFINE宏。例如,DEFINE_INIT和DEFINE_ADJUST函数总是传递与超级区域相关的区域结构。DEFINE_ON_DEMAND函数不能传递任何区域结构。如果你的UDF不能明确地传递指针到你的函数定义要求的线程或区域,那么你可以使用multiphase-specific utility macro找会它(见第6章)。为了你方便使用,表3.11.1-3.11.6总结了每个多相模型和相,在该相上为每个给定变量指定了UDF。从这些信息,你可推断出那些区域结构是从求解器传递到UDF的。
单相和多相模型应用UDF之间的区别(Differences Between UDF for Single-Phase and Multiphase Applications) 注:在许多例子中,为单相流动写的UDF源代码和为多相流动写的是相同的。例如,假设函数只从它被连接(hooked)到的相级别区域访问数据,为单相边界型线(使用DEFINE_PROFIEL定义的)写的C代码为多相边界型线写的代码之间是没有区别的。然而,如果那些函数从除混合级别区域之外的任何区域访问数据,调整和初始化UDF的代
11
码对单相和多相流动是不同的。
3.11.2 对多相模型使用UDF(Using UDF for Multiphase Models)
在多相模型中,从求解器传递到你的UDF的数据结构(例如区域和线程指针)取决于你使用的DEFINE宏。传递哪一个特定的区域或线程取决于函数连接到求解器的什么地方。例如,被连接到混合模型的函数传递超级区域结构,而连接到特定相的函数传递子区域结构。表3.11.1-3.11.6列举了DEFINE和对每个多相模型UDF被连接到的相。从这些信息你可推断出那些数据结构被传递。回想DEFINE_ADJUST和DEFINE_INIT UDF are hardwired to the mixture-level domain,而DEFINE_ON_DEMAND函数不能连接到任何区域。
Table 3.11.1: DEFINE Macro Usage for the VOF Model Variable Macro Phase Specified On volume fraction DEFINE_PROFILE secondary phase(s) velocity at a boundary DEFINE_PROFILE mixture pressure at a boundary DEFINE_PROFILE mixture boundary temperature DEFINE_PROFILE mixture turbulent kinetic energy DEFINE_PROFILE mixture turbulent dissipation rate DEFINE_PROFILE mixture mass source DEFINE_SOURCE primary and secondary phase(s) momentum source DEFINE_SOURCE mixture energy source DEFINE_SOURCE mixture turbulent kinetic energy source DEFINE_SOURCE mixture turbulent dissipation rate source DEFINE_SOURCE mixture density DEFINE_PROPERTY primary and secondary phase(s) viscosity DEFINE_PROPERTY primary and secondary phase(s)
12
Table 3.11.2: DEFINE Macro Usage for the Mixture Model Variable Macro Phase Specified On volume fraction DEFINE_PROFILE secondary phase(s) velocity at a boundary DEFINE_PROFILE primary and secondary phase(s) pressure at a boundary DEFINE_PROFILE mixture boundary temperature DEFINE_PROFILE mixture turbulent kinetic DEFINE_PROFILE mixture energy turbulent dissipation DEFINE_PROFILE mixture rate mass source DEFINE_SOURCE primary and secondary phase(s) momentum source DEFINE_SOURCE mixture energy source DEFINE_SOURCE mixture turbulent kinetic DEFINE_SOURCE mixture energy source turbulent dissipation DEFINE_SOURCE mixture rate source density DEFINE_PROPERTY primary and secondary phase(s) viscosity DEFINE_PROPERTY primary and secondary phase(s) diameter DEFINE_PROPERTY secondary phase(s) 13
slip velocity DEFINE_VECTOR_ phase interaction EXCHANGE_PROPERTY Table 3.11.3: DEFINE Macro Usage for the Eulerian Model (Laminar Flow) Variable Macro Phase Specified On volume fraction DEFINE_PROFILE secondary phase(s) velocity at a boundary DEFINE_PROFILE primary and secondary phase(s) pressure at a boundary DEFINE_PROFILE mixture granular temperature DEFINE_PROFILE secondary phase(s) mass source DEFINE_SOURCE primary and secondary phase(s) momentum source DEFINE_SOURCE primary and secondary phase(s) density DEFINE_PROPERTY primary and secondary phase(s) viscosity DEFINE_PROPERTY primary and secondary phase(s) granular diameter DEFINE_PROPERTY secondary phase(s) granular viscosity DEFINE_PROPERTY secondary phase(s) granular bulk viscosity DEFINE_PROPERTY secondary phase(s) granular frictional DEFINE_PROPERTY secondary phase(s) viscosity drag coefficient DEFINE_EXCHANGE_PRphase interaction OPERTY 14
lift coefficient DEFINE_EXCHANGE_PRphase interaction OPERTY Table 3.11.4: DEFINE Macro Usage for the Eulerian Model (Mixture Turbulence Model) Variable Macro Phase Specified On volume fraction DEFINE_PROFILE secondary phase(s) velocity at a boundary DEFINE_PROFILE primary and secondary phase(s) pressure at a boundary DEFINE_PROFILE mixture granular temperature DEFINE_PROFILE secondary phase(s) turbulent kinetic energy DEFINE_PROFILE mixture turbulent dissipation rate DEFINE_PROFILE mixture mass source DEFINE_SOURCE primary and secondary phase(s) momentum source DEFINE_SOURCE primary and secondary phase(s) turbulent kinetic energy source DEFINE_SOURCE mixture turbulent dissip. rate source DEFINE_SOURCE mixture density DEFINE_PROPERTY primary and secondary phase(s) viscosity DEFINE_PROPERTY primary and secondary phase(s) granular diameter DEFINE_PROPERTY secondary phase(s) granular viscosity DEFINE_PROPERTY secondary phase(s) granular bulk viscosity DEFINE_PROPERTY secondary phase(s)
15