单体式(一体化)CHT解法
理论与物理
整体式CHT的基本概念
“整体式CHT”和传统的“分离式”在根本上有什么不同?仅仅是求解器一起求解吗?
根本区别在于控制方程的离散化和求解阶段。分离式方法使用不同的求解器交替求解流体和固体方程,并在边界交换数据。而整体式方法从一开始就将其表述为一个单一的方程组。例如,将非稳态热传导和流体的能量方程,以界面处温度和热流连续性条件作为内部边界条件直接纳入的形式。这从本质上减轻了界面迭代收敛延迟以及小时间步长下的不稳定性问题。
将控制方程写成“一个系统”具体是什么形式?流体和固体使用的变量应该也不同吧。
问得好。变量是统一的。在许多实现中,在整个计算域(流体+固体)采用“温度”作为主要变量。在流体域中,除了求解纳维-斯托克斯方程和连续性方程外,还以温度形式求解能量方程。在固体域中求解热传导方程。将这些组合成一个矩阵时,就形成了如下所示的块结构:
界面处的“热流连续性”在矩阵中是如何强制执行的?需要特殊处理吗?
是的,通过在界面单元(例如跨越流体和固体的单元)的离散化中,恰当处理弱形式的边界积分项来实现。具体来说,在界面 Γ 上,
数值解法与实现
离散化与求解器策略
那么大的块矩阵如何高效求解?流体和固体的矩阵性质(非对称 vs 对称)也不同吧?
这正是实现的关键。整体矩阵是非对称且大规模的。直接法不现实,因此 Krylov 子空间法(例如 GMRES)与预处理子的组合是必须的。具体预处理方面,对流体块
非稳态分析时,时间积分怎么做?流体和固体最优时间步长大小感觉完全不同。
这是整体式方法的一大优点。由于是作为一个方程组处理,可以对整体应用隐式积分法(例如后向差分公式 BDF2)。这样,就不受流体 CFL 条件或固体傅里叶数的限制,能够基于物理现象选择时间步长。例如,在汽车发动机部件的热响应分析中,需要同时处理燃烧循环(数毫秒)和缸体的热渗透(数秒),整体式方法可以设置 1ms 到 10ms 左右的时间步长并稳定求解。Abaqus/Standard 的共轭热传导分析也采用了类似的隐式时间积分。
网格在界面处需要一致吗?非一致网格的话,那个耦合项
不一定需要一致网格。为了处理非一致网格,在界面积分时,会使用“映射”技术,即利用另一侧网格(例如固体侧)的形函数对一侧网格(例如流体侧)节点上的温度或热流进行插值。这样,
实践指南
工作流程与验证
实际开始用整体式CHT进行分析时,首先应该确认/设置什么?
首先要确认“物性值的数量级”。特别是热导率和体积热容。空气的热导率约为 0.026 W/mK,钢约为 50 W/mK,相差 3 个数量级以上。在整体式方法中,这些值直接进入矩阵,会导致条件数恶化,成为求解器发散的原因。对策是进行无量纲化,或启用软件的缩放选项。在 ANSYS Mechanical APDL 中进行 CHT 时,使用 `MP` 命令输入物性时,必须严格检查单位制的一致性。
如何验证分析结果才能说是可靠的?仅仅看温度分布是不够的吧?
确实如此。至少需要定量检查以下两点。 1. **界面热流平衡**:从流体到固体的净热流与固体内部传导的热流,在稳态下是否满足守恒定律。例如,确认界面积分热流的差值在总输入热量的 1% 以内。 2. **代表点的温度历程**:对于非稳态分析,固体内部特定点的温度上升曲线,在趋势上是否与简化的一维热传导分析(例如,固定传热系数的情况)一致。 在实际工作中,与 JIS B 8622(冷却塔性能试验通则)或 SAE 标准(例如发动机冷却相关)规定的实验数据进行比较是黄金标准。
网格依赖性研究,是流体和固体分开做,还是包括界面一起做?
应该包括界面一起进行。因为整体式方法的精度强烈依赖于界面附近的网格分辨率。具体步骤是,首先生成适当的边界层网格(流体侧)和考虑了固体热渗透深度的网格。然后,系统地细化整体网格尺寸(例如将基础尺寸设为 1.0, 0.7, 0.5 倍),确认监控对象(例如界面的平均传热系数或固体最高温度)的变化在例如 2% 以内。Altair AcuSolve 的教程中,作为 CHT 的网格依赖性验证,推荐将界面附近的单元纵横比保持在 5 以下。
软件比较
各求解器的实现与特点
哪些软件以“整体式CHT”为卖点?另外,如何辨别那些内部只是做分离式的软件?
真正实现整体式求解的软件目前有限。COMSOL Multiphysics 通过“系数型偏微分方程”接口将流体和固体方程描述为一个系统,本质上是整体式的。另一方面,ANSYS Fluent 的“Coupled Thermal Boundary Condition”仅在界面处耦合能量方程,与动量方程分离求解,可称为“部分整体式”。辨别方法是查看求解器输出日志,确认流体和固体温度场是在“一个线性求解器调用”中更新,还是作为“外部/内部迭代”分别调用。
免费/开源软件呢?OpenFOAM 的 `chtMultiRegionFoam` 是整体式的吗?
OpenFOAM 的 `chtMultiRegionFoam` 默认是**分离式方法**。它分别调用流体求解器(`buoyantSimpleFoam` 等)和固体求解器(`solidTemperature`),运行一个在界面交换温度和热流的“外部迭代”循环。不过,在开发版本或衍生求解器中,也存在将能量方程部分进行整体式求解的实验性实现。如果追求完全的整体式方法,则需要使用 `fe40` 或 `CalculiX` 这类基于有限元的开源代码,并自己实现自定义单元。
Abaqus 和 ANSYS Mechanical 是结构热传导的专家,但它们能处理与流体的 CHT 吗?
它们单独使用时,需要以“与外部 CFD 软件联动”的形式进行。Abaqus/Standard 有“共轭热传导分析”功能,但这处理的是多个固体区域之间的热传导,不包含流体。要进行包含流体的 CHT,需要使用 Abaqus CFD(原 Dassault Systèmes 的 `PowerFLOW` 联动),或者在 ANSYS 的情况下,使用 `System Coupling` 将 Fluent(流体)和 Mechanical(固体)双向耦合。这是软件间的分离式方法,存在计算成本和数据传输开销大的缺点。
故障排除
发散与误差对策
分析在最开始的几步就突然发散了。物性值和边界条件没有明显错误。
最常见的原因是“初始场不协调”。特别是,当将固体的初始温度设为均匀室温(20°C)时,与流入的高温流体(例如 500°C)在界面处会产生极端的温度梯度,导致第一个时间步计算出的热流在物理上变成不可能的巨大值,从而使求解器崩溃。对策是,将固体初始温度设置为接近流体流入温度的值,或者在最初几十个时间步使用非常小的时间步长(例如 1e-6 秒)缓慢启动物理场的“斜坡函数”。使用 Siemens Star-CCM+ 的 `Field Function` 可以轻松设置此类初始化配置文件。
非稳态分析中,界面温度出现“振荡”。即使缩小时间步长也没有改善。
这是当流体和固体的热阻抗(热扩散率之比)极端不同时发生的数值“刚度”问题。空气(热扩散率 α ≈ 2e-5 m²/s)和铜(α ≈ 1e-4 m²/s)还好,但空气和树脂(α ≈ 1e-7 m²/s)时问题就会显著。对策有两个。1) 将时间积分格式改为更稳定的(例如,从 BDF1 改为 BDF2)。2) 收紧求解器的收敛准则。特别是在 COMSOL 中,将“相对容差”从默认的 0.01 降低到 0.001 以下,通常可以抑制这种振荡。从根本上说,需要将界面附近的网格在热扩散率较低(= 传热困难)的材料一侧加密。
稳态分析中,残差下降,但界面热流不收敛到一个定值。为什么?
这种现象表明求解器虽然减小了“局部”质量、动量、能量守恒方程的残差,但尚未达到“全局”的热平衡。主要原因有两个。1) **松弛因子过强**:特别是对固体热传导方程施加了过强的欠松弛时,更新量过小,导致达到整体热平衡所需的迭代次数巨大。2) **边界条件遗漏**:固体外部绝热边界不完全,或流体流出边界热流不为零(如对流流出)。对策是,监控全局热收支(流入热量 = 固体内部发热 + 系统损失),并持续计算直到其收敛。在 ANSYS Fluent 中,可以使用 `Surface Monitor` 监控边界的积分热流。
使用非一致网格后,界面处的温度分布变得“锯齿状”。这在允许误差范围内吗?
那是映射误差导致的“数值热流泄漏”的典型症状。不可接受。使用非一致网格时,请确认以下几点。 1. **映射方法**:简单的最近邻插值不行,至少需要使用线性插值,理想情况下是保证守恒性的投影法。 2. **网格尺寸比**:粗网格侧的单元尺寸与细网格侧的单元尺寸之比超过 5 倍时,误差会变得显著。可能的话控制在 2 倍以内。 3. **界面网格质量**:特别是流体侧边界层网格的纵横比过大时,界面垂直方向温度梯度的插值精度会下降。 在 OpenFOAM 中使用 GGI 时,通过严格设置 `tolerance` 或 `relTol` 参数(约 1e-6 程度)有时可以改善。根本的解决方法是提高界面附近两侧的网格分辨率,使其相当。
なった
詳しく
報告