2. 多物理场耦合问题建模基础
多物理场耦合建模的核心困难,不在于单个物理场方程本身,而在于两个或多个场通过什么通道交换信息、以什么强度相互影响、以及这种影响在数值上如何被稳定求解。如果只把各物理场的求解器简单串联,往往会在界面处出现能量不守恒、收敛振荡或结果对时间步长极度敏感的问题。因此,建模前必须先明确耦合类型、耦合强度与界面条件,再选择求解策略。
一、耦合类型:域耦合、边界耦合与体积耦合
域耦合指多个物理场在同一求解域内同时存在、彼此重叠。例如电化学-热耦合中,电池内部同一区域既发生电荷守恒与物质扩散,又伴随焦耳热与反应热,温度场反过来改变电导率和反应速率。这类耦合的方程通常需要联立求解,变量在同一套网格节点上定义。
边界耦合指各物理场分别位于不同域,仅通过共享边界传递通量或变量。流固耦合是典型代表:流体域求解Navier–Stokes方程,固体域求解弹性动力学方程,二者在交界面满足速度连续与应力连续。边界耦合的建模重点是界面网格匹配、通量守恒以及界面变量的插值精度。
体积耦合指一个场的源项分布在另一个场的体积内,而非集中在边界。例如电磁热中的感应涡流生热作为热源分布于导体体积内,热结构中的温度梯度作为热应变源分布于整个结构体积。体积耦合要求源项在单元积分点上正确映射,否则会出现局部能量偏差。
二、强耦合与弱耦合
强耦合指各物理场相互影响显著,不能通过一次单向传递获得收敛解。例如流固耦合中,流体压力使结构变形,结构变形又显著改变流道形状和流速,进而改变压力分布。此时若采用弱耦合(先算流体、再算固体、不迭代),误差会随耦合强度增大而累积。强耦合通常采用整体式求解或分区迭代至界面残差低于阈值。
弱耦合指一个场对另一个场的影响可忽略或单向。例如低流速下的热结构分析,温度场由外部热源决定,结构变形对温度分布的反作用极小,可先算温度再算热应力。弱耦合计算成本低,但必须验证单向假设是否成立。
判断强弱的实用指标是耦合灵敏度:若界面变量变化10%导致另一场响应变化超过5%,则倾向强耦合。另一个指标是松弛因子:分区迭代中若松弛因子需小于0.3才能稳定,说明耦合较强。
三、控制方程与界面条件
多物理场建模的数学基础是各场的控制方程加上界面条件。以流固耦合为例:
流体域(ALE描述):
ρ_f (∂v/∂t + (v - v_m)·∇v) = -∇p + μ∇²v + f
∇·v = 0
固体域(拉格朗日描述):
ρ_s ∂²u/∂t² = ∇·σ + b
界面条件(Γ_fs):
运动学:v_f = ∂u_s/∂t
动力学:σ_f · n = σ_s · n
几何:网格位移 d_f = u_s
界面条件必须同时满足运动学与动力学约束,否则会出现能量泄漏或虚假振荡。在数值实现中,界面通量通常采用保守插值,即保证传递前后的总力与总热流相等。对于非匹配网格,需使用径向基函数或最近邻加权插值,并检查插值误差是否小于5%。
四、典型多物理场场景的建模要点
流固耦合:重点在于界面网格更新与ALE方程。若结构变形超过流体单元尺寸的20%,需采用动网格或浸入边界法。时间步长应满足CFL条件,且结构响应频率需被时间步长分辨。示例:血管壁与血液耦合,壁面弹性模量1 MPa,血流速度0.5 m/s,时间步长取1e-4 s可捕捉壁面脉动。
热结构:温度场产生热应变ε_th = α(T - T_ref),进而产生热应力。建模时需注意参考温度T_ref的选取,以及材料属性随温度变化。若温度梯度大,应使用非线性热弹性本构。示例:铝合金板α=23e-6 /K,温差80 K,约束条件下热应力约44 MPa,接近屈服强度,需考虑塑性。
电磁热:涡流生热Q = |J|²/σ,其中J为感应电流密度。电磁场频率决定趋肤深度δ = √(2/(ωμσ))。若网格尺寸大于δ,需使用边界层网格。示例:铜导体σ=5.8e7 S/m,频率50 Hz,δ≈9.3 mm,网格在表面处应小于3 mm。
电化学-热:锂离子电池中,产热包括不可逆反应热与可逆熵变热。建模需耦合电荷守恒、物质扩散与能量守恒。关键参数是交换电流密度i0与扩散系数D,二者均随温度呈Arrhenius关系。示例:18650电池在1C放电时,温升约15 K,若散热系数低于5 W/(m²·K),温升可超过30 K,需调整散热设计。
- 耦合类型是否明确?域耦合、边界耦合还是体积耦合?
- 耦合强度是否评估?单向假设是否经过验证?
- 界面条件是否同时满足运动学与动力学约束?
- 网格是否匹配?非匹配时插值误差是否可控?
- 时间步长是否分辨最快物理过程?
- 材料属性是否随场变化?是否使用非线性本构?
多物理场耦合建模的本质是在正确的位置、以正确的强度、传递正确的物理量。耦合类型决定信息通道,强弱耦合决定求解策略,界面条件决定守恒性,而典型场景的建模要点则提供了可复用的参数范围与判断依据。掌握这些基础,才能在后续的验证与确认中区分“模型误差”与“耦合误差”。