用于并行数值仿真区域分解的快速切割面搜索方法与流程

文档序号:16264792发布日期:2018-12-14 21:50阅读:165来源:国知局
用于并行数值仿真区域分解的快速切割面搜索方法与流程

本发明涉及并行数值仿真中的区域划分技术领域,尤其涉及一种用于并行数值仿真区域分解的快速切割面搜索方法。

背景技术

在并行数值仿真时,通常需要进行区域划分,即需要将待仿真的空间区域划分成若干块。对每一个划分后的特定区域采用一个计算进程负责计算,以确保每一个特定区域包含的粒子数(粒子仿真方法)或网格数(有限元仿真方法)基本一致。

对待仿真的空间区域沿坐标轴方向平均划分是一种最常用的划分方法,即依次沿x轴、y轴、z轴建立切割面,完成区域划分。所述切割面一般通过搜索方法确定。传统的切割面搜索方法采用二分法,这种方法是一种蛮力算法,它未利用仿真区域内粒子或网格的分布特点,效率难以提高。

因此,针对以上不足,需要找到一种能有效利用仿真区域内粒子或网格的分布特点获得切割面的新方法,以提高搜索效率。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术中对切割面的搜索没有结合仿真区域内粒子或网格的分布特点进行,效率低的缺陷,提供一种用于并行数值仿真区域分解的快速切割面搜索方法。

为了解决上述技术问题,本发明提供了一种用于并行数值仿真区域分解的快速切割面搜索方法,该方法包括:

根据仿真区域内粒子或网格的分布特点,构建关于切割面的单调减函数,使切割面处于正确位置时,单调减函数值为0;

再构建基准函数,以衡量切割面的相对误差;

利用单调减函数和基准函数采用迭代法求解获得预期切割面。

在根据本发明所述的用于并行数值仿真区域分解的快速切割面搜索方法中,对于仿真区域的每一个维度,以x轴为例,所述单调减函数为:

f(x)=nxl·np-nx·npl(x),

式中x表示切割面坐标值,nx表示沿x轴方向的切割面分区总数目,np表示仿真区域内总粒子数或总网格数;nxl表示当前切割面左侧需分区数目,npl表示当前切割面左侧总粒子数或总网格数。

在根据本发明所述的用于并行数值仿真区域分解的快速切割面搜索方法中,所述基准函数为:

在根据本发明所述的用于并行数值仿真区域分解的快速切割面搜索方法中,所述采用迭代法求解获得预期切割面的方法包括:

确定仿真区域内待分解搜索区间x轴方向的最小值和最大值,假定单调减函数f(x)在所述最小值和最大值形成的封闭区间内为线性函数,根据线性函数的特点,求解线性函数等于0时对应的当前切割面坐标值;

再基于所述当切割面坐标值计算单调减函数f(x)是否小于0,若是,则将当前切割面坐标值作为待分解搜索区间x轴方向的最大值;否则,将当前切割面坐标值作为待分解搜索区间x轴方向的最小值;

然后计算与当前切割面坐标值对应的单调减函数值与基准函数值,判断单调减函数值与基准函数值比值的绝对值是否小于预设误差阈值,

若是,则将当前切割面作为预期切割面,继续进行下一个预期切割面的迭代求解,直到结束;否则,根据重新赋值后的待分解搜索区间,继续当前切割面的迭代计算。

在根据本发明所述的用于并行数值仿真区域分解的快速切割面搜索方法中,

设定x轴方向的所述最小值为xmin,最大值为xmax,

使:

假定单调减函数f(x)在[a,b]区间内为线性函数,计算当前切割面坐标值x:并使fx=f(x);

当fx<0,使

当fx≥0,使

然后计算与当前切割面坐标值对应的单调减函数值与基准函数值的比值,若则将当前切割面作为预期切割面,进行下一个预期切割面的迭代求解;

否则,根据重新赋值后的待分解搜索区间,重复以上计算过程,继续当前切割面的迭代计算;

式中ε为预设误差阈值。

实施本发明的用于并行数值仿真区域分解的快速切割面搜索方法,具有以下有益效果:本发明方法结合仿真区域内粒子或网格的分布特点,设计了求解切割面的单调函数及衡量误差的基准函数,通过迭代算法不断缩小切割面的搜索范围,能迅速收敛到切割面。本发明方法能够实现快速切割面搜索,提高搜索效率,适用于一维、二级及三维区域的划分。

