Fluent求解器——SIMPLE、SIMPLEC、PISO与Coupled算法

这篇具有很好参考价值的文章主要介绍了Fluent求解器——SIMPLE、SIMPLEC、PISO与Coupled算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、压力基求解器

    Fluent提供两种不同的求解器,基于压力的求解器(Pressure-Based)和基于密度的求解器(Density-Based),压力基求解器也叫分离式求解器(Segregated Solver),密度基求解器也叫耦合式求解器(Coupled Solver)。

    压力基求解器适用于低速、不可压缩流体,此求解器首先由动量方程求速度场,继而由压力方程进行修正使得速度场满足连续性条件。由于压力方程来源于连续性方程和动量方程,从而保证流场的模拟同时满足质量守恒和动量守恒。密度基求解器适用于高速、可压缩流体,此求解器直接求解瞬态N-S方程(此方程理论上是绝对稳定的),将稳态问题转化为时间推进的瞬态问题,由给定的初场时间推进到收敛的稳态解,即时间推进法。适用于求解亚音速、高超音速等的强可压缩问题。本文只对压力基求解下的Methods进行整理。

    基于压力的求解器采用的是一种称为投影法(projection method)的一般方法类。在投影方法中,速度场的质量守恒(连续性)的约束通过求解压力(或压力校正)方程来实现;压力方程由连续性方程和动量方程推导而来,通过压力校正的速度场满足连续性;由于控制方程是非线性的并且彼此耦合,所以求解过程涉及迭代,其中重复求解整个控制方程组,直到解收敛。

    Fluent中提供了两种基于压力的求解器算法:分离算法(The Pressure-Based Segregated Algorithm)和耦合算法(The Pressure-Based Coupled Algorithm)。(这里的耦合算法要区别于密度基的耦合式求解)

二、分离算法与耦合算法

    在 Solution Methods 设置中,使用压力基求解器时,在求解时涉及到算法的问题,这里的算法一般有以下几种:SIMPLE、SIMPLEC、PISO和Coupled。在FLUENT 6.3版本以前,这四种算法分为2类,即前3种称为分离求解方法,第4种称为耦合求解方法。分离式求解器以前主要用于不可压缩流动和微可压流动,而耦合式求解器用于高速可压流动。现在,两种求解器都适用于从不可压到高速可压的很大范围的流动,但总的来讲,当计算高速可压流动时,耦合式求解器比分离式求解器更有优势。 

1、分离算法

    基于压力的分离算法按照顺序求解其中控制方程(即对控制方程组彼此分离求解),由于控制方程是非线性和耦合的,因此必须迭代执行解循环以获得收敛的数值解。在分离算法中,解变量(例如压力项、温度项、速度项等)单独控制方程一个接一个地求解,每个控制方程在求解时都与其他方程“解耦”或“分离”,因此得名。分离算法是实时储存的,因为离散化方程只需要一次存储一个,然而,由于方程是以解耦的方式求解,所以解的收敛速度相对较慢。分离算法对燃烧、多相流问题更加有效。

    求解流程:

    (1) 基于当前方案流体的属性(e.g. 密度、粘度、比热),包括湍流粘度(扩散率)进行更新;

    (2) 使用最新的压力和面质量通量值,逐个求解动量方程;

    (3) 使用最新获得的速度场和质量通量求解压力校正方程;

    (4) 使用上述步骤获得的压力,校正面质量通量、压力和速度场;

    (5) 使用当前求解所得的变量值求解附加(如有)方程,如湍流量、能量、物料和辐射强度;

    (6) 更新由不同相位之间的相互作用产生的源项(例如,离散粒子引起的载流子相位的源项);

    (7) 检查方程的收敛性。

2、耦合算法

    基于压力的耦合算法求解包括动量方程和基于压力的连续性方程的耦合方程组。因此,在耦合算法中,分离解算法中的步骤2和3由求解耦合方程组的单个步骤代替。其余方程以分离算法中的解耦方式求解;由于动量和连续性方程以紧密耦合的方式求解,与分离算法相比,解的收敛速度显著提高。然而,由于在求解速度场和压力场时,所有基于动量和压力的连续性方程的离散系统必须存储在存储器中(而不是像分离算法那样仅存储一个方程),因此,存储需求增加了分离算法的1.5~2倍。但是,耦合算法可以和所有动网格、多相流、燃烧、和化学反应模型兼容,收敛速度远高于密度基求解器。

3、注意事项

    需要注意的是,在分离式求解器中提供的几个物理模型,在耦合式求解器中是没有的。这些物理模型包括:流体体积模型(VOF),多项混合模型,欧拉混合模型,PDF燃烧模型,预混合燃烧模型,部分预混合燃烧模型,烟灰和NOx模型,Rosseland辐射模型,熔化和凝固等相变模型,指定质量流量的周期流动模型,周期性热传导模型和壳传导模型等。 

    而下列物理模型只在耦合式求解器中有效,在分离式求解器中无效:理想气体模型,用户定义的理想气体模型,NIST理想气体模型,非反射边界条件和用于层流火焰的化学模型。

三、算法介绍

