Ansys Fluent 提供了多种方法来减少在多维 CFD 中求解详细化学反应的计算成本。有关使用这些化学加速方法的信息,请参阅用户指南中的“使用化学加速”部分。以下各节介绍了这些方法背后的理论:
- 7.3.1. 概述与局限性
- 7.3.2. 现场自适应表格化(ISAT)
- 7.3.3. 动态机理简化
- 7.3.4. 化学聚合
- 7.3.5. 化学机理维度缩减
- 7.3.6. 动态单元聚类与 Ansys Fluent CHEMKIN-CFD 求解器
- 7.3.7. 动态自适应化学与 Ansys Fluent CHEMKIN-CFD 求解器
7.3.1 概述与局限性
Ansys Fluent 为模拟具有详细化学动力学的燃烧器提供了以下湍流-化学相互作用选项:
-
无湍流-化学相互作用模型的有限速率化学(适用于层流或忽略湍流-化学相互作用的湍流)
-
涡耗散概念(适用于湍流火焰)
-
拉格朗日成分 PDF 传输(适用于湍流火焰)
-
欧拉成分 PDF 传输(适用于湍流火焰)
在模拟动力学控制现象(如缓慢形成的产品和污染物组分,以及火焰点火和熄灭)时,使用详细化学反应是合适的。综合化学机理除了主要燃料、氧化剂和产物组分外,还包含大量中间组分。这些中间组分以截然不同的反应速率演化,导致组分形成和破坏的时间尺度差异巨大。为了准确计算组分演化,数值时间积分需要非常小的时间子步长,称为刚性,这会导致较长的计算运行时间。Ansys Fluent 中的化学加速工具可以缓解这一成本,但会牺牲一定的准确性。必须谨慎设置控制参数,以确保这些不准确性在可接受的范围内。
7.3.2 现场自适应表格化(ISAT)
ISAT是Ansys Fluent中用于加速详细刚性化学反应的最强大工具。通常可以实现两到三个数量级的加速,这一显著优势意味着,原本需要数月才能完成的模拟,在采用ISAT后仅需几天即可完成。
对于确定性的动力学机制,最终反应状态是初始未反应状态和时间步长的唯一函数。理论上,这种反应映射可以执行一次并制成表格。然后,只要插值比化学积分更高效,就可以通过运行时加速来插值该表。实际上,预制表是不可行的,因为表的维度太大:组分数量(N),加上温度、压力和时间步长。然而,在反应流动中,只有完整的组成空间的一小部分子空间被访问。例如,一个由纯自由基OH(质量分数为1)在300K温度下的状态不太可能存在,因此没有必要预先制表这个状态。化学反应被认为位于低维流形上。事实上,对于稳态、三维、层流模拟,化学反应可以通过空间位置向量来参数化。因此,映射必须在N + 3维组成空间内的三维流形上。因此,只需制表这个被访问的组成空间区域就足够了。然而,被访问的区域取决于特定的化学机制、热力学和传输性质、流动几何形状以及边界条件。因此,被访问的区域在模拟之前是未知的,表格不能预处理。相反,表格必须在模拟过程中构建,这被称为原位制表。Ansys Fluent采用ISAT(第1087页,[526])来动态制表化学反应映射并加速求解时间。ISAT是一种“即时”(原位)制表被访问的组成空间区域的方法,并带有误差控制(自适应制表)。为了最优地使用ISAT,理解其工作原理是很重要的。
从初始组分 到最终组分 在时间步长 内的反应计算如下:
其中 是化学源项。
在使用 ISAT 启动 Ansys Fluent 模拟时,ISAT 表是空的。对于第一个反应步骤,方程 7.169(第 285 页)通过刚性 ODE 求解器进行积分。这称为直接积分(DI)。第一个表条目被创建,并包含以下内容:
-
初始组成 (其中上标 0 表示反应前的组成向量)
-
映射 (其中上标 1 表示反应后的组成向量)
-
映射梯度矩阵
-
一个精度超椭球体
下一个反应映射的计算如下:此状态的初始组成向量用 表示,其中下标 表示查询。现有的表(此时仅包含一个条目)通过插值新映射进行查询,如下所示:
因此,当查询时,使用映射梯度进行线性插值。精度椭球体(EOA)是围绕表格点 的椭圆空间,其中对映射的线性近似在指定容差 内是准确的。
如果查询点 位于 EOA 内,那么根据公式 7.170(第 286 页)进行的线性插值足够准确,并且检索映射。否则,执行直接积分(DI)并计算映射误差 (这里, 是一个缩放矩阵)。如果这个误差小于指定的误差容差 ,那么原始插值 是准确的,并且 EOA 会扩大以包括 。如果不是,并且如果表格大小小于用户指定的最大 RAM(最大存储),则添加一个新的表格条目。
表格条目作为二叉树的叶子存储。当添加一个新的表格条目时,原始叶子变成一个节点,带有两个叶子——原始叶子和新条目。在新节点处创建一个切割超平面,使得两个叶子分别位于这个切割平面的两侧。因此,组合向量 将位于这个超平面的任意一侧。
ISAT 算法总结如下:
-
在反应步骤期间,对每个组合向量查询 ISAT 表格。
-
对于每个查询 ,遍历表格以识别一个叶子,其组合 接近 。
-
如果查询组合 位于叶节点的EOA(误差椭球)内,则通过公式7.170(第286页)进行插值来检索映射 。否则,执行直接积分(DI),并测量DI与线性插值之间的误差 。
-
如果误差 小于容差,则扩展精度椭球并返回DI结果。否则,添加新的表格条目。
在模拟开始时,大多数操作是添加和扩展。随后,随着更多组合空间被记录,检索操作变得频繁。由于添加和扩展操作非常慢,而检索操作相对较快,因此Ansys Fluent的初始迭代较慢,但随着表格的构建而加速。
ISAT有两个输入参数,即ISAT误差容差 和最大ISAT表格大小(以M字节为单位)。较大的 值提供更快的运行时间,但误差更大。对于稳态模拟,建议在模拟开始时使用较大的 ,并在解决方案稳定并接近收敛时减小 。因此,默认的ISAT误差容差0.001相对较大,对于非稳态模拟或在稳态模拟收敛时应减小。建议您监控感兴趣的组分,并通过减小 重新收敛,直到这些组分的变化量可接受地小。最大ISAT表格大小应设置为略低于计算机可用RAM内存的大小。
7.3.3 动态机理简化
化学反应流动问题的求解时间随着所使用的反应机理的大小而增加。通常,这种关系是
其中,、、和是常数。然而,如果采用有限差分雅可比矩阵,与组分数成正比。
动态机理简化通过减少化学机理中的组分数()和反应数()来加速模拟过程。通常,简化程度越高,模拟速度越快,但准确性越低。机理简化旨在减小机理规模,同时将精度损失限制在预定义的容差范围内。
与骨架简化不同,骨架简化在预解阶段完成机理简化,生成一个在整个模拟过程中使用的单一简化机理,动态机理简化则在每个单元(或粒子)中,在每次流迭代(对于稳态模拟)或时间步长(对于瞬态模拟)中“即时”执行。由于机理仅需要在局部单元条件下准确,动态机理简化可以在更高的简化水平下使用,同时精度损失比骨架机理更少[[394](第1079页),[489](第1085页)]。
在Ansys Fluent中,机理简化使用定向关系图(DRG)方法进行[[392](第1079页),[393](第1079页)],接下来将进行描述。
7.3.3.1 机理简化的定向关系图(DRG)方法
给定需要精确建模的组分列表(称为“目标”),DRG消除了机理中对预测目标演化贡献不大(直接或间接)的所有组分和反应。
为了生成简化机理,DRG实施以下步骤:
- DRG考虑每个非目标组分对单个单元内每个目标组分总体产量的归一化贡献:
以下文本的中文翻译:
表示在由温度 、压力 和组分质量分数 定义的局部单元条件下,基本反应 的化学反应速率。
是反应 中组分 的化学计量系数。
组分 被保留在机制中当且仅当涉及组分 和 的最大反应速率大于单元内涉及组分 的最大反应速率的某个分数 :
其中, 是一个指定的误差容限。
对于机制中每一个非目标组分 ,计算其归一化贡献值 ,以识别所有直接对目标组分 建模有显著贡献的非目标组分。这些组分构成了 的依赖集。此过程针对所有目标组分重复进行,并将各个目标组分的依赖集联合起来,形成一个综合依赖集。
- 在下一步中,DRG 算法以类似的方式识别间接贡献者,这些是直接影响依赖集而非目标组分的组分。换句话说,如果组分 包含在步骤 1 中创建的综合依赖集中,那么所有剩余的组分 中满足 的也必须被包含。步骤 1 中概述的程序应用于依赖集中的每个组分 ,以生成对其生成或消耗有贡献的组分列表。
此过程持续进行,直到没有新的组分符合加入综合依赖集的条件。
最终得到的组分集合(包括目标组分)构成了机制中保留的组分。所有其他组分,即对于结果集合中的所有组分 满足 的组分 ,被认为不重要并从机制中剔除。
- 最后,所有不涉及任何保留组分的反应也从机制中剔除。最终得到的机制即为简化后的最终机制。
一个较低维的 ODE 系统被求解,仅涉及保留的组分和反应。被剔除组分的质量分数被存储,用于计算混合物性质,如密度和热容。
需要注意的是,DRG方法的计算成本已被证明与完整详细机制中的反应数量呈线性关系。这种额外的少量开销通常会被由于使用DRG进行动态机制简化的加速效果所显著抵消。
在Ansys Fluent中,机制简化由以下两个参数控制:
- 误差容限
误差容限的默认值为0.01。
- 目标组分列表(仅在专家模式下可调,可通过TUI访问)
默认的目标组分列表包含3个组成部分。氢自由基被明确指定为第一个目标组分。氢自由基被用作默认目标组分,因为它与燃烧中的热释放紧密相关;准确预测该组分应能确保热释放的准确预测。在每个时间步或流动迭代中,DRG算法还会将质量分数最大的另外两个组分添加到目标组分列表中。
还有一个选项,当某个组分的质量分数低于给定阈值时,可以从目标列表中移除该组分。此选项在Ansys Fluent中默认是禁用的(即,最小质量分数的默认值为0)。
通常,误差容限值越小,目标组分数量值越大,生成的机制越大且更准确,但模拟速度会变慢。默认设置应能在大多数模拟中很好地平衡准确性和效率。然而,对于某些问题,如高度复杂燃料的自燃,这些参数可能需要更仔细的选择。有关如何使用动态机制简化的进一步指导,请参阅《Fluent用户指南》中的“使用动态机制简化”部分。
7.3.4 化学聚合
详细机制的反应流动计算在计算上可能要求很高,即便有ISAT提供的加速也是如此。化学聚合(CA)提供了额外的运行时间改进,但相应的精度也会有所降低。化学聚合背后的想法是收集在组成空间中接近的单元格(或对于拉格朗日PDF传输模型来说是粒子),将这些单元格的组成取平均,调用反应步骤积分器,然后将这一反应步骤映射回单元格。简而言之:
-
在反应步骤之前,将组成空间中接近的CFD单元格分组。
-
对它们的组成进行平均。
-
调用ISAT以单一的平均组成执行化学积分。
-
将这一反应步骤映射回组中的单元格。
相对昂贵的化学积分例程(ISAT)的调用次数少于域中的单元格数量。因此,化学聚合类似于反应器网络或多区模型,这些模型在比CFD模拟中单元格数量更少的区上进行反应计算。
反应映射表示为,
其中, 和 分别表示反应前后的热化学组分(温度、压力和组分分数)。默认情况下,Ansys Fluent 会遍历所有单元格(对于拉格朗日PDF输运模型则是粒子)并计算反应映射。
化学聚合在反应前遍历所有CFD单元格,并将那些在组分空间中“接近”的单元格按照指定的容差进行分组。每个分组内的组分会进行平均处理,如下所示:
其中, 表示聚合后的组分,下标 是对料仓内各单元的索引,
而 和 分别表示第 单元的密度和体积。
聚合完成后,将调用 ISAT 反应映射例程,
最终,反应后的集群组成被映射回相应仓内所有的CFD单元格中。
对于箱内的每个单元格 ,
为了确保等焓反应,反应后每个单元的焓值 设定如下:
其中, 表示单元 在反应步骤前的焓值, 是组分 的生成焓, 是单元簇反应后的质量分数,而 则是反应前的单元质量分数。
要了解如何启用化学聚合功能,请参阅用户指南中的“使用化学聚合”部分。
更多信息,请参阅以下章节:
7.3.4.1. 分箱算法
7.3.4.1 分箱算法
在每个反应步骤中,使用均匀的笛卡尔网格对单元进行分箱。组成空间具有 维,其中 是组分的数量,另外两个维度是温度和压力。为了减少在 维中表格化的成本,选择了一个由 个代表性组成空间坐标组成的子集。
为了表格化的目的, 维简化组成空间的每个坐标 被归一化如下:
其中, 和 分别表示在CFD计算域中组成空间变量 的最小值和最大值。因此,简化组成空间分箱网格在每个 坐标上从零扩展到一。超立方体在每个组分或压力坐标上被离散为 个均匀区间,在温度坐标上被离散为 个均匀温度区间。这里,(无量纲)和 (开尔文单位)是用户指定的CA容差,分别表示组分和温度维度的最大分箱大小。所有落在简化组成空间分箱内的CFD单元组成被聚集。
由于在 维超立方体中大多数分箱可能为空,因此采用动态哈希表 [30](第1058页)来高效存储这些分箱。哈希表将 维超立方体中的唯一分箱索引映射到一维线上。由于简化空间超立方体被离散为等间距分箱,因此可以为每个分箱定义一个唯一索引,如下所示:
其中, 表示在第 维度中的箱子索引。
哈希表将 映射到一个大小为 的一维表,该表远小于降维超立方体中的条目数 。一个简单的哈希映射函数是取模函数:
不同的 空间索引 可能具有相同的哈希映射索引 ,这会导致冲突。在动态哈希表中,会监控冲突的数量以及空哈希表条目的数量,并在每次迭代中调整哈希表大小 ,以使这些值保持在可接受的范围内。
表示简化空间坐标的 个组成是从 维组成空间中选择的,如下所示。默认情况下,温度被包含,压力被排除。当前算法按计算域中总质量最大的顺序排列组分。例如,对于使用空气作为氧化剂的燃烧器, 通常在此列表中排在第一位。此列表中的前 个组分被选为简化组成空间的变量。
通过选择质量最大的组分,不可避免地会忽略次要组分。由于 CO 和 在许多实际应用中受到关注,如果它们存在于计算域中, 和 会被插入列表的前端。研究发现,在表坐标中包含这些组分始终为所有热化学变量提供了更高的准确性。
总之,默认坐标算法选择 作为简化空间坐标,然后是 OH(如果 存在于 CFD 域中),然后是 (如果 存在于 CFD 域中),接着是域中质量最大的组分,直到达到 个变量(默认 )。默认的简化表大小 和组分列表应适用于大多数反应流动应用,但可以更改。请联系您的技术支持工程师以了解如何进行更改。
7.3.5 化学机理降维
维度缩减是一种化学加速方法,除了ISAT存储-检索、动态机理缩减和单元聚合外,它能在一定程度上牺牲精度的情况下提供更快的化学计算。要了解如何使用化学机理维度缩减,请参阅用户指南中的维度缩减部分。
维度缩减通过求解较少数量的组分传输方程(参见公式7.1(第238页)),即 ,而不是完整化学机理中的组分数量 。这些被称为代表性组分。剩余的 组分被称为未代表性组分。
在Ansys Fluent中,未代表性组分的构建假设它们处于化学平衡状态[527](第1087页)。维度缩减算法的实现如下:
-
Ansys Fluent 求解混合物焓和 代表性组分质量分数的传输方程。同时,还求解未代表元素质量分数的传输方程,这些是所有未代表性组分中每个原子元素的累积质量分数。
-
在反应步骤中,单元格中的初始未代表性组分通过假设它们在单元格压力和焓下处于化学平衡状态来重建,受代表性组分质量分数和未代表元素质量分数的约束。也就是说,未代表性组分被确定为在固定代表性组分的同时,使混合物熵最大化,同时满足未代表元素质量分数和混合物焓。在这一重建步骤结束时,完整机理的所有 组分质量分数在单元格中都可用。
接下来,将完整详细的反应机理与所有 种物质一起,在反应时间步长内进行积分。反应步骤后, 种代表性物质的反应映射可用,而未代表性物质的映射则被丢弃。
由于维度缩减集成了完整的化学机理,这在计算上非常昂贵,其优势在于与 ISAT 耦合。一个具有 维的 ISAT 表将比在相同时间内对完整 维的 ISAT 表覆盖更多的反应流形。因此,采用维度缩减的模拟在一开始并不比采用完整机理的模拟快多少,但在后期迭代时,当检索 ISAT 表时,速度可以显著加快。此外,启用维度缩减的检索时间(与 成正比)远小于采用完整机理的检索时间(与 成正比)。因此,维度缩减仅在 ISAT 下可用。
请注意,只要代表性物质的数量少于 700 种,维度缩减允许 CFD 模拟包含超过 Ansys Fluent 传输组分限制 700 种的完整化学机理。
更多信息,请参见以下部分:
7.3.5.1. 选择代表性组分
7.3.5.1 选择代表性组分
明智地选择表示的组分对于模拟的准确性至关重要。边界和初始组分必须包含在表示的组分列表中。感兴趣的组分,尤其是那些远离化学平衡的组分,如污染物,也应该被包括在内。相对于燃料和氧化剂组分,质量分数较大的中间组分以及在化学途径中重要的组分也应该被包括。例如,对于空气中的甲烷燃烧,应将作为表示的组分,因为首先热解为。
在Ansys Fluent中,您需要指定表示的组分数量以及选定的表示组分,如边界燃料和氧化剂组分。当选定的表示组分数量少于输入的表示组分数量时,剩余的表示组分将从完整的机制中按其在混合组分列表中出现的顺序选取。
在使用维度缩减获得初步解决方案后,检查所有未表示组分的大小是一个好主意,这些组分可以在轮廓对话框的“完整机制组分...”选项中找到。如果某个未表示组分的质量分数大于其他表示组分,您应该重复模拟,并将该组分包含在表示组分列表中。这样,未表示元素的质量分数应该会降低。
7.3.6 Fluent CHEMKIN-CFD求解器的动态单元聚类
对于涉及直接使用有限速率化学反应的模拟,组分方程中的化学反应部分是逐单元求解的。因此,所求解的方程与特定单元的质量和体积无关。这样一来,具有相同温度、压力和初始组分质量分数的单元将产生相同的结果。为了利用这一事实,当您选择 Ansys CHEMKIN-CFD 求解器时,Ansys Fluent 采用动态单元聚类(DCC)方法,通过一种高效的数据聚类方法将高度相似的计算单元分组为聚类。这要求仅对每个聚类求解一次动力学方程。每个 CFD 时间步的最优聚类数量是动态确定的。聚类算法仅基于单元的物化状态,与其在 CFD 网格中的位置无关。此外,聚类算法高度自动化,所需输入极少。该算法使用单元温度和当量比作为聚类指标。
DCC 方法包括三个主要步骤:
- 使用进化数据聚类算法将单元分组为聚类。
- 基于聚类平均状态变量求解化学动力学方程。
- 将聚类平均解映射回各个单元,同时保持初始温度和组分分层。
有关动态单元聚类的更多信息,请参阅 Fluent 用户指南中的“使用动态单元聚类”部分。
7.3.7. 使用 Fluent CHEMKIN-CFD 求解器的动态自适应化学
为确保在广泛的热化学条件下保持有效性,现实燃料燃烧的综合动力学机制通常包含数百种组分和数千个基元反应。然而,对于特定局部条件在短时间内(通常取为CFD计算中的流体动力学时间步长),往往只需少数组分和反应即可捕捉主要反应路径。Ansys Fluent提供了动态自适应化学(DAC)方法[367](第1078页),[368](第1078页),该方法正是利用了这一点。该方法将全面详细的机制简化为局部有效的小型机制。这一操作在动态模拟过程中实时进行(即在每个时间步长进行)。它基于一种称为带误差传播的有向关系图(DRGEP)的骨架机制简化方法[392](第1079页),提供了非常高效且精确的简化。动态自适应化学与动态机制简化(参见动态机制简化(第287页))类似,但仅适用于CHEMKIN-CFD求解器。有关该方法理论背景的详细信息,请参阅[367](第1078页),[368](第1078页)和[392](第1079页)。
如需了解如何使用动态自适应化学方法,请参阅《Fluent用户指南》中的“使用Ansys Fluent CHEMKIN-CFD求解器的动态自适应化学方法”部分。