scheme
在数值计算的背景下,"Scheme"指的是用于对连续数学方程(如流体动力学方程和热传导方程)进行数值近似的方法。这些方案定义了如何通过离散的数值方法近似求解连续方程,包括以下几个方面:
- 时间离散化:决定如何计算随时间变化的量,如一阶显式、一阶隐式、二阶隐式等方法。
- 空间离散化:涉及到如何处理空间梯度和流体流动,包括迎风离散化(Upwind)、中心差分(Central Differencing)、高阶迎风(Higher-Order Upwind)等。
- 压力-速度耦合:如SIMPLE、PISO等算法,这些方法用于求解流体流动中速度场和压力场的耦合问题。
- 湍流模型离散化:确定如何近似湍流模型中的各种量,比如k-ε模型、k-ω模型、LES(大涡模拟)等的离散化方式。
压力速度耦合中的scheme
在ANSYS Fluent中,选择合适的压力-速度耦合算法(Scheme)是实现准确和高效模拟的关键。不同的耦合算法适用于不同的流动条件和问题类型,以下是几种常用的压力-速度耦合算法及其选择建议:
- SIMPLE算法(Semi-Implicit Method for Pressure-Linked Equations)
适用情况:适合于稳态和不太复杂的瞬态流动问题。特别是对于低速、不可压缩流动,SIMPLE算法通常能提供良好的收敛性和效率。
选择建议:如果你的模型是稳态的,或者是低速流动,并且对计算时间有较严格的要求,可以优先考虑SIMPLE算法。 - PISO算法(Pressure-Implicit with Splitting of Operators)
适用情况:特别适合于处理高速流动、强烈旋转流动、以及高度非线性的瞬态流动问题。PISO算法对于瞬态问题提供了更快的收敛速度和更好的稳定性。
选择建议:如果你的模拟是瞬态的,特别是涉及到复杂流动特性(如高速、高度旋转或强烈不稳定流动),PISO是更好的选择。 - SIMPLEC算法(SIMPLE-Consistent)
适用情况:是SIMPLE算法的一个改进版本,提高了压力-速度耦合的一致性。适用于大多数流动问题,特别是当SIMPLE算法难以收敛时。
选择建议:如果SIMPLE算法在某些情况下收敛性不佳,可以尝试SIMPLEC算法。它在保持计算效率的同时,可能提供更好的收敛特性。 - 面向耦合算法(Coupled Algorithm)
适用情况:这是一种完全耦合的解算器,适用于求解可压缩和不可压缩流动。它特别适合于处理涉及密度变化显著的流动,例如跨音速或超音速流动。
选择建议:如果你的流动问题涉及到显著的密度变化或是高速流动,尤其是在跨音速或超音速条件下,使用面向耦合算法可能更适合。
Flux type:rhie-chow:momentum based和distance based
在ANSYS Fluent中,Rhie-Chow插值是一种用来避免压力-速度耦合问题中的数值振荡的技术。它特别针对基于有限体积法的计算流体动力学(CFD)代码。原理上,它通过一种特殊的插值方法改善了压力场和速度场的耦合,减少了由于离散化而引入的误差。在Fluent中,Rhie-Chow插值有两种不同的应用方式:“基于动量的(Momentum-Based)”和“基于距离的(Distance-Based)”。
- 基于动量的(Momentum-Based)
- 含义:这种方法在计算面上的速度时,考虑了面两侧(单元中心到面中心)的动量差异。这种方法通过直接考虑动量方程来改进速度的预测,使其更加准确地反映压力梯度的影响。
- 适用情况:通常适用于处理较为复杂的流动,尤其是当流场中存在剧烈的压力梯度变化时。这种方法能够更好地捕捉流动中的细节,提高模拟的准确性。
- 基于距离的(Distance-Based)
- 含义:这种方法在处理速度场时,考虑了从单元中心到面的几何距离。它通过调整计算面速度的方式,减少了由于网格不均匀引起的数值振荡。
- 适用情况:特别适用于网格高度非结构化或网格质量不是很高的情况,因为它可以在这些情况下提供更稳定的解。
如何选择
选择哪种Rhie-Chow插值方法,主要取决于你的具体问题和网格类型:
-
对于动量变化较大的流动:如果你的模拟问题中流动具有较大的动量变化或压力梯度变化,例如在流动分离或复杂几何结构附近,选择基于动量的方法可能更合适,因为它提供了更准确的流场预测。
-
对于网格质量较低或高度非结构化的情况:如果你的计算域包含大量非结构化网格,或者网格质量不是特别高,基于距离的方法可能更优,因为它能提高这些情况下的计算稳定性。
空间离散化的梯度(Gradient)
在ANSYS Fluent中,空间离散化的梯度计算对模拟的准确性和稳定性至关重要。梯度计算用于求解流场中各物理量(如速度、温度、压力等)的空间变化率,是求解流体流动和热传递问题的基础。Fluent提供了多种梯度计算方法,每种方法都有其适用条件和特点。下面介绍常见的几种梯度离散化方法及其选择指南:
- Green-Gauss Node Based
- 特点:这种方法基于节点值计算梯度,并使用格林-高斯定理在整个控制体上积分。它能提供较高的精确度,特别适用于非均匀或非结构化网格。
- 选择建议:如果你的网格是非均匀或非结构化的,而且对解的准确性有较高要求,可以选择这种方法。
- Green-Gauss Cell Based
- 特点:这种方法在每个控制体内部计算物理量的梯度,然后将这些梯度平均到节点上。它相对简单,计算效率较高,适用于多种类型的网格。
- 选择建议:对于大多数问题,特别是当计算效率是主要考虑因素时,可以使用这种方法。它在结构化网格和质量较好的非结构化网格上都能提供可靠的结果。
- Least Squares Cell Based
- 特点:利用最小二乘法在每个控制体上拟合梯度,提高了在不规则网格上的梯度计算准确性。
- 选择建议:当网格质量变化较大,特别是在存在强烈梯度和复杂几何形状的流动问题上,使用最小二乘法可以提高计算的准确性。
- Least Squares Node Based
- 特点:这种方法使用最小二乘法直接在节点上计算梯度,能够在非结构化或不规则网格上提供高精度的梯度估计。
- 选择建议:在需要高精度梯度计算,且网格非常复杂(如细小的几何细节或高度不规则的网格)时,这种方法是一个好选择。
一阶精度和二阶精度
精度越高,计算越准确,但是所耗费的计算资源和成本也就越大,一阶精度稳定性比较好。对于计算中关心的参数可以选择二阶精度,其余选择一阶精度。
pseudo time method
伪时间步进方法(Pseudo Time Stepping Method)是一种数值计算技术,用于加速计算流体动力学(CFD)模拟中的收敛速度。这种方法通过引入一个虚构的时间维度来对稳态问题进行迭代,从而提高求解过程的稳定性和效率。伪时间步进方法特别适用于以下几种场景:
-
稳态问题的求解
对于需要求解稳态流场的问题,伪时间步进方法可以提高求解过程的稳定性和收敛速度。通过在求解过程中逐步调整伪时间步长,可以有效地处理复杂的流动现象,如激波、分离流等,使求解过程更加稳定和高效。 -
大规模、复杂的几何结构
在处理具有复杂几何结构的流动问题时,伪时间步进方法可以帮助管理求解过程中的数值挑战,如处理高度不规则的网格或在流动中存在的剧烈变化。这种方法有助于在没有牺牲太多计算时间的情况下保持数值解的稳定性。 -
高速流动
伪时间步进方法适用于处理高速流动问题,如跨音速或超音速流动,其中可能涉及激波和压缩性效应。在这些情况下,伪时间步进可以帮助克服由于流动特性引起的数值挑战,加快收敛速度。 -
压力基耦合求解器
在使用压力基耦合求解器(如SIMPLE、PISO等)求解流体流动问题时,伪时间步进方法可以作为加速技术来提高求解稳定性和效率。它对于加速初始阶段的收敛特别有效。 -
非线性问题的线性化
对于涉及强烈非线性的问题,伪时间步进方法可以通过引入额外的时间维度来帮助线性化问题,从而简化求解过程。这对于一些涉及复杂物理过程和化学反应的流动模拟特别有用。