Fluent求解器——空间离散化方法

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

一、通量类型(Flux type)

    质量通量的计算方法可以在"Solution Methods"面板中的"Flux Type"下拉框中选择。对于压力基求解器,可以从以下选项中进行选择:

    (1) Rhie-Chow: distance based。此通量选项应用距离加权高阶速度插值,并针对压力梯度差进行 Rhie-Chow 校正。这是默认选项,建议用于大多数情况(特别是那些具有误差波动非物理反射的情况)。

    (2) Rhie-Chow: momentum based。此通量选项应用动量系数加权高阶速度插值,并对压力梯度差进行Rhie-Chow校正。此方法涉及连续性方程离散化。注意:对于多相流模型(除湿蒸汽模型外),该选项默认为基于动量的Rhie Chow,并且"Flux Type"列表不可用。

    可以启用"Flux Type"列表旁边的"Auto Select"选项,以便Fluent根据问题设置自动选择类型:可压缩流动选择Rhie-Chow: distance based,不可压缩流动选择Rhie-Chow: momentum based。

二、空间离散化(Spatial Discretization)

    涉及控制方程中对流项的空间离散。

1、梯度离散格式(Gradient)

    梯度不仅用于构造网格面上的标量值,还用于计算二阶扩散项和速度导数,给定变量的梯度用于离散动量方程中的对流和扩散项。Fluent中包括三种梯度计算方法:

    (1) Green-Gauss Cell-Based(基于单元的格林-高斯法):该方法的优势就是易于实现,因为涉及的操作都是基于面的,不需要任何额外的网格连接,但梯度通常无法达到二阶精度,尤其是高度倾斜的非结构网格,精度随偏度增加而降低。

    (2) Green-Gauss Node-Based(基于节点的格林-高斯法):通过求解约束最小化问题,从任意非结构网格上的周围单元中心值重建节点处线性函数的精确值,保持二阶空间精度。精度高于基于单元的梯度,尤其针对非结构网格,但计算成本也更高。

    (3) Least Squares Cell-Based(基于单元体的最小二乘法)(默认):针对非结构网格,该方法与基于节点的梯度法相当,但计算成本更低。

2、压力项离散格式

    (1) Linear(线性格式)

    (2) Standard(标准格式):当出现大体积力的流动(如强旋流、高瑞利数的自然对流)时,求解精度会降低。

    (3) Second Order(二阶格式):默认的插值方法(Mixture/VOF多相流模型不可用),准确性比Linear和Standard更高。

    (4) PRESTO(预压交错格式):Mixture/VOF模型的默认插值格式,主要适用于高旋流、压力急剧变化流动(多孔介质、风扇模型)或剧烈弯曲位置。

    (5) Body Force Weighted(体积力加权格式):对于欧拉多流体VOF中体积力占优势,并且网格正交性有很大偏离的情况,Body Force Weighted 比 PRESTO更稳健(Ps:当案例中包含多孔介质时,体积力加权方案仅应用于无孔面,该方案考虑了显性体积力(例如重力,旋涡,科里奥利)的不连续性和密度快速变化流(例如自然对流,VOF)的压力梯度变化不连续性。所有内部和外部多孔面都经过特殊处理,尽管阻力不连续,但仍可保持跨孔面法向速度的连续性)。

3、密度项离散格式

    (1) First Order Upwind(一阶迎风格式):具有较大的稳定性,但可能会平滑可压缩流动中的激波。如果要计算有激波的可压缩流动,则应使用二阶迎风格式或QUICK格式。

    (2) Second Order Upwind(二阶迎风格式)(默认):为压力修正方程的离散化提供了合理的稳定性,对大多数类型的流动都能够有较好的结果。

    (3) QUICK:当使用四边形、六面体或混合网格时,强烈建议对包括密度在内的所有变量使用QUICK格式来处理含激波的可压缩流动。

