CFD程序验证的虚构解方法及边界精度匹配问题研究-中国力学学会.docVIP

CFD程序验证的虚构解方法及边界精度匹配问题研究-中国力学学会.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CFD程序验证的虚构解方法及边界精度匹配问题研究-中国力学学会.doc

CFD程序验证的虚构解方法及边界精度匹配问题研究 杨振虎 白文 (中国航空工业第一集团公司第六三一研究所气动数值航空科技重点实验室,西安,710068) 摘要:本文采用网格收敛分析和虚构解理论对程序验证进行了理论探索与数值实验研究,并发展完善了该方法。文中给出了虚构解程序验证中一种比较简单的源项处理方案;给出了虚构解程序验证中气动方程组一种通用的虚构解系数选取方法,最后用虚构解方法对二维结构网格Euler流动计算程序ARC2D进行了验证,并发现了该程序边界条件实现精度与流场内部精度不相匹配问题,并给予了修正,数值实践证明虚构解方法是一种严格稳健有效的程序验证方法,用它完成的程序验证具有较高的可信度。 关键字:虚构解方法,网格收敛分析,计算流体力学 1引言 随着电子计算机的飞速发展,有力的推动了偏微分方程(组)的数值求解,建模与仿真技术对工程设计、分析与优化产生了深远的影响。然而,一方面由于偏微分方程学科的发展,到目前为止,对非线性问题能提供的解析解极其有限,且当解析解存在时,限制颇多,如当解存在时,要么方程的某些项缺省,这样的解不具有普遍性,要么为无穷展式,数值上不易实现;另一方面,由于实际问题越来越复杂,求解域不但复杂,而且问题本身往往是多学科的耦合。与之对应的求解程序也变得庞大,高达上万行,几十万行,甚至更高,复杂度越来越高。这对程序的可靠性提出了较严峻的考验,程序的验证变得尤为重要。 对CFD程序尤其如此,当前对CFD程序的可信度研究主要有验证和确认两种策略。验证通过将数值解与解析解或高精度解进行比较,对数值误差进行量化,以确定计算软件是否正确地求解了方程,是一种数值分析活动;确认通过将数值模拟结果与实验结果进行比较,对模型的不确定度进行量化,以确定计算软件是否求解了正确的方程,是一种建模活动。只有当数值误差得到量化和有效控制以后,与实验结果的比较才是有意义的。因此,验证是计算流体力学可信度研究中最基础、最重要的一步。验证又可分为程序验证和数值模拟验证。程序验证是一个确定程序没有编码错误的过程。也就是令人信服的演示求解方程的程序正确的求解了方程,更精确一点,在这里程序验证指的是精度阶验证,即展示程序的渐进实际精度阶与数值算法的理论精度阶一致。程序验证活动主要解决程序的正确性问题,也是进行CFD可信度研究的重要前沿课题;数值模拟验证活动主要将数值模拟结果与高精度解进行比较,并量化其数值误差。当前,进行程序验证主要有两条途径,其一,软件工程的手段,即通过大量的测试来完成;其二,数值算法验证。软件工程方法主要包括白盒测试、黑盒测试以及回归测试等;数值算法验证方法主要包括高精度解方法、虚构解方法等。其中,虚构解方法是最近才发展起来的一种有效的程序验证方法,即为本文的主要内容。该方法克服了传统解析解与网格收敛分析等方法的缺点,是一种严格稳健的程序验证手段。从现有的资料来看,国内对该方法的还未开展积极的研究。针对目前存在的主要问题和发展方向,本文着重对程序验证的虚构解方法进行了理论研究和数值实验探索。 2 虚构解方法 该方法的核心思想是通过添加源项修改控制方程和由虚构解修改边界条件以产生预先规定的解,然后进行网格收敛分析来确定实际的收敛阶,通过分析对比实际的收敛阶与理论上的收敛阶来判断程序是否存在错误。值得注意的是,该虚构解不必具有实际的物理意义,程序验证仅仅是一个数学的过程。在虚构解方法中,解析解的形式是任意的。虚构解的选择主要基于如下两条原则,解结构尽可能的复杂,以免使得原方程的某些项缺省,从而使验证不具有普遍意义;解可不具有实际物理意义,但应满足原方程对解的一些基本要求,即使原方程有意义,如方程中的某些变量不能为负,足够光滑等,因此作者认为解的选择应首先考虑:三角函数,反三角函数,指数函数,双曲函数或这些函数的某种组合。虚构解的意义在于解决了验证CFD程序时,缺乏一般意义解析解的问题。 虚构解在某种意义下是控制方程的解析解,它具有数学意义上解析解的特性.虚构解方法,首先根据控制方程选择合适的函数作为所求问题的解析解,然后将该解代入原方程形成源项,通过对原方程添加该源项以及依据解析解修改边界条件使得假设的解析解为修改后方程的解,最后通过将修改方程的数值解与虚构解对比来测试程序的方法。假设求解微分方程: L为微分算子,u为微分变量,f为源项。在解析解方法中,一般通过选择源项f,由经典的应用数学方法,来求解u。在虚构解方法中,首先通过构造一个解u,然后用算子L作用于u,来生成源项f。虚构解程序验证过程,就是对要验证的程序所求解的方程虚构一个一般意义的解析解。一般意义的解的优点在于它能测试到程序的各个部分。 2.1 误差度量 为了有效的计算出精度阶p,需要对误差进行度量,常用的有L1,L2以及L∞范数,文中用的是L2范数,在此略

文档评论(0)

wendang_12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档