4. 网格参数化与变形技术

在CFD参数化优化中,几何参数每变化一次,计算域边界就会移动。如果每次都重新生成网格,不仅耗时,还会让目标函数曲线混入网格离散误差的噪声,导致优化器误判方向。网格变形技术的核心目标,是让已有网格“跟着几何走”:在保持网格拓扑不变的前提下,把边界位移平滑地传递到内部节点,使优化循环中的网格质量始终满足求解要求。本节围绕弹簧光顺、扩散光顺和径向基函数(RBF)变形三种主流策略展开,说明它们的原理、适用场景与质量保障方法。

一、为什么需要网格变形而非重划网格

参数化优化通常需要几十到几百次几何更新。以翼型气动优化为例,若每次都用同样的网格生成参数重新划分,边界层第一层高度、增长率、y+分布会随几何曲率变化而波动,同一设计点在不同迭代步的离散误差可能达到百分之几,足以掩盖真实的气动收益。网格变形则保持节点总数、单元连接关系和边界层结构不变,只移动节点坐标,使不同设计点之间的数值误差高度相关,优化器更容易识别真实梯度。

变形的前提是几何参数化与网格节点建立映射。常见做法是把几何边界表示为设计变量 x = [x₁, x₂, …, xₙ] 的函数,边界节点坐标随 x 更新,内部节点由变形算法求解。因此,变形质量取决于两个环节:边界位移是否合理,以及内部位移是否平滑。

二、三种变形策略的原理与对比

弹簧光顺(Spring Smoothing)把每条网格边视为一根弹簧,边ij的刚度通常取 k_ij = 1 / |x_i − x_j|^p,p 常取 1~2。边界移动后,内部节点在弹簧力平衡下重新定位。它的优点是实现简单、局部适应快,适合小位移;缺点是当边界位移较大时,靠近边界的单元容易被过度拉伸或压缩,甚至出现负体积。

扩散光顺(Diffusion Smoothing)把位移看作在计算域内扩散的物理量,求解方程 ∇·(γ∇u) = 0,其中 u 为位移场,γ 为扩散系数。常用 γ = 1 / d^α(d 为到边界的距离,α 为扩散参数),使远离边界的区域承担更多位移,边界附近网格保持较密。扩散光顺比弹簧光顺更平滑,适合中等位移和复杂外形,但需要求解一个椭圆型方程,计算量略高。

径向基函数(RBF)变形用一组基函数的线性组合插值位移场:u(x) = Σ λ_i φ(|x − x_i|) + p(x),其中 φ 常取 Wendland 或高斯型基函数,x_i 为控制点,p(x) 为低阶多项式。RBF 的突出优势是位移场全局光滑、可控性强,且控制点可以只布置在物面和远场,不必覆盖全部网格节点。它特别适合大位移、多部件相对运动以及需要保持远场静止的场合。代价是需要求解一个稠密线性系统,控制点数量多时计算和存储开销上升。

网格变形策略:边界位移 → 内部节点更新 → 质量判据 弹簧光顺 k_ij = 1 / |x_i − x_j|^p 边界上移 优点:实现简单、局部响应快 局限:大位移易拉伸、可能负体积 适用:小位移、局部外形微调 扩散光顺 ∇·(γ∇u) = 0,γ = 1 / d^α 边界上移 优点:位移分布平滑、边界层保持好 局限:需求解椭圆方程、计算量略高 适用:中等位移、复杂外形 径向基函数 RBF u(x) = Σ λ_i φ(|x − x_i|) + p(x) 边界上移 控制点 优点:全局光滑、控制点灵活、大位移稳 局限:稠密线性系统、控制点多时开销大 适用:大位移、多部件、远场静止 质量判据:最小正交质量 > 0.05~0.1 | 最小体积 > 0 | 最大长宽比 < 1000 | 边界层 y+ 漂移 < 5% 任一判据越界 → 回退步长或切换变形策略

三、变形质量判据与监控

变形后必须检查网格质量,不能只看“有没有负体积”。工程上建议同时监控以下指标:

  • 最小正交质量(Orthogonal Quality):反映单元面法向与形心连线的夹角,低于 0.05 时求解器容易发散;
  • 最小体积:必须严格大于 0,接近 0 时即使未负体积也会导致刚度矩阵病态;
  • 最大长宽比:边界层单元被拉伸后长宽比可能从 200 升到 1000 以上,影响壁面梯度分辨率;
  • 边界层第一层高度与 y+ 漂移:若第一层高度变化超过 5%,壁面剪切应力与传热预测会失真。

一个实用的做法是在优化脚本中设置“质量门限”:每次变形后计算上述指标,若任一越界,则回退到上一步设计变量并缩小步长,或临时切换到 RBF 变形重新映射。这样可以在不中断优化循环的前提下保证网格可用。

四、实操示例:翼型参数化变形流程

下面以 NACA 四位翼型参数化为例,说明一次完整的变形操作。设计变量取弯度 m、弯度位置 p、厚度 t,初始翼型为 NACA 2412(m=0.02, p=0.4, t=0.12)。网格为 C 型结构网格,物面 200 个节点,法向 80 层,第一层高度 1e-5 m,远场半径 20 倍弦长。

# 伪代码:一次网格变形迭代
x_new = [m + dm, p + dp, t + dt]          # 更新设计变量
boundary_disp = compute_airfoil_disp(x_new)  # 物面节点位移
if max(|boundary_disp|) < 0.02 * chord:
    mesh = spring_smoothing(mesh, boundary_disp, p=1.5)
else:
    mesh = rbf_deform(mesh, boundary_disp, ctrl_pts=airfoil_pts, kernel='wendland')
q_min, vol_min, ar_max = check_quality(mesh)
if q_min < 0.08 or vol_min < 1e-12 or ar_max > 800:
    reject_step(); reduce_step_size(0.5)
else:
    accept_step(); write_mesh(mesh)

在这个示例中,位移阈值 0.02 * chord 是经验值:小于弦长 2% 的位移用弹簧光顺足够,超过则改用 RBF。控制点只取物面节点和远场边界节点,共约 300 个,求解 300×300 的稠密系统在普通工作站上耗时约 0.1 秒,远低于重新划分网格的数十秒。质量门限设为正交质量 0.08、最小体积 1e-12、最大长宽比 800,是兼顾鲁棒性与计算成本的保守取值。

提示:如果优化过程中出现“网格质量突然恶化但几何变化不大”,优先检查边界位移是否在物面曲率大的位置产生了非物理的局部尖角。此时可在 RBF 中增加曲率大的区域的控制点密度,或对边界位移做一次低通滤波。

五、策略选择与组合使用

三种策略并非互斥。实际优化框架中常见的组合是:先用 RBF 把几何变化映射到物面附近,再用扩散光顺处理近壁区,最后用弹簧光顺做局部微调。这样既保证了大位移下的全局光滑性,又保留了边界层网格的贴体性。选择依据可以归纳为:位移量小于弦长 2% 用弹簧光顺;位移量在 2%~10% 且外形复杂用扩散光顺;位移量大于 10%、多部件相对运动或远场必须静止时用 RBF。无论采用哪种策略,每次变形后都必须执行质量检查,并把质量指标作为优化循环的约束条件之一,而不是事后补救。

注意:网格变形不改变网格拓扑,因此它无法处理几何拓扑变化(如开孔、分离、部件增减)。若优化过程中出现拓扑变化,必须重新生成网格,并在新旧网格之间做解插值,否则变形算法会失效。