4、其他项离散格式

    动量方程(Momentum)、湍动能(Turbulent Kenitic Energy)、湍流耗散率(Turbulent Dissipation Rate)、能量(Energy),以上各项可选用的离散格式如下:

    (1) First Order Upwind(一阶迎风格式):当流动的方向和网格是对齐的(如用四边形或六面体网格模拟方形管道中的层流流动),一阶迎风格式是可以接受的;当流动的方向和网格是不对齐的(如流动倾斜的穿过网格截面线),一阶的迎风格式会增大数值离散误差(数值扩散)。对于三角形和四面体网格,流动是不会和网格对齐的,一般应该使用二阶格式以获得更准确的结果。

    (2) Second Order Upwind(二阶迎风格式):对于四边形和六面体网格,使用二阶离散格式也能获得更好的结算结果,特别是复杂流动条件下。

    (3) QUICK:通常在与流动方向对齐的结构化网格上更为准确。

    (4) Third Order MUSCL(三阶MUSCL格式):适用于任意网格。与二阶迎风格式相比,三阶MUSCL有可能通过减少数值扩散来提高所有类型网格的空间精度,尤其是对于复杂的三维流动,并且它适用于所有传输方程。

    总结:一阶的收敛性更好,但准确性稍差,尤其是三角形网格或四面体网格时;二阶的精度更高,但在一些问题(如高马赫数流动)上会有收敛性问题,所以需要先从一阶格式开始计算,然后在进行几次迭代之后切换到二阶格式继续进行计算;QUICK格式仅适用于结构化网格;MUSCL虽然理论上能够提高精度,但在结果准确性上的提升不会很大。所以通常用二阶精度即可。

    Fluent允许为每个控制方程的对流项选择离散格式(粘性项自动使用Second Order Upwind)。默认情况下,使用压力基求解器或密度基求解器求解单相流问题时,对于流动方程和所有标量方程(湍流除外)的对流项使用Second Order Upwind,湍流物理量相关方程则使用First Order Upwind进行离散求解。对于多相流问题,流动方程默认使用First Order Upwind。

5、离散混合因子

    虽然高阶格式可以获得更高的精度,但在某些流动条件下也可能导致收敛困难和计算不稳定。另一方面,使用一阶格式可能无法提供所需的精度。在保持良好稳定性的同时提高精度的一种方法是使用离散混合因子。此功能可用于密度基和压力基求解器,其通过TUI命令进行启用:

    solvesetnumerics

    当TUI窗口出现以下提示时,输入一个0~1之间的值即可。

1st-order to higher-order blending factor [min=0.0 - max=1.0]

    混合因子为0时梯度计算将采用一阶离散格式,而设置为1表示恢复为高阶离散格式。混合因子小于1(通常为0.75或0.5)将使对流通量更具扩散性,此时可能在一些流动条件下无法完全使用高阶格式时得到稳定的计算结果。

    注意:为了使用此功能,需确保在"Solution Methods"任务页面中为所需的变量选择了允许的高阶格式。