附图说明

图1是根据本发明的用于并行数值仿真区域分解的快速切割面搜索方法的二维粒子x轴方向区域划分示例性示意图;图中a表示x轴切割面,b表示区域边界,c表示粒子;

图2是在图1的基础上,继续二维粒子y轴方向区域划分结果的示例性示意图;图中d表示y轴切割面;

图3是采用本发明方法计算获得的当前切割面处于切割正确位置时单调减函数的示意图;

图4是采用本发明方法计算的[a,b]区间内当前切割面坐标值小于正确位置时单调减函数的示意图;

图5是在图4的基础上,缩小待分解搜索区间的示意图;

图6是根据本发明的用于并行数值仿真区域分解的快速切割面搜索方法的示例性流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种用于并行数值仿真区域分解的快速切割面搜索方法,该方法包括:

根据仿真区域内粒子或网格的分布特点,构建关于切割面的单调减函数,使切割面处于正确位置时,单调减函数值为0;所构建的单调减函数具有如下本质特征:在切割面处于大于正确位置时,值小于0;切割面处于小于正确位置时,值大于0;

再构建基准函数,以衡量切割面的相对误差;

利用单调减函数和基准函数采用迭代法求解获得预期切割面。

本发明方法用来获取并行数值仿真区域的切割面,结合了仿真区域内粒子或网格的分布特点,即整体服从均匀分布或局部服从均匀分布。其中对于粒子仿真方法,需要结合仿真区域的粒子数;对于有限元仿真方法,需要结合仿真区域的网格数。对于仿真区域来说,其可能在整体上服从均匀分布,即便整体上不服从均匀分布,通常情况下,局部区域也服从均匀分布。据此特点,设计适当的单调减函数,能够通过迭代不断缩小仿真区域内待分解搜索区间,随着搜索区间的缩小,单调减函数可以近似为线性函数。本发明方法能够迅速收敛到切割面,实现快速切割面搜索。

本发明所述的快速切割面搜索方法适用于一维、二维和三维区域的划分,对于多维度的待分解搜索区间,可以依次按不同坐标轴方向分别进行区域划分,因此本发明方法具有通用性。

结合图1所示,作为示例,对于仿真区域的每一个维度,以x轴为例,所述单调减函数为:

f(x)=nxl·np-nx·npl(x),

式中x表示切割面坐标值,nx表示沿x轴方向的切割面分区总数目,np表示仿真区域内总粒子数或总网格数;nxl表示当前切割面左侧需分区数目,例如在搜索仿真区域内的第一个切割面时,nxl=1,搜索第五个切割面时,nxl=5;npl表示当前切割面左侧总粒子数或总网格数。

在单调减函数f(x)中,nx、np、nxl为常数,只有当前切割面左侧总粒子数或总网格数npl的值与当前切割面坐标值x相关。

图1中,将仿真区域沿x轴方向分区总数目为6,切割面x对应的当前切割面左侧分区数目为3。

同样,再结合图2所示,与上述过程相类似,可以实现y轴方向切割面的搜索。图2中将沿x轴方向的每个分区又沿y轴方向分为三个小分区。

图1和图2是针对仿真区域为二维粒子区域的分解,若为一维粒子区域,只完成一个坐标轴方向的分解即可;若为三维粒子区域,可依次沿x轴、y轴和z轴方向分别分解。对于有限元网格的划分,将上述方法中的粒子以网格代替即可。

下面举个例子,来说明单调减函数的原理:

假设采用粒子仿真方法的仿真区域,其仿真区域内总粒子数np为100,切割面分区总数目nx为5,当前进行第三个切割面的搜索,则:

f(x)=nxl·np-nx·npl(x)

=3*100-5·npl(x),

由仿真区域内总粒子数及切割面分区总数目可知,当第三个切割面选择了正确位置时,对应的npl应为60,则此时单调减函数f(x)值为0;如果第三个切割面的坐标值大于正确位置的坐标值,显然此时对应的npl应大于60,单调减函数f(x)小于0;如果第三个切割面的坐标值小于正确位置的坐标值,显然此时对应的npl应小于60,单调减函数f(x)大于0。由此说明,构造的单调减函数可以用于判断每一次获得的切割面的坐标值是否满足预期要求,只要切割面的坐标值满足在预设误差阈值以内,就可以将其作为预期切割面。

作为示例,所述基准函数为:

假设预期切割面的坐标值为x0,则下式成立:

