克雷洛夫子空间加速求解燃耗方程的数值计算方法与流程

文档序号:15688545发布日期:2018-10-16 21:32阅读:2422来源:国知局

本发明涉及核工程领域,特别涉及一种核反应堆物理燃耗方程的计算方法。



背景技术:

燃耗计算是为了计算核燃料的组成成分,这对反应堆的运行、冷却以及核电站的放射性防护有着重大的意义。该计算对计算速度和精度有着比较高的要求。现阶段,计算燃耗主要有两种方法:第一种是通过解燃耗链的方法,比如tta方法,这种方法的计算精度比较高,但是效率比较低,适合单个核素的求解。另一种方法是通过矩阵的形式求解燃耗方程,用矩阵指数法来做快速求解,这种方法的计算效率比较高,但是数值结果受到数学方法上的影响比较大。

近几年来,矩阵指数法的研究逐步深入[1],效率和精度上都有了比较大的提高。比较有代表意义的是泰勒展开法、帕德有理展开法和切比雪夫有理展开法。泰勒展开和帕德展开是基于指数函数在原点附近的展开计算的,运用在矩阵上,主要使用与范数比较小的矩阵。当矩阵的范数增大的时候,计算精度会下降,甚至出现计算错误。采用缩放指数的方法能在一定程度上解决问题。切比雪夫有理展开方法是现阶段一个比较合适的算法,计算精度满足工程实际的需求,但是其计算速度不够快。

克雷洛夫子空间法是通过将一个大型矩阵投影到一个小的子空间内,然后在这个小空间上进行求解以得到加速算法的目的。由于燃耗计算中,燃耗矩阵的刚性比较大,是一个接近奇异的矩阵,一般的克雷洛夫子空间法在精度上并不能满足要求。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供一种克雷洛夫子空间加速求解燃耗方程的数值计算方法,在采用有理展开的矩阵指数法的基础上,通过耦合新型的克雷洛夫子空间法—广义最小残差法,在保证一定的精度要求的前提上,提高了燃耗求解速度。

本发明的目的通过以下的技术方案实现:一种克雷洛夫子空间加速求解燃耗方程的数值计算方法,包括:

s1、矩阵指数有理展开:

指数函数在一定的区间内可以用有理展开的方法进行近似计算,其形式为:

这里v是有理展开式的分子分母的阶数;

采用部分分式写法可以改写成:

将其运用在燃耗计算上,可化成:

式中:n0为初始核素组成向量;v为有理展开式的阶数;ξj为有理展开式中的极点;τj为有理展开式中各极点对应的留数;τ0为一个固定常数;a为燃耗矩阵;i为单位矩阵;

s2、利用克雷洛夫子空间法—广义残差法加速:

用广义残差法对公式(1)进行加速求解,其流程如下所示:

s2-1输入一个n阶的燃耗矩阵a,一个n阶的单位矩阵i,一个初始核素组成向量n0,一个时间步长t;任意选取一个初始迭代值x0并且计算b=ta-ξji和r0=n0-bx0;

s2-2设置v1=r0/||r0||2,β=||n0||2;

s2-3循环:forj=1,2,…,m,…,

hi,j=(bvj,vi),i=1,2,…,j,

其中(bvj,vi)代表求其内积;

在上面的每一次循环中都做残差计算:

建立汉斯博格矩阵:

解最小二乘法问题:

建立相应的:yj和||rj||2=||vj(βe1-hjyj)||2,

当残差||rj||2小于设定阈值时,退出循环;

s2-4计算获得单个解:

xm=x0+vmym

s2-5把v个线性系统的解组合计算,可以得到最终核素组成向量n(t):

优选的,在建立克雷洛夫子空间的过程中,对矩阵的对角线做偏移处理不会改变其子空间中的向量,即:km(a,v)=km(a-εji,v),在这种情况下,有理展开式子的v个线性系统中,只需要做一次子空间的建立,并在这个基础上做各个线性方程的残差迭代计算。

优选的,在进行有理展开时,进行ilu分解预处理:

l-1(a-ξji)r-1u=l-1n0;(2)

yj=r-1u;(3)

将要求解的矩阵进行ilu分解,然后将得到的矩阵l和u的逆分别乘到矩阵两边,方程的另一端左乘l的逆,然后通过广义残差法迭代得到的结果再左乘r的逆,得到最后的结果。

优选的,在求解燃耗的时候引入重启动技术,在进行了若干步迭代之后若未收敛,则将得到的解和残差作为初始值,重新开始建立克雷洛夫子空间并进行迭代,具体如下:

(1)任意选取初始值x0和内迭代数k,并且计算b=ta-ξji和r0=n0-bx0;

(2)令v1=r0/||r0||2,β=||n0||2;

(3)循环:forj=1,2,…,k

按照步骤s2广义残差法的流程计算:令||rj||2达到最小的yj值;

(4)构建近似解:

xk=x0+vkyk

(5)重启动:

计算rk=n0-bxk;如果该值满足计算需求则结束迭代;否则令x0=xk,v1=rk/||rk||2,然后重复步骤(3),(4),(5)。

本发明与现有技术相比,具有如下优点和有益效果:

在满足相应的计算精度需求的前提下,通过建立一个子空间并在该空间内求解,与整个n维空间上相比,大大减少了计算量,极大地提高了计算效率。

附图说明

图1是gs/gmres迭代需要的时间对比图。

图2是gs/gmres的迭代步数对比图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例1

