PISO、SIMPLE算法对比分析

之前,我们简要分析了SIMPLE、PISO 、PIMPLE算法,今天,对PISO、SIMPLE算法进行对比分析。

两种算法的逻辑结构以及代码分析可以查看SIMPLE、PISO 、PIMPLE算法浅析。

一 解决的主要问题

对于icoFoam求解器(不可压缩,瞬态),由NS方程,我们有:
∇ ⋅ U = 0 (1) \nabla \cdot \mathbf U=0\tag1 U=0(1)
∂ U ∂ t + ∇ ⋅ ( U U ) − ∇ ⋅ ( ν ⋅ U ) = − ∇ p ρ (2) \frac{\partial \mathbf U}{\partial t}+\nabla \cdot ({\mathbf U}\mathbf U{}) -\nabla \cdot(\nu \cdot \mathbf U)=-\nabla \frac p{\rho}\tag2 tU+(UU)(νU)=ρp(2)

此方程涉及到以下两个方面问题:

  1. 非线性问题:动量方程包含了非线性项,即 ∇ ⋅ ( U U ) \nabla \cdot (\mathbf U \mathbf U) (UU)。在对其线性化处理的时候,意味着需要用已知时间步的速度来计算速度系数矩阵 A A A。这进而又分为两个情况:
  • 稳态: A A A 的滞后问题在收敛的时候无关紧要

  • 瞬态: 在每一个时间步迭代求解----适用于大时间步计算(PIMPLE算法),其优点是非线性项完全被求解,问题是会耗费计算机资源,并且大的时间步计算会使时间项离散引入大的误差。

  • 我们可以使用小的时间步以降低时间项离散误差。在时间步很小(PISO算法)的时候,每个时间步的流场改变也很小,因此可以忽略滞后项滞后性。

  1. 速度压力耦合方程被耦合在一起,因为每个动量方程以及连续性方程都包含U。而p只出现在动量方程中。这进而又分为两个情况:
  • 稳态:由于每个迭代步的场更新比较大,因此对于速度压力的耦合问题不是很重要。
  • 瞬态:由于每个时间步内场更新比较小,并且我们需要每个时间步内的真实的速度场和压力场,速度压力耦合问题是至关重要的。

二 算法特点

针对以上两个问题的稳态瞬态的不同,于是有了非迭代的瞬态PISO 算法和迭代的稳态SIMPLE算法。其区别就在于:

  • 稳态类算法:时间步内的场改变是很小的,主要处理速度压力耦合问题
  • 瞬态类算法:迭代步内场改变很大,主要处理速度方程的线性化滞后问题
  • 其他差别参见SIMPLE、PISO 、PIMPLE算法浅析。

你可能感兴趣的:(pimple,piso,simple,OpenFOAM,CFD)