即:nxl·np=nx·npl(x0);

由于在未搜索到预期切割面位置之前,无法获得对应的npl(x0),因此采用平均值作为基准,基准函数g(x)相当于nxl·np与nx·npl(x)两项的平均值。而f(x)相当于nxl·np与nx·npl(x)两项的差值。

二者的比值具体为:

因此,可以用来表示当前切割面左侧总粒子数(或总网格数)与预期切割面左侧总粒子数(或总网格数)的相对偏差。

作为示例,所述采用迭代法求解获得预期切割面的方法包括:

确定仿真区域内待分解搜索区间x轴方向的最小值和最大值,假定单调减函数f(x)在所述最小值和最大值形成的封闭区间内为线性函数,根据线性函数的特点,求解线性函数等于0时对应的当前切割面坐标值;

再基于所述当切割面坐标值计算单调减函数f(x)是否小于0,若是,则将当前切割面坐标值作为待分解搜索区间x轴方向的最大值;否则,将当前切割面坐标值作为待分解搜索区间x轴方向的最小值;

然后计算与当前切割面坐标值对应的单调减函数值与基准函数值,判断单调减函数值与基准函数值比值的绝对值是否小于预设误差阈值,

若是,则将当前切割面作为预期切割面,继续进行下一个预期切割面的迭代求解,直到结束;否则,根据重新赋值后的待分解搜索区间,继续当前切割面的迭代计算。

本实施方式所述的获得预期切割面的方法是一种逐渐缩小待分解搜索区间,使获得的切割面坐标值x逐渐趋向于正确位置的过程。当x位于正确位置右边时,f(x)小于零;当x位于正确位置左边时,f(x)大于零;当x从左向右运动时,f(x)相应变小。也就是说,f(x)越接近零,x所处的位置越接近正确位置。

下面以一个具体的实施例来说明本发明方法的迭代过程:

结合图6所未,设定x轴方向的所述最小值为xmin,最大值为xmax,

使:

假定单调减函数f(x)在[a,b]区间内为线性函数,计算当前切割面坐标值x:并使fx=f(x);

当fx<0,使

当fx≥0,使

然后计算与当前切割面坐标值对应的单调减函数值与基准函数值的比值,若则将当前切割面作为预期切割面,进行下一个预期切割面的迭代求解;

否则,根据重新赋值后的待分解搜索区间,重复以上计算过程,继续当前切割面的迭代计算;

式中ε为预设误差阈值。

本实施例中,每基于切割面坐标值进行一次迭代计算,都结合单调减函数与基准函数进行一次当前切割面是否为预期切割面的判断。

结合图3所示,当单调减函数在待分解搜索区间内为线性函数(即粒子在当前搜索区间内均匀分布),则可计算直接获得当前切割面的正确位置x,无需继续迭代;接下来可进行下一个切割面的搜索。但本发明方法在实际使用过程中,迭代过程可自动进行,因此在fx≥0时,都进行与预设误差阈值进行比较的判断,对于fx=0的情况,一定对应因此并不影响计算结果。按照上述方法依次搜索,可获得x轴方向所有的切割面。

结合图4所示,当计算获得的x对应的切割面小于正确位置,表明真正的预期切割面会处于当前x与最大值xmax所构成的新的待分解搜索区间内;因此再结合图5所示,可以缩小待分解搜索区间,将当前x的值作为新的xmin,形成图5中所示新的[a,b]区间,再继续进行迭代计算。

本发明方法中,如果仿真区域中粒子或网格整体服从均匀分布,即单调减函数在整个待分解搜索区间是线性函数,则只计算一次就能获得预期切割面;当仿真区域中粒子或网格整体上不服从均匀分布时,可假定在待分解搜索区间内单调减函数是线性函数,计算结果产生的偏差,通过不断缩小待分解搜索区间的方式可自行修正;通常情况下,随着搜索范围缩小,仿真区域的局部粒子或网格总会服从均匀分布,使待分解搜索区间内的单调减函数可以近似为线性函数;当满足线性函数的条件后,所述方法能够迅速收敛到切割面。

需要说明的是,单调减函数f(x)是一个绝对量,对于不同的计算条件,计算结果可能差别较大,因此对预期切割面的判断需要借助于相对量。因此,需要用基准函数来计算相对误差。

综上所述,本发明方法与常规的二分法相比,充分利用了网格或粒子的分布均匀性特征,具有更快的收敛速度。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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