计算流体力学讲义第九讲有限体积法(1)李新亮lixl@imech.ac.cn;力学所主楼219;82543801知识点:1讲义、课件上传至(流体中文网)-“流体论坛”-“CFD基础理论”讲课录像及讲义上传至网盘有限体积法的基本概念——重构和反演迎风型有限体积法——Riemann求解器;Roe格式的新理解:近似Riemann解多维迎风型有限体积法——坐标旋转CopyrightbyLiXinliang2知识回顾1.差分方法的基本概念:差分格式、修正方程、相容性、收敛性、稳定性、LAX等价定理0xuatu011xuuatuunjnjnjnj2.精度分析、稳定性分析与分辨率分析(修正波数)Taylor分析Fourier分析jjikxnneAujjikxnneAu11nnAAG/1jjikxjikxjexkFeu~,xikk~修正波数3.激波捕捉格式GVC,NND,Roe,Godnov,MUSCL,TVD,WENO4.Euler(N-S)方程的通量分裂逐点分裂、特征投影分裂(建议使用Roe平均)5.隐格式求解的LU-SGS方法要点:a.引入差量,方程线性化b.单边差分,隐式代数方程显式(推进)化0)(xuftu以一维为例,多维可直接推广012/112/11xfftuunjnjnjnj方法1:直接隐式离散直接求解非线性方程组,计算量大)]([)]()([11nnnnnufxufufxtuu方法2nnnnnnnnnuuuufAuAufuf11,,)()(差量化线性化nnnnnRHSufxtqAxtq)]([已知项线化微分方程nnuqCopyrightbyLiXinliang3CopyrightbyLiXinliang4求解思路:如果直接离散,得到线性代数方程组,仍需求解,计算量大(多维情况)如果能单侧差分就好解了!njnjnnjnnjRHSxqAqAtqjj21111多对角方程组,不好解(多维情况)njnjnnjnnjRHSxqAqAtqjj11xtAqARHSqnjnnjnjnjj/),1/()(11nnnnRHSqAxtq中心(双侧)离散如果单侧离散单侧离散,可推进求解,免受解方程组之苦。真简单CopyrightbyLiXinliang5可是,A有正有负,无法单侧差分化nnnnRHSqAxtqnnnRHSqAAxtq])[(nnjjnjjnjjnjjnjRHSqAqAqAqAq)(1111还是个三对角的奇思妙想:如果分成两个子步,各自用单侧值,就简单多了强行单侧差分会不稳定的njnjjnjjnjRHSqAqAq1111*)1(**)(21分裂:AAAALF近似LU分解xt/Step1:RHS)UL(DQRHS)QU(D)DL(D1近似LU分解RHSUQLD1njnjjnjRHSqAq11*)1(Step2:QUQDRHSQL1njnjjnjqqAq)1()1(*11*均为递推求解(两次扫描),免受解方程组之苦j-1-jj+1j以上描述适用于求解定常问题,求解非定常问题该过程可用于内迭代。迭代收敛后q趋于0,精度由右端项决定CopyrightbyLiXinliang6§9.1有限体积法入门有限体积法主要优势:处理复杂网格差分法处理复杂外形——坐标变换),,(),,(),,(zzyyxx321321ˆˆˆˆˆˆˆVVVffftU)(ˆ32111fffJfzyx),,(),,(1zyxJ坐标变换函数必须足够光滑——否则损失精度实际问题:外形复杂,光滑的结构网格生成困难差分法有限体积法优点简单、计算量小、易于提高精度本身包含几何信息,易处理复杂网格不足差分离散与几何解耦,难以处理复杂网格复杂、不易提高精度CopyrightbyLiXinliang79.1.1有限体积法的基本概念实质:把几何信息包含于离散过程中虽然简单,但有助于建立基本概念0)(xuftuj-1jj+1j-1/2j+1/21.全离散型过程0))((12/12/1nnjjttxxdxdtxuftu0)()(12/12/12/12/11nnjjttjjxxnndtffdxuu含义:f在j+1/2点的值(注意与差分法的区别)在控制体上积分原方程2/12/1)(1jjxxnnjdxxuxu定义:空间平均1)(1ˆ2/12/1nnttjnjdttftf时间平均0ˆˆ2/12/11xfftuunjnjnjnj精确推导,不含误差提示:为区间内的空间及时间平均值,如果把它们理解为某点的值,会产生误差njunjf2/1ˆCopyrightbyLiXinliang80)(xuftu0ˆˆ2/12/11xfftuunjnjnjnj积分(精确)2/12/1)(1jjxxnnjdxxuxu重构(Reconstruction)有限差分法的离散:数值微分过程有限体积法的离散:数值积分过程积分方程离散化2/12/1)(1ˆ2/12/1jjttjnjdtxftf反演(evolution))(xuunnj2/12/1)(1ˆ)(2/12/1jjttjnjndtxftfxu(1)重构过程A.零阶重构,假设分片常数j-12/12/1)(jjjnxxxuxuB.线性重构,假设分片线性函数零阶重构与一阶重构示意图jj+1)()(jjnjnxxDuxuxuuDnjnjj1xuuDnjnjj1orxuuDnjnjj211or或其他方法C.更高阶的重构例如:分片二次函数(PPM),WENO等重构是有限体积的空间离散化过程,有多种方法CopyrightbyLiXinliang9(2)演化过程(以线性方程为例)1)(1ˆ2/12/1nnttjnjdttftf0,)(,0)(aauufxuftu需要得知时间演化信息,通常利用特征方程0,0axuatu)(),(0atxutxu))(()()(2/12/12/1njnjjttaxautautf若采用零阶重构:2/12/1)(jjjnxxxuxu则:jnjnuttaxu))((2/1jjuaf2/1ˆ假设时间步长足够小],[)(2/12/12/1jjnjxxttax则方程为:011xuuatuunjnjnjnj等价于一阶迎风差分Riemann解CopyrightbyLiXinliang10若采用线性重构)()(jjnjnxxDuxu)(),(0atxutxu))(2())(())(()(2/12/12/1njnjjnjjnjnjnjttaxDuxttaxDuttaxututDaxDuadttautfjjnjttjnjnn2)2()(1ˆ22/12/110ˆˆ2/12/11xfftuunjnjnjnjxDDtaxDDxuuatuujjjjnjnjnjnj2)(2/)(12111若xuuDnjnjj1xuuutaxuuatuunjnjnjnjnjnjnj2)2(112111xuuDnjnjj1xuuutaxuuuatuunjnjnjnjnjnjnjnj2)2(234122121Warming-BeamLax-Wendroff0阶重构——1阶精度线性重构——2阶精度一维均匀网格的有限体积法等价于有限差分法Euler方程:演化过程可通过Riemann解或近似Riemann解进行CopyrightbyLiXinliang112.半离散方法全离散:积分方程代数方程(守恒性好,但复杂)半离散:积分方程常微分方程(简便,便于使用R-K等成熟方法)0)(xuftu0))((2/12/1jjxxdxxuftu仅空间积分02/12/1xfftunjnjnj2/12/1),(1)(jjxxjdxtxuxtuf在j+1/2点的值,仍需要使用周围点进行插值njf2/1通常无法精确计算,可采用近似值代替njf2/1ˆ0ˆˆ2/12/1xfftunjnjnj2ˆ12/1njnjnjuuaf0211xuuatunjnjnj等价于二阶中心差分半离散j-1jj+1j-1/2j+1/2)(kuf))(ˆ(ˆ)(ˆ2/12/1jnjnnjxuffxuu重构CopyrightbyLiXinliang129.1.2一维Euler方程的迎风型有限体积法j-1jj+1j-1/2j+1/20xtf(U)U0ˆˆ2/12/1xtnjnjnjffU半离散1.重构控制体积j-1jj+1左重构值右重构值选择不同的模板会得到不同的重构方案向左偏的模板产生向右偏的模板产生差分法——同一点的导数可使用向前差分和向后差分,根据特征方向选择之Lj2/1URj2/1U例如:0阶重构1阶单边重构12/12/1,jRjjLjUUUU)3(21),3(21212/112/1jjRjjjLjUUUUUU根据特征方向,选择左通量或右通量Lj2/1URj2/1Unj2/1ˆf途径1:FVS途径2:FDS……CopyrightbyLiXinliang132.分裂方法(1):FVS方法(流通矢量分裂——逐点分裂)fff具体方法:Steger-Warming分裂Lax-Friedrichs分裂VanLeer分裂:Liou-Steffen分裂:(压力项与其他项分开,AUSM类格式的基础)2kkkwcucuucucuu232221321321)(2~)(2~~)1()(~)(~~)1(2~~~)1(22)~(~λf2/)(*Uff根据当地Mach数分裂保证的Jocabian阵特征值为正,的为负ffUAf))ˆ2/12/12/1RjLjnj(Uf(Uff正通量:向左偏斜重构;负通量:向右偏斜重构偏重向上游与迎风差分法类似:网格基(或权重)偏重上游差分、有限体积都可使用一个参数,反映全部特征CopyrightbyLiXinliang14小知识:Liou-Steffen分裂)()(2200)()(pcFFpupEuuupEpuuf(U)对流项压力项思路:决定特征的关键参数——当地Mach数1]1,0[]0,1[1cuMa超音速,x-方向超音速,x+方向0,0,0321cucuu321,,0,0,0321因此,对Mach数进行分裂更为简洁!1当01当4/)1(1当2MMM