1、SIMPLE

    原理即分离求解的流程,可以概括为预测-校正。SIMPLE 算法是目前工程上应用最为广泛的一种流场计算方法,它属于压力修正法的一种。

2、SIMPLEC

    求解思路同SIMPLE,唯一区别在于为面通量引入一个修正函数进行修正,主要解决了压力-速度耦合方法难以获得解的问题,提高了收敛的速度。

    操作指导:SIMPLEC开启后需要选择使用Skewness Correction的个数,默认是0。

3、PISO

    压力隐式算子分离法,更大提升了压力和速度之间的近似程度,通过引入两个校正指标:neighbor correction(领域校正)和 skewness correction(偏度校正),即每个迭代步中增加了动量修正和网格畸变修正过程。解决了分离算法中,求解压力校正方程后,每个迭代步获得的压强场与动量方程偏离过大,速度和相应的通量不满足动量平衡的问题。虽然PISO算法的的计算量大于SIMPLE 算法和 SIMPLEC 算法,但是由于每个迭代步中获得的压强场更准确,所以使得计算收敛得更快,也就是说获得收敛解需要的迭代步数大大减少了。

    操作指导:

    (1) 使用带Neighbor Correction的PISO时,建议所有方程的松弛因子为1.0或接近1.0。

    (2) 使用带Skewness Correction的PISO时,动量和压力的松弛因子的和应设置为1(例如Pressure为0.3,Momentum为0.7)。

    (3) 同时使用两种校正的PISO时,遵循带Neighbor Correction的PISO的建议;

    (4) Skewness-Neighbor Coupling是默认开启的,大多数情况不必禁用,如果网格高度扭曲建议禁用。

    (5) 开启PISO后可以设置基于Skewness校正还是基于Neighbor校正,1为开启,0为关闭,默认是耦合状态(两个都是1)大多数情况不建议更改,因为这是为了计算速度更快,但其鲁棒性是有所牺牲的。

4、Coupled

    这种基于压力的耦合算法为密度基和压力基两者提供了一种共同的替代方案,具有简单类型的压力-速度耦合。分离算法是分别求解动量方程和压力修正方程的半隐式解法,它导致的问题是收敛速度变慢;而耦合算法一起求解基于动量和压力的连续性方程,通过对动量方程中的压力梯度项进行隐式离散,以及对面质量通量(包括Rhie-Chow压力耗散项)进行隐式的离散,实现了全隐式耦合。

    操作指导:

    (1) 使用多孔跳跃边界条件的某些情况下,耦合方案可能会遇到收敛问题,此时建议改为分离算法。

    (2) 更适合于稳态的计算,因为它的优势就是计算单相流动的鲁棒性强。

    (3) 使用Coupled但不开启伪瞬态,则需要对库朗数(Courant Number)(默认200)、pressure和momentum的松弛因子(默认均为0.5)进行一些设定(可参考Theory Guide)。

5、Non-Iterative Time Advancement

    Non-Iterative Time Advancement(非迭代时间推进法)是专门针对非稳态问题的一种方法,一般与 PISO 算法联合使用,称为瞬态问题的 PISO 算法。与稳态问题的计算相区别,在瞬态计算的每个时间步内,利用PISO算法计算时不需要迭代。PISO算法的精度取决于时间步长,使用越小的时间步长,可取得越高的计算精度,当步长比较小时,不进行迭代也可保证计算有足够的精度。

    在大多数情况下,求解方法的默认值足以设置由于歪斜引起的内部压力校正子迭代的鲁棒收敛性。只有非常复杂的问题(如移动变形网格、滑动界面、VOF模型等)可能需要将压力的松弛减少到0.7或0.8。

6、算法对比及其亚松弛因子的设置

    (1) 分离式求解方法以前主要用于从不可压流动和微可压流动,而耦合式求解器用于高速可压流动。现在,两种求解器都适用于从不可压到高速可压流动,但总的来讲,当计算高速可压流动时,耦合式求解器比分离式求解器更有优势。

    (2) 针对稳态计算:建议使用Coupled算法。分离算法的优势是每次迭代至收敛的速度更快,耦合算法的优势是用更少的迭代实现收敛。

    (3)针对瞬态计算:Coupled算法的优势是鲁棒性好(尤其是大时间步长的情况),但如果time step较小,PISO算法有明显的优势。

    (4) SIMPLE和SIMPLEC的算法基本是一致的,均可以求解稳态问题。SIMPLEC理论优势是提升收敛速度,但带来的是欠松弛问题。

    所以,若求解相对简单的流动(层流,且不添加其他模型)时,SIMPLEC可以快速获得收敛解,是比较好的选择。如果用SIMPLEC算法,压力校正的亚松弛因子通常设置为1.0,这有助于加快收敛速度。然而,在某些问题中,将松弛下的压力校正增加到1.0可能会由于高网格偏斜而导致不稳定。对于这种情况,需要使用一个或多个偏度校正的方法,可以稍微下调欠松弛因子(最多到0.7),或使用SIMPLE算法。但是,若求解湍流以及附加了其他物理模型的复杂流动,SIMPLE和SIMPLEC的收敛速度差别不大。

    (5) 对于所有的过渡流动计算,以及具有大时间步长的瞬态计算,强烈推荐使用带Neighbor Correction的PISO算法。PISO算法可以在较大的时间步、设置Pressure和Momentum松弛因子为1.0的情况下保持稳定计算。但是,使用LES湍流模型的问题(通常用较小的时间步长)和稳态计算中,PISO算法没有明显优势,建议使用SIMPLE或SIMPLEC。

    而对于高度畸变网格的稳态和瞬态计算,建议使用带Skewness Correction的PISO算法。注意按照前文中设定动量和压力的亚松驰因子之和为1.0。文章来源地址https://www.toymoban.com/news/detail-447852.html

