为什么我用FLUENT算的题总是发散??求大神!!【转发】
2017-03-30 by:CAE仿真在线 来源:互联网
太长不看版
对于很多可压缩流动问题,如果入口边界和出口边界的压力差别太大,导致计算发散,可以先算出一个入口边界和出口边界压力差别小一些的流场,然后以此作为计算原问题的迭代初值,在此基础上算出原问题的解答。
作者简介
叶汉玉,本科毕业于北京航空航天大学飞行器动力工程专业。现为北京航空航天大学在读博士,研究方向为流动稳定性,在Physics of fluids、Journal of fluid mechanics等流体力学著名刊物上发表文章数篇。
对于很多可压缩流动问题,入口边界和出口边界的压力差别很大。例如在计算拉伐尔喷管的流动时,喷管入口的绝对压力常常比出口绝对压力大一到两个数量级。但是,这样给数值计算带来了困难。由于流场中绝对压力的变化非常剧烈,计算前的均匀的初始压力场往往与实际差别很大,这使得计算的时候容易发散。
我们来看一个例子。我们来计算一个拉伐尔喷管内部的流动以及其排气羽流。这类流动常见的例子是喷气发动机(航空发动机、火箭发动机)喷管的流动。拉伐尔喷管是一种先收缩后扩张的喷管,气流在收缩段从亚声速加速到声速,压力下降,在扩张段压力进一步下降,流动加速到超声速(图1)。在喷管出口,由于气流的压力与外界环境压力往往不相等,因此常常会呈现由激波、膨胀波组成的复杂的波系结构,而且这种波系会重复若干次,从外观上能很明显地看出来(图2),直到远处才因为粘性耗散而逐渐消失。
图1 拉伐尔喷管内部的流动及其排气羽流(过膨胀状态)
图2 AIM-120空空导弹的排气羽流
(图片来源:Wikipedia)
我们所计算的喷管的形状如图3(a)所示,图中的单位为mm。喷管的出口面积为0.008m2,喉部面积为0.002m2。计算域如图3(b)所示,在喷管出口的下游放置一个半径约等于10倍喷管出口半径,长度约等于40倍喷管出口半径的圆柱形区域,以便容纳羽流流场。计算的时候使用二维轴对称模型(Axisymmetric)。
(a)喷管局部
(b)计算域
图3 计算域和喷管几何形状
喷管入口总压为1000kPa,总温为500K,环境压力为10kPa;工质为空气。通过拉伐尔喷管的一维模型理论分析[1]可以知道,这时喷管处于欠膨胀工作状态,在喷管出口截面上超声速气流的压力大于外界反压(环境压力),气流会在出口处产生膨胀波。
在FLUENT 14.5中计算这个问题。计算所使用的网格(图4)为分块结构化网格,用ICEM CFD生成,网格数量约为2万。边界(1)为喷管入口,使用pressure-inlet边界条件,总压(Gauge Total Pressure)设为1000kPa,初始静压(Supersonic/Initial Gauge Pressure)设为984840Pa,总温(Total Temperature)设为500K,湍流条件按照湍流强度(Turbulent Intensity)等于5%、水力直径(Hydraulic Diameter)等于0.1m设定。初始静压仅是为了在计算前初始化流场使用。通过一维模型理论分析可以知道喷管的流量大约为3.61kg/s,与之对应的喷管入口流速约为66m/s,因此可以推算出喷管入口静压的近似值。边界(2)为对称轴,使用axis边界条件。边界(3)、(4)为壁面,使用wall边界条件。边界(5)、(6)为出口,使用pressure-outlet边界条件。湍流模型使用k-ω SST。使用基于密度(Density-Based)的求解器,求解算法选取默认的隐式算法。工质的状态方程用完全气体模型(ideal-gas),工作压力(Operating pressure)设为0。
图4 网格
首先我们按照一般的方法来尝试一下,即把边界(5)、(6)的压力直接设为10kPa(回流的湍流条件设定为与入口边界相同的数值)。我们用入口边界的变量的数值初始化整个流场(在“SolutionInitialization”页面上,在“Compute from”组合框中选择入口边界,如图5所示)。从初始化的流场开始迭代的时候,我们使用默认的空间离散格式(连续方程、动量方程和能量方程(三者合称Flow)使用二阶迎风格式,湍动能(Turbulent Kinetic Energy)和比耗散率(Specific Dissipation Rate)使用一阶迎风格式)。求解的Courant数保持默认值(即5)。
图5 用入口边界的变量的数值初始化整个流场
很不幸的是,计算发散了(图6)。根据FLUENT的用户手册[2],刚开始计算的时候,为了使得计算稳定可以调小Courant数的值,并使用一阶迎风格式。因此我们尝试将Courant数减小到1,并将Flow的离散格式改成一阶迎风格式,但是仍然无济于事。计算发散的原因是这个流动问题中,压力的变化范围太大而且非常丰富。在喷管入口,流动马赫数很低,压力接近于流动的总压(1000kPa);在喷管喉部,流动马赫数等于1,压力降低到约为总压的0.53倍(临界压力比[1]);在喷管扩张段,流动加速到超声速,压力进一步下降;在喷管出口截面,按照一维模型理论分析可知压力降低到约30kPa,流动马赫数约为3;然后,气流在出口处通过膨胀波继续降压,最终达到与环境压力(10kPa)一致。对于这样复杂的压力变化,从初始的均匀的压力场开始迭代显然是过于困难了。
图6 计算发散
为了克服这种困难,我们可以使用逐次降低出口边界压力的方法。在使用一阶迎风格式并将Courant数减小到1的条件下,我们先把出口边界(5)、(6)的压力设为100kPa,计算收敛后,再将出口边界压力改为10kPa,然后再次计算收敛。这实际上就是用出口压力100kPa的计算结果作为出口压力10kPa计算时的迭代初值。这样分开两次计算,每次计算时迭代初值与计算结果的差别都比较小,因此计算就不容易发散了。图7是出口边界压力设为100kPa时的马赫数云图。图8是将压力改成10kPa后的结果。
图7 出口边界压力为100kPa。一阶迎风格式。流动在喷管出口通过斜激波增压到环境压力。
图8 出口边界压力为10kPa。一阶迎风格式。流动在喷管出口通过膨胀波减压到环境压力。
最终,我们得到了出口边界压力为10kPa的收敛的解答。最后我们可以将空间离散格式改成二阶迎风格式,算出最终的结果。从马赫数云图(图9)可以清楚地看出喷管出口下游重复的波系结构。当然,这里的重点是说明避免计算发散的技巧,因此采用了较粗的网格,也没有进一步做网格无关性验证。
图9 最终的计算结果的马赫数云图
在其它可压缩流动或者复杂流动(如带有空化的流动)的模拟中,如果遇到计算发散,也可以尝试本文的技巧。而且,有时边界上的压力分成两步来设置可能还嫌少,可能要分成好几步,逐次地降低(或者升高)压力。
其它FLUENT版本也可以参考本文。
作者非常感谢北京航空航天大学宇航学院童晓艳老师。作者正是在和她的讨论中了解到本文所述的避免计算发散的技巧。
转自:流体那些事儿
相关标签搜索:为什么我用FLUENT算的题总是发散??求大神!!【转发】 Fluent培训 Fluent流体培训 Fluent软件培训 fluent技术教程 fluent在线视频教程 fluent资料下载 fluent分析理论 fluent化学反应 fluent软件下载 UDF编程代做 Fluent、CFX流体分析 HFSS电磁分析