SU2 CFD求解器

分类:开源CAE | 2026-10-02 改写
CAE visualization for su2 cfd theory - technical simulation diagram
SU2 CFD求解器

理论:用一次伴随计算求形状优化梯度

概述

🙋

开源CFD中OpenFOAM很有名,为什么要选SU2?

🎓

当你想自动改进形状的时候。SU2诞生于斯坦福大学的航空航天设计实验室,它不仅求解流动,还能用伴随法高效计算“为了进一步降低阻力,形状该往哪个方向变”的梯度。用几十到几百个变量描述机翼形状进行优化时,这个梯度的计算成本决定了总时间。OpenFOAM在物理模型的种类和自由度上更胜一筹,但SU2一开始就提供了形状优化的整套流程(形状变形、流动计算、伴随计算、梯度计算、形状更新)。应按用途选择。

伴随方程

$$ \frac{dJ}{d\boldsymbol{\alpha}} = \frac{\partial J}{\partial \boldsymbol{\alpha}} + \boldsymbol{\psi}^{\mathsf T}\frac{\partial \mathbf{R}}{\partial \boldsymbol{\alpha}},\qquad \left(\frac{\partial \mathbf{R}}{\partial \mathbf{U}}\right)^{\mathsf T}\boldsymbol{\psi} = -\left(\frac{\partial J}{\partial \mathbf{U}}\right)^{\mathsf T} $$

J为目标函数(如阻力),α为设计变量,U为流动解,R为离散方程的残差,ψ为伴随变量。只要求解一次右边的伴随方程,无论设计变量有多少,都能用左式得到全部梯度。SU2用自动微分实现了直接对离散方程求导的离散伴随。

Coffee Break 随笔闲谈

源于翼型设计的工具

把伴随法正式引入流体形状设计,一般认为始于1980年代末詹姆森的研究,他用流动方程的伴随求解翼型压力分布的反设计问题。SU2是继承这一脉络的斯坦福大学实验室于2012年公开的代码,此后全世界的大学和企业参与开发,功能扩展到湍流、多物理场和多级优化。

算例

例1:梯度计算时间(单次流动计算2小时,20次迭代)

设计变量差分(每次)伴随(每次)比20次迭代:差分20次迭代:伴随
1022小时4.6小时5440小时(18天)92小时
50102小时4.6小时222,040小时(85天)92小时
200402小时4.6小时878,040小时(335天)92小时

假设伴随计算成本为流动计算的1.3倍(随问题和设置而变)。伴随法的时间与设计变量数无关。

例2:湍流平板验证的第一层厚度(空气,50 m/s)

$$ C_f = 0.0592\,Re_x^{-0.2},\qquad u_\tau = U\sqrt{C_f/2},\qquad \Delta y = \frac{y^+\,\nu}{u_\tau} $$
位置 xRe_xC_fu_τy⁺=1厚度y⁺=30厚度
0.1 m3.33×10⁵0.004652.41 m/s6.2 μm187 μm
0.5 m1.67×10⁶0.003372.05 m/s7.3 μm219 μm
1.0 m3.33×10⁶0.002941.92 m/s7.8 μm235 μm

壁面解析型湍流模型(如标准SA模型)以y⁺≈1为目标,平板前缘附近摩擦更大,第一层需更薄。把计算得到的摩擦系数与上面的经验公式比较,看是否在几个百分点内一致。

🙋

配置文件怎么写?

🎓

SU2把所有条件写在一个文本配置文件(.cfg)里。湍流平板计算用 SOLVER= RANS、KIND_TURB_MODEL= SA 选择方程和模型,用 MACH_NUMBER、REYNOLDS_NUMBER 设定流动条件,用 MARKER_HEATFLUX= ( wall, 0.0 ) 指定绝热壁,用 MARKER_FAR 指定远场边界。数值方法一般用 CONV_NUM_METHOD_FLOW= ROE 和 MUSCL_FLOW= YES 设为二阶迎风格式。进入形状优化时指定 MATH_PROBLEM= DISCRETE_ADJOINT 和 OBJECTIVE_FUNCTION= DRAG,用自由变形(FFD)控制点表示形状,用附带的Python脚本(shape_optimization.py)反复进行流动计算、伴随计算和形状更新。从官方教程的配置文件出发,只替换网格和条件,最不容易出错。

使用流程

  1. 原样运行并复现官方教程中的同类问题。
  2. 换成自己的网格,确认y⁺和收敛(残差和阻力历史)。
  3. 在平板等验证问题上,把摩擦和压力分布与参考解比较。
  4. 用少量变量把伴随梯度与差分梯度比较确认。
  5. 用FFD表示形状,加入约束(厚度、升力)运行优化。
Coffee Break 随笔闲谈

“梯度对不上的优化”

某管道压损的优化中,无论迭代多少次目标函数都不下降。把伴随梯度与两个设计变量的差分梯度比较,连符号都对不上。原因是流动计算未充分收敛就进入了伴随计算。把收敛判据加严到残差下降4个数量级,并让湍流模型方程也收敛后,梯度与差分在1%以内一致,优化几次后压损开始下降。

常见错误

错误与对策

错误后果对策
流动计算收敛不足梯度出错使残差充分下降
不确认梯度优化不前进与差分比较
不确认y⁺摩擦阻力出错由目标y⁺定第一层
不加约束形状过薄厚度和升力约束
FFD框未覆盖形状不变形或损坏确认框的位置
🙋

我想了解相关内容。

关联模拟器

在本领域的交互式模拟器中体验理论

模拟器列表

相关分析领域

结构分析流体分析(CFD)热分析
本文评价
感谢您的反馈!
有帮助
更详细
报错
有帮助
0
更详细
0
报错
0