OpenFoam——PISO,SIMPLE和PIMPLE算法
隐式:PISO
半隐式:SIMPLE
组合式:PIMPLE(PISO + SIMPLE)
PISO算法
PISO算法是一种常用于求解不可压缩流体流动问题的数值方法,它在OpenFOAM中被广泛应用。PISO算法的全称为Pressure Implicit with Splitting of Operators,即利用算子分裂的方法进行隐式求解压力和速度。
PISO算法主要分为两步,分别是预处理和求解。
预处理部分主要涉及离散方程的重构和修正。首先,在离散不可压缩Navier-Stokes方程中,速度和压力是同时求解的,但在离散方程的构建中,需要将速度和压力进行隔离,通过构建动量方程和质量守恒方程将两者联系起来。然后,通过预处理部分的修正,消除因速度场估计误差引入的不稳定性,提高计算精度。
求解部分主要是将修正后的动量方程进行求解,包括压力的求解和速度场的更新。在PISO算法中,通过引入一个压力修正项来进行压力场的求解,并通过速度修正项对速度场进行修正。最后,通过这个修正项来计算下一个时间步长的速度场。
总之,PISO算法是OpenFOAM中用于求解不可压缩流体流动的重要算法之一,其优点是稳定性较好、计算精度较高,因此在工业应用中得到广泛的应用。
SIMPLE算法
SIMPLE (Semi-Implicit Method for Pressure-Linked Equations)是一种流体力学中求解流场的算法。它是一种迭代算法,用于解决Navier-Stokes方程组。其基本思想是先对速度场的对流项和扩散项分别处理,然后将它们耦合起来,通过求解一个修正的连续方程来获得压力场,再将其应用于速度场的修正。算法的核心在于通过求解一个修正的连续方程来间接求解压力场,从而实现了速度和压力的耦合。
在SIMPLE算法中,通过对Navier-Stokes方程组进行离散,将其转化为一个有限体积方程组。对于速度场的对流项和扩散项,采用隐式格式进行离散,从而避免了时间步长的限制。通过对连续方程进行修正,可以消除速度场和压力场之间的耦合,并使得速度场满足不可压缩条件。通过迭代求解,最终获得速度场和压力场的数值解。
PIMPLE算法
PIMPLE是OpenFOAM中的一种求解算法,是针对压力-速度耦合问题的一种多步骤算法。PIMPLE算法包含了两个外层循环和三个内层循环,每个时间步长需要按顺序执行以下几个步骤:
预处理阶段(outer loop 1):在这个阶段,首先要设置时间步长,并进行网格划分和初始化变量。然后,需要解决不可压缩流动的初值问题,即求解速度和压力的初始值。
内部循环1:在这个阶段,首先要求解速度场。根据不可压缩流体的连续性方程,需要对速度场进行修正以满足质量守恒。修正速度场的方法是通过求解动量守恒方程和质量守恒方程获得的压力梯度。然后,需要使用这个修正后的速度场,来重新计算质量守恒方程的残差,并将其与预先设定的收敛标准进行比较,以判断求解是否收敛。
内部循环2:在这个阶段,需要求解压力场。根据Poisson方程,可以计算出压力梯度。然后,将这个压力梯度应用于速度场,得到新的速度场,并重新计算质量守恒方程的残差。
内部循环3:在这个阶段,需要进一步修正速度场,以满足动量守恒。方法是将速度场和压力梯度合并起来,求解动量守恒方程。然后,使用这个修正后的速度场,重新计算质量守恒方程的残差,并将其与收敛标准进行比较。
预处理阶段(outer loop 2):在这个阶段,需要进行一些后处理操作,例如计算浓度、温度、湍流等。然后,再次使用修正后的速度场和压力场,重新计算质量守恒方程的残差。
更新时间步长:如果求解结果已经收敛,就可以更新时间步长,并转到下一个时间步长。如果结果没有收敛,则需要回到内部循环1,重新进行求解。
PIMPLE算法通过多次迭代求解,可以更加精确地获得不可压缩流动的解,尤其适用于复杂的几何形状和湍流流动。