在中子通量保持不变的一个燃耗步长内,采用新型的克雷洛夫子空间来加速求解燃耗方程。为了能在求解燃耗的过程中加速矩阵指数有理展开算法,将新型克雷洛夫子空间法—广义残差法[2]耦合到原有的矩阵指数有理展开法,在保证一定的精度要求的前提上,提高了燃耗求解速度。主要是将一个n维的燃耗矩阵和初始核素浓度投影到一个m维子空间上,然后在这个子空间中寻找最优解。由于子空间的维度m比燃耗矩阵自身的维度n小很多,所以在求解的时候计算量大大减少,计算速度因此得到较大的提升。对该算法做了进一步优化,包括矩阵偏移技术,预处理技术和重启动技术的应用,使得该算法更加适合燃耗方程的快速求解运算。

具体采用的技术方案是:

1、矩阵指数有理展开方法

指数函数在一定的区间内可以用有理展开的方法进行近似计算,其形式为:

这里v是有理展开式的分子分母的阶数;

采用部分分式写法可以改写成:

将其运用在燃耗计算上,主要可化成:

式中:

n0为初始核素组成向量;

v为有理展开式的阶数;

ξj为有理展开式中的极点;

τj为有理展开式中各极点对应的留数;

τ0为一个固定常数;

a为燃耗矩阵;

i为单位矩阵;

2、新克雷洛夫子空间法—广义残差法加速

用广义残差法对公式(1)进行加速求解。其算法流程如下所示:

输入:一个n阶的燃耗矩阵a,

一个n阶的单位矩阵i,

一个初始核素组成向量n0,

一个时间步长t。

输出:克雷洛夫子空间维度m,

一个线性系统迭代求解的结果xm。

具体过程如下:

(1)任意选取一个初始迭代值x0并且计算b=ta-ξji和r0=n0-bx0;

(2)设置v1=r0/||r0||2,β=||n0||2;

(3)循环:forj=1,2,…,m,…,

hi,j=(bvj,vi),i=1,2,…,j,

其中(bvj,vi)代表求其内积;

在上面的每一次循环中都做残差计算;

建立汉斯博格矩阵:

解最小二乘法问题:

建立相应的:yj和||rj||2=||vj(βe1-hjyj)||2,

yj是一个n*1向量,使||rj||2达到最小值时有对应向量值yj,当残差||rj||2足够小时,退出循环。

(4)计算获得单个解:

xm=x0+vmym

(5)把v个线性系统的解组合计算,可以得到最终核素组成向量n(t):

3、新克雷洛夫子空间法的进一步优化处理

3.1做矩阵的偏移处理

由于矩阵的偏移特性[3]在建立克雷洛夫子空间的过程中,对矩阵的对角线做偏移处理不会改变其子空间中的向量,既是:km(a,v)=km(a-εji,v)。在这种情况下,有理展开式子的v个线性系统中,只需要做一次子空间的建立,并在这个基础上做各个线性方程的残差迭代计算。这样充分节省了计算时间,提高了计算效率。特别适用于燃耗求解。

3.2做矩阵的预处理

由于燃耗计算中,不同核素的半衰期差异很大,导致燃耗矩阵的刚性比较大,自身接近一个奇异矩阵,在进行有理展开时,不利于线性方程的求解。所以需要进行预处理使得方程容易求解。做一个ilu分解可以很好的解决这个问题。

l-1(a-ξji)r-1u=l-1n0;(2)

yj=r-1u;(3)

将要求解的矩阵进行ilu分解,然后并将得到的矩阵l和u的逆分别乘到矩阵两边,方程的另一端左乘l的逆。然后通过广义残差法迭代得到的结果在左乘r的逆,得到最后的结果。这样做的收益是,所求矩阵在两边乘上l和u的逆的时候,矩阵刚性正好得到了改善,不再是一个奇异矩阵,因此可以很快的进行迭代求解。

3.3重启动处理

当线性方程迭代次数比较多时,克雷洛夫子空间的维度增加会造成计算量的不断增大。为了解决这个问题,本发明在求解燃耗的时候引入了重启动技术。其主要思想就是在进行了若干步迭代之后若未收敛,则将得到的解和残差作为初始值,重新开始建立克雷洛夫子空间并进行迭代。其算法如下:

(1)任意选取初始值x0和内迭代数k,并且计算b=ta-ξji和r0=n0-bx0;

(2)令v1=r0/||r0||2,β=||n0||2;

(3)循环:forj=1,2,…,k

按照前文广义残差法的算法流程计算:令||rj||2达到最小的yj值;

(4)构建近似解:

xk=x0+vkyk

(5)重启动:

计算rk=n0-bxk;如果该值满足计算需求则结束迭代;

否则令x0=xk,v1=rk/||rk||2,然后重复步骤(3),(4),(5)。

对一个1696阶的燃耗矩阵进行计算分析,主要以切比雪夫有理展开方法为基础,并与用高斯赛德尔迭代法进行全空间迭代求解的算法进行比较分析。图1、图2计算结果中容易看出通过用新型克雷洛夫子空间法加速求解的算法,计算效率提高了接近5倍。由于在用迭代法解线性方程时,规定了相同的收敛判据,因此认为全空间和子空间的算法在计算精度基本一致。

上述的实例是以一个范数为1015的1696阶燃耗矩阵为代表进行说明的,但本发明提出的加速求解方法理论上对于燃耗矩阵均适用。

[1]moler,c.andc.vanloan,nineteendubiouswaystocomputetheexponentialofamatrix,twenty-fiveyearslater.siamreview,2003.45(piis00361445024180101):p.3-49.

[2]saad,y.andm.h.schultz,gmres:ageneralizedminimalresidualalgorithmforsolvingnonsymmetriclinearsystems.1986.

[3]botchev,m.a.,krylovsubspaceexponentialtimedomainsolutionofmaxwell'sequationsinphotoniccrystalmodeling.journalofcomputationalandappliedmathematics,2016.293:p.20-34.

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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