一种自动判定数值模拟计算收敛的方法与流程

文档序号:16693759发布日期:2019-01-22 19:14阅读:2061来源:国知局
技术简介:
本发明针对数值模拟中残差设定主观、迭代次数固定导致的资源浪费与结果偏差问题,提出基于残差对数均值与观测量方差分析的自动收敛判定方法。通过识别残差下降后稳定段及观测量趋于常数的特征,实现无需人工干预的收敛判断,提升计算效率与结果可靠性。
关键词:自动收敛判定,数值模拟

此本发明涉及一种计算机辅助工程(cae)、计算流体力学(cfd)、计算结构力学(csd)及数值仿真软件技术,具体涉及偏微分方程离散后成为代数方程组的迭代求解,是一种自动判断解是否收敛的方法。



背景技术:

随着计算机硬件技术和数值分析技术的快速发展,以计算流体力学(computationalfluiddynamics,cfd)软件、计算结构力学(computationalstructuredynamics,csd)软件为代表的计算机辅助工程软件及数值仿真技术正越来越广泛地应用于各种工程技术领域中,成为重要的产品研发与技术创新平台。例如,航空飞行器的空气动力学与结构力学设计、汽车热舒适性与结构动力学设计、发动机热力学与动力学设计、船舶水动力学设计等,都离不开大量基于cfd/csd软件的仿真计算与数值优化工作。

数值模拟通过一定的离散技术,将代表物理规律的控制方程组经过线化处理转化为大规模代数方程组进行求解,工程实际问题离散形成的代数方程组对应的往往是大规模稀疏矩阵,一般采用迭代法进行求解。在物理场层面,也是通过迭代的方式进行,即先估计一个物理场的分布,然后将物理场代入到控制方程组中求得表征方程平衡程度的残差,并根据残差来改进物理场的分布,如此迭代下去直至离散方程的平衡程度达到满足实际问题的需求。以下我们主要讨论的是自动判断物理场收敛的方法,其基本思想也可以直接应用到矩阵的迭代求解。

这里面满足问题的要求是个定性的评价标准,实际操作中有两种定量操作:一种是当残差的下降指定的量级后认为物理问题得到收敛,一个是达到指定迭代次数后认为物理问题收敛。这两种方法在实际操作中都有一定的问题。指定残差下降的量级时可能发生两种情况:指定的残差下降量级过大导致数值模拟达到物理场收敛后一直在计算而满足不了残差要求,或者是指定的残差下降量级过小,从而用户得到的物理场实际上还没有收敛。指定迭代步数的方式类似,对于快速收敛的计算,固定迭代步数造成计算资源的浪费,而对于缓慢收敛的计算,固定迭代步数后依然没达到收敛。这些方式都造成了需要用户在数值模拟过程中不停的对求解器进行干涉,以取得一个物理场收敛的结果。

根据实际数值模拟过程中残差和观测量在迭代过程中的特点,这里提出了一种能够自动判定数值模拟计算收敛的方法。



技术实现要素:

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种自动判定数值模拟计算收敛的方法。

为了解决上述技术问题,本发明公开了一种自动判定数值模拟计算收敛的方法,包括以下步骤。

(1)在数值计算的初始阶段,得到残差和观测量的初始值。初始阶段指的是流场进行适当的初始化之后的一个或若干个迭代步的状态。残差是当前物理场代表的解代入离散化方程后得到的数值,其表征当前物理场与离散方程精确解之间的差别。观测量是由当前物理场给出的单点值或者统计量,例如给定空间坐标的压力、固定固体结构上的受力、入口和出口的压差和流量差等。

(2)在迭代求解过程中,获取每个迭代步的残差和监测量数值。对残差取对数后进行均值分析,对监测量不同迭代步数的均值分析,记录均值和方差等信息。

(3)根据步骤(2)得到数据寻找对数残差和监测量是否出现了常数区域,如果残差和监测量都出现了显著的常数区域,则计算收敛,否则重复(2)。

(4)输出收敛时的残差下降量级,以及监测量的数值。

步骤(1)中,得到残差和观测量的初始值,包括以下步骤:

(1a)使用合适的物理场对求解区域进行初始化;

(1b)得到物理场对应的残差和观测量;

(1c)可以根据需要对物理场进行一步或几步迭代,并记录对应的残差和观测量;

(1d)将上述(1a)至(1c)过程得到残差和观测量的统计值作为残差和观测量的参考值。

在迭代求解过程中,获取每个迭代步的残差和监测量数值,包括以下步骤:

