计算流体力学讲义第三讲有限差分法(1)李新亮lixl@imech.ac.cn;力学所主楼219;82543801知识点:差分方法的理论基础(相容、收敛、稳定性;Lax等价定理;精度、修正方程;守恒性)差分格式的构造差分格式的Fourier分析1讲义、课件上传至(流体中文网)-“流体论坛”-“CFD基础理论”CopyrightbyLiXinliang传统计算方法:有限差分法,有限体积法,有限元法,谱方法(谱元法)等;最近发展的方法:基于粒子的算法(格子-Boltzmann,BGK),无网格优点缺点适用范围有限差分法简单成熟,可构造高精度格式处理复杂网格不够灵活相对简单外形的高精度计算有限体积法守恒性好,可处理复杂网格不易提高精度(二阶以上方法复杂)复杂外形的工程计算有限元法基于变分原理,守恒性好对于复杂方程处理困难多用于固体力学等谱方法精度高外形、边界条件简单简单外形的高精度计算粒子类方法算法简单,可处理复杂外形精度不易提高复杂外形的工程计算第三讲有限差分法(1)(教材第3.1、3.2节及第4章)2CopyrightbyLiXinliangCopyrightbyLiXinliang3流体力学理论研究实验研究数值研究计算流体力学(数值计算技术、计算方法研究)理论研究:格式推导、稳定性分析,精度/误差分析,……实验研究:数值实验,采用实际问题考核方法的正确性数值研究:采用数值计算推导格式、考察精度/稳定性/分辨率……“计算流体力学”作为一个学科,其研究手段依然包括理论、实验及数值模拟。与的依赖关系CopyrightbyLiXinliang4举例说明:研究“计算流体力学”学科的理论手段、实验手段及计算手段研究CFD的理论手段例:Fourier分析线性系统:线性方程+线性格式任意函数都可分解为三角函数的叠加差分系统(解差分方程)初始值数值解(特定时刻离散的函数值)jjuv记为:是差分算子,把离散函数(有限点列)映射为另一个离散函数}{ju}{jvkikxkjjeuuˆkikxkjjevvˆ}ˆ{kv}ˆ{ku{vi}与{ui}的依赖关系线性系统,可大为简化波数空间单一的依赖关系:)ˆ(ˆkkufv),......)ˆ(ˆ),ˆ(ˆ(2211ufvufv原理:线性系统,输入一个波,只能输出一个波(且波数不变)。非线性系统会产生多个谐波线性差分系统:针对一个单波,研究经过差分系统后的变化就可以了解该系统。Fourier误差分析;Fourier稳定性分析理论分析的局限性:对于复杂系统(非线性方程、非线性格式)非常困难CopyrightbyLiXinliang5研究CFD的实验手段例:精度分析思想:通过具体算例来研究(考核,分析…)差分方法典型的文章:提出方法+理论分析+算例验证dxdu差分离散jxjuF理论方法,Taylor展开,求余项。对于复杂(如非线性)格式,难度大。实验方法,通过算例考核精度)cos()sin(xdxduxu精确解)cos(jjxFerrj为该离散函数的模常用的模:1模:2模:无穷模:jjj1jjjN221jjjmax计算误差分析误差对网格步长的依赖关系xlgerrlg斜率为精度的阶数(通常用最小二乘法计算)lglglgxnerrxerrn斜率为精度的阶数nCopyrightbyLiXinliang6常用的验证算例(“实验验证”)考核方法通常找一些难度大的(条件苛刻、极端)的算例。否则,无法突出方法的优越性。1维算例:Sod激波管,Shu-Osher,方波/尖波……2维算例:前/后台阶、双马赫反射、二维Riemann问题、漩涡-激波干扰、翼型扰流、圆柱绕流3维复杂算例:各向同性湍流的DNS,槽道湍流的DNS,激波-边界层干扰的DNSShu-Osher问题的计算结果(Lietal.Init.J.Num.Fluid.2005)航空领域权威的考核算例——DPW标准计算模型常用一、二维算例整理后已发到流体中文网的计算手段例:差分格式构造理论方法:手工推导系数(工作量大)数值方法:通过数值手段推导系数3,2,1,0)3(41kbajjkjk)(31431221Ouauauauaxujjjjj数值求解,获得系数格式优化;通过数值计算手段进行Fourier分析;……§3.1有限差分法基本原理22xutu1.差分方法的基本原理Ttx0,10离散点上利用Taylor展开,把微分转化成差分!2221xxuxuuxujjjj)(1xOxuuxujjj111112121njnjnjnjnjuuuxtuu…j-2j-1jj+1…......)(!31)(!21)(3332221xxuxxuxxuuujjjjj)(2211xOxuuxujjj(等距网格)多维问题,各方向独自离散;(时间同样考虑))(1tOtuutunjnjnj比有限体积法计算量小;便于构造高阶格式;23311)(!312xxuxuuxujjjj8CopyrightbyLiXinliang基本概念:a.差分表达式及截断误差:截断误差差分表达式(1阶)(2阶)b.前差、后差、中心差…j-2j-1jj+1…前)(1xOxuuxujjj前差)(2211xOxuuxujjj中心差)(1xOxuuxujjj后差其他:向前(后)偏心差分;后c.差分方程经差分离散后的方程,称为差分方程精度如何确定精度?1)理论方法,给出误差表达式2)数值方法,给出误差对的数值依赖关系x011xuuatuunjnjnjnj0xuatu微分方程差分方程xxuxuuxujjjj221!2123311)(!312xxuxuuxujjjjxxuattuTEnjnj2222!2!21截断误差:9CopyrightbyLiXinliangd.差分方程的修正方程修正方程——差分方程准确逼近(无误差逼近)的方程0xuatu011xuuatuunjnjnjnjtttttnjnjnjututtuutu6221......62622211tttttxxxxxnjnjnjnjututuxuxxuuatuuxuatu差分方程截断误差微分方程=差分方程+截断误差......62622211tttttxxxxxxtnjnjnjnjututuxauxuauxuuatuu差分方程=微分方程-截断误差≡新的微分方程(修正方程)通常要求:修正方程中不出现时间的高价导数项(便于进行空间分析)011xuuatuunjnjnjnj等价于0......626222tttttxxxxxxtututuxuxuau修正方程0......662222xxxtttxxttxtuxutuxcutuau),(),,(32xtOucuxtOucuxxxtttxxtt],,,[)132(612322322ttxtxxOuxcuxccuuxxxxxxtxtc修正方程主导项:1阶;耗散型10...6221xxxxxnjnjnjuxuxxuuxud.显格式及隐格式显格式:无需解方程组就可直接计算n+1层的值;隐格式:必须求解方程组才能计算n+1层的值011xuuatuunjnjnjnj01111xuuatuunjnjnjnje.守恒型差分格式基本思想:保证(整个区域)积分守恒律严格满足0xuftu定义:对于上述守恒型方程,差分格式njnjnjnjgghuu21211称为守恒型差分格式。),,(2121nljnljnljnjuuugg其中:nnNnjnjNjgggg2/12121211特点:消去了中间点上的值,只保留两端物理含义:只要边界上没有误差,总体积分方程不会有任何误差。1njju如果是准确的,则也是准确的(假设边界条件没有误差)njju守恒性的例子:环形管道里的流动——总质量保持不变早期——极为强调守恒性最近——重新认识11关于守恒性格式的一些注解xffxfjj2/12/1中的符号2/1jf与函数f在点的值无关!2/1j),......,,(12/1ljljljjuuuff是j点周围几个点上f(或者u)值的函数,为一记号,请勿理解为j+1/2点的值!1)2)常系数线性格式都是守恒的)(126154132231jjjjjjjfafafafafafaxxf例如,差分格式:等价于xffxfjjj2/12/1其中2514312212/1jjjjjjfbfbfbfbfbf,...)3,2(;111kabbabkkk3)关于2/1jf得到后,将j替换成j-1即可得到2/1jf2/1jf无需单独计算!(白白增加计算量)2/1jf守恒方程+守恒格式=守恒解12CopyrighbyLiXinliangCopyrightbyLiXinliang13f.传统型(非紧致)差分格式及紧致型差分格式传统型:运用多个点函数值的组合逼近一点的导数…j-2j-1jj+1…123121......mkjmkjkjkjjfafafafaxfxfffjjj/)(1xfffffffjjjjjjj60/)3302060152(21123紧致型:多个点函数值的组合逼近多个点导数值的组合25143122111jjjjjjjjuauauauauaFFFxffffFFFjjjjjjj36/))()(28(3/13/1221111例:例:xffFFFjjjjj2/)(34/14/11111xfffffFFjjjjjjj120/)1236443(5/35/221111jjxfF联立求解,多对角方程追赶法求解(LU分解法)jF紧致格式:同样的基架点,可构造更高阶格式(因为自由参数更多)(最高)精度=自由参数个数-1CopyrightbyLiXinliang14一些记号约定:jjxxff为一阶偏导数的差分算子jjxxxff22为二阶偏导数的差分算子xfffjjjx1xfffjjjx1分别为一阶精度前、后差的差分算子(本讲义中,上面两个算子表示的差分格式形式可以任意,包括线性/非线性、低阶/高阶、普通/紧致……)jjjjxfxfff2)(2110为二阶中心差分算子上面三个算子有固定含义。2.构造差分格式的基本方法——待定系数法)(31431221Ouauauauaxujjjjjj-2j-1jj+1)()(!31)(!21)()()(!31)(!21