到了这里,关于Fluent求解器——SIMPLE、SIMPLEC、PISO与Coupled算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【算法竞赛模板】求解线性方程组是否有解(求解矩阵的秩)

        在实际运用中需判断线性方程组有无解,可以通过矩阵运算判断线性方程组是否有解 线性方程组有无解总结: 矩阵求解秩流程:    所以:当我们遇到题目问线性方程组是否有解时,只需求解系数矩阵的秩与增广矩阵的秩的关系 。我们可以通过分别求系数矩阵与增

    2024年02月12日
    浏览(29)
  • 算法学习 | 递归方程求解

    目录 一、特征方程 2.1 线性齐次递推式的求解 2.1.1 对于一阶齐次递推关系 2.1.2 对于二阶齐次递推关系  2.2 非齐次递推式的求解 2.2.1 常用的非齐次递推式的求解1(ing) 2.2.2 常用的非齐次递推式的求解2(ing) 二、递归树 三、主方法 3.1 主定理 3.2 应用实例 用来代替该等式中的

    2024年02月09日
    浏览(38)
  • Floyd算法求解最短路径

      Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德。   核心思路:通过一个图的权值矩阵求出它的每

    2024年02月05日
    浏览(25)
  • Kruskal算法求解最小生成树

    最小生成树是一个连通图。 什么是连通图,(强)连通图详解 前面介绍了《图存储结构》,本节继续讲解什么是 连通图 。 前面讲过,图中从一个顶点到达另一顶点,若存在至少一条路径,则称这两个顶点是连通着的。例如图 1 中,虽然 V1 和 V3 http://c.biancheng.net/view/3405.ht

    2024年02月07日
    浏览(50)
  • 遗传算法及基于该算法的典型问题的求解实践

        遗传算法是一个很有用的工具,它可以帮我们解决生活和科研中的诸多问题。最近在看波束形成相关内容时了解到可以用这个算法来优化阵元激励以压低旁瓣,于是特地了解和学习了一下这个算法,觉得蛮有意思的,于是把这两天关于该算法的学习和实践的内容总结成了

    2024年03月21日
    浏览(41)
  • 关于旅行商问题的多种算法求解

    一、问题描述 旅行商问题是指旅行家要旅行n个城市,要求每个城市经历一次且仅经历一次然后回到出发城市,并要求所走路程最短。 首先通过所给出的一个无向图,即n个顶点,m个无向边,每条边有一个权值代表两个点之间的距离,要求把每一个点都走一遍并回到原点,求

    2024年02月04日
    浏览(38)
  • 人工智能之A*算法求解

    熟悉和掌握启发式搜索的定义、估价函数和算法过程 Python 3.7 + 熟练掌握A*算法的基本原理。分析不同启发式函数对问题求解的提升效果。 实现A*算法的求解,要求设计两种不同的估价函数:设置相同的初始状态和目标状态,针对不同估价函数,求得问题的届,比较它们对搜索

    2024年01月16日
    浏览(37)
  • 面试项目算法 - 数桥问题python求解

    本项目基于一个流行的日本谜题--\\\"Hashiwokakero\\\"、\\\"Hashi \\\"或 \\\"Bridges\\\"。你需要编写一个程序来解决这个谜题,并简要说明你所使用的算法和数据结构。 程序的输入将是一个由数字和点组成的矩形数组,例如: 每个数字代表一个 \\\"岛屿\\\",而点代表岛屿之间的空隙(水域)。大于 9

    2024年03月20日
    浏览(35)
  • 【多目标规划问题求解】ε-约束算法

    TIME:2022/07/30 Author:雾雨霜星 Web:雾雨霜星的小站 小站原文链接:https://www.shuangxing.top/#/post?id=27 [1]Nima Amjady and Jamshid Aghaei and Heidar Ali Shayanfar. Stochastic Multiobjective Market Clearing of Joint Energy and Reserves Auctions Ensuring Power System Security[J]. IEEE Transactions on Power Systems, 2009, 24(4) : 1841-1854. [

    2024年02月05日
    浏览(130)
  • KMP算法中的next数组求解

            KMP算法(Knuth-Morris-Pratt) 是一个字符串的匹配算法,其中有一部分算法需要求解next数组来求解 该位置前面字符串的最长相同的真前缀和真后缀长度。          next数组的求解方法为:第一位的next值为0,第二位的next值为1,后面求解每一位的next值时,根据前一位进行

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包