6、瞬态公式(Transient Formulation)

    对于大多数问题,First Order Implicit就足够了。如果需要提高精度,可以使用Second Order Implicit或Bounded Second Order Implicit。Bounded Second Order Implicit将提供更好的稳定性,因为时间离散化将确保某些变量的全局边界(如果可用)。

    Bounded Second Order Implicit在较大时间步下,不能确保所有变量的完全有界解,可能会导致overshoots 或 undershoots。

    在使用species transport model、the population balance model和energy equation模型时, 可以用用TUI控制energy,species transport,and/or population balance equation用一阶精度,其他用二阶边界精度(命令见User's Guide—>solve/set/second-order-time-options)。

7、高阶项松弛(High Order Term Relaxation, HOTR)

    高阶项松弛的目的是提高高阶(高于一阶)空间离散时流动模拟的启动和通用求解性能。在某些情况下,该功能还可以防止收敛停滞。

    对于稳态情况,松弛因子的默认值为0.25,对于瞬态情况,松弛因子的默认值为0.75。相同的因子应用于所有求解的方程。一般来说,高阶项松弛适用于瞬态流动。不过使用时应小心。要在每个时间步收敛时获得高阶精度,必须增加每个时间步的迭代次数,以确保满足原始收敛条件

    注意:当为特定的输运方程选择QUICK格式时,该方程不适用欠松弛。文章来源地址https://www.toymoban.com/news/detail-579483.html

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

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

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

相关文章

  • 用Matlab求解一维非稳态导热问题(有限差分法+显式离散)

    章熙民的第六版《传热学》里,较为简单的介绍了非稳态导热的数值计算,本文根据此书,以计算一个可视为无限大平壁的复合墙体传热过程为例,讨论一维非稳态导热问题数值求解的问题。 这里把参考书目的PDF分享出来,希望可以帮助到大家学习传热学,里面有章熙民的第

    2023年04月22日
    浏览(47)
  • C++类:三角函数最小二乘拟合与离散傅里叶变换求解

            作为一个天文爱好者,在之前全手工制作了一个天文望远镜导星的系统,但是由于自制的赤道仪使用的是谐波减速器,赤经轴需要一直保持与地球运动同步,每隔一段时间就会有新的谐波齿轮参与啮合,因此造成了在赤经轴存在低频的传动周期误差,该系统利用图像

    2023年04月19日
    浏览(55)
  • 三维空间离散点如何拟合平面?

      在点云建模过程中,有时需要对扫描建模的点云进行标定,在实际使用中往往以地面做为参照平面,需要将扫描的三维空间点云进行拟合平面,以便纠正扫描结果。本文对三维空间离散点拟合平面算法进行总结,并给出几种编程语言下的算法实现代码。    (1)最小二

    2024年02月11日
    浏览(46)
  • 新版白话空间统计(27):从离散点到密度图

    点的密度是点分析中一个很重要的方向,有大量的点数据的空间表达,基本上都是通过密度图来进行体现的,比如百度热力图: 又或者是交通车流量热力图: 空间点密度分析,把海量离散的点,变成高度抽象的综合性描述数据,这也是统计学的天赋技能之一。 如果说,这是

    2024年02月11日
    浏览(39)
  • 【人工智能数学:01 高等概率论】(2) 离散型概率空间

            这篇文章是对概率空间最基本概念的描述。解决的基本问题是试图“说服”大家,概率空间是个啥。不解决这种基本问题,试图提高学术水平是不可能的。         本文将涉及概率空间的定义、对于离散概率事件的定义、连续概率事件的定义、代数的一些含义、

    2024年02月10日
    浏览(53)
  • 现代控制理论——离散系统,时变系统和非线性系统的状态空间表达式

    离散系统的状态空间表达式可以用差分方程表示: 方程的解释:得到第k步系统的状态和控制,可以得到第k+1系统的状态。 线性时变系统·的状态空间表达式为: 系统矩阵,输入矩阵,输出矩阵,直接传输矩阵这四个矩阵中的任何一个矩阵中的元素是时间的函数我们就称为这

    2024年02月11日
    浏览(51)
  • Simulink搭建串联二自由度机器人并求解工作空间

    目录 引言 1.建立机器人模型 1.1机器人模型 1.2搭建机器人模型 1.3创建刚体树 1.4建立机器人模型 1.5正运动学  结论 使用Simulink搭建机器人并求解各工作空间的关系。首先需要借助simscape工具箱对机器人进行建模,之后在其工作空间驱动该机器人,借助算法来控制机器人旋转角

    2024年01月20日
    浏览(55)
  • c++算法之离散化

    什么是离散化? 离散化,故离散数学,其中的“离散”就是不连续的意思。离散化可以保持原数值之间相对大小关系不变的情况下将其映射成正整数。 也就是给可能用到的数值按大小关系分配一个编号,来代替原数值进行各种操作。 离散化步骤: 1.排序 2.去重 3.归位 举一个

    2024年02月14日
    浏览(35)
  • 离散化(算法)

    离散化是一种将连续数据映射到离散值的过程。它通常用于优化某些算法,尤其是与区间查询相关的问题。 在离散化过程中,我们将一组实数转换为一组整数,使得原始数据的顺序和区间关系得以保留。具体地说,我们将原始数据排序,然后为每个不同的值分配一个整数。这

    2024年02月17日
    浏览(32)
  • 基础算法-【离散化】

    离散化的本质:是建立了一段数列到自然数之间的映射关系(value - index),通过建立新索引,来缩小目标区间,使得可以进行一系列连续数组可以进行的操作比如二分,前缀和等… 相应的算法模板:     vectorint alls; // 存储所有待离散化的值     sort(alls.begin(), alls.end()); //

    2024年02月16日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包