(2a)将每个迭代步的残差除以残差的参考值,得到每个迭代步的相对残差;

(2b)将每个迭代步的相当残差取对数,得到每个迭代步的对数残差;

(2c)对从初始迭代步到当前迭代步的对数残差进行均值分析,并记录其偏差;

(2d)对从初始迭代步到当前迭代步的观测量进行均值分析,并记录其偏差。

步骤(3)中以步骤(2c)和(2d)得到的均值和偏差为依据,判断是否出现常数区域,包括以下步骤:

(3a)对数残差数据能够使用一个两段线性的曲线进行拟合,其中第一段是随迭代步下降的直线,第二段是水平直线段;

(3b)水平直线段的迭代步数达到单调下降段迭代步数的一定比例,比如1/10,水平直线段的均方差与单调下降段的均方差同一个量级或者更小;

(3c)观测量在舍弃初始一定数目的迭代步之后趋于常数,且与常数的偏差远小于参考值,比如偏差在参考值的千分之一或者更小;

(3d)如果满足(3a)至(3c)的条件,则数值计算收敛,且对数残差的初始值与水平直线段的值之差即残差收敛量级,而达到的观测值即数值计算的观测值;若不满足(3a)至(3c)的条件,则重复步骤(2a)至(2d)直至(3a)至(3c)得到满足。

有益效果:本发明无需用户指定事先难以确定的残差下降量级,省却了指定残差下降量级和迭代步数的传统方式中用户需要不停与求解软件交互的麻烦,使得整个计算直至收敛的过程能够自动完成。

附图说明

图1为本发明自动判断数值模拟结果收敛的流程图。

具体实施方式

如图1所示,本发明包括以下步骤。

(1)在数值计算的初始阶段,得到残差和观测量的初始值。初始阶段指的是流场进行适当的初始化之后的一个或若干个迭代步的状态。残差是当前物理场代表的解代入离散化方程后得到的数值,其表征当前物理场与离散方程精确解之间的差别。观测量是由当前物理场给出的单点值或者统计量,例如给定空间坐标的压力、固定固体结构上的受力、入口和出口的压差和流量差等。

(2)在迭代求解过程中,获取每个迭代步的残差和监测量数值。对残差取对数后进行均值分析,对监测量不同迭代步数的均值分析,记录均值和方差等信息。

(3)根据步骤(2)得到数据寻找对数残差和监测量是否出现了常数区域,如果残差和监测量都出现了显著的常数区域,则计算收敛,否则重复(2)。

(4)输出收敛时的残差下降量级,以及监测量的数值。

步骤(1)中,得到残差和观测量的初始值,包括以下步骤:

(1a)使用合适的物理场对求解区域进行初始化;

(1b)得到物理场对应的残差和观测量;

(1c)可以根据需要对物理场进行一步或几步迭代,并记录对应的残差和观测量;

(1d)将上述(1a)至(1c)过程得到残差和观测量的统计值作为残差和观测量的参考值。

在迭代求解过程中,获取每个迭代步的残差和监测量数值,包括以下步骤:

(2a)将每个迭代步的残差除以残差的参考值,得到每个迭代步的相对残差;

(2b)将每个迭代步的相当残差取对数,得到每个迭代步的对数残差;

(2c)对从初始迭代步到当前迭代步的对数残差进行均值分析,并记录其偏差;

(2d)对从初始迭代步到当前迭代步的观测量进行均值分析,并记录其偏差。

步骤(3)中以步骤(2c)和(2d)得到的均值和偏差为依据,判断是否出现常数区域,包括以下步骤:

(3a)对数残差数据能够使用一个两段线性的曲线进行拟合,其中第一段是随迭代步下降的直线,第二段是水平直线段;

(3b)水平直线段的迭代步数达到单调下降段迭代步数的一定比例,比如1/10,水平直线段的均方差与单调下降段的均方差同一个量级或者更小;

(3c)观测量在舍弃初始一定数目的迭代步之后趋于常数,且与常数的偏差远小于参考值,比如偏差在参考值的千分之一或者更小;

(3d)如果满足(3a)至(3c)的条件,则数值计算收敛,且对数残差的初始值与水平直线段的值之差即残差收敛量级,而达到的观测值即数值计算的观测值;若不满足(3a)至(3c)的条件,则重复步骤(2a)至(2d)直至(3a)至(3c)得到满足。

本发明提供了一种自动判定数值模拟计算收敛的方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!