System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种GPU并行的蒙特卡洛光原子反应抽样方法技术_技高网

一种GPU并行的蒙特卡洛光原子反应抽样方法技术

技术编号:43994741 阅读:3 留言:0更新日期:2025-01-10 20:14
本发明专利技术公开了一种GPU并行的蒙特卡洛光原子反应抽样方法,首先基于相干散射和康普顿散射微分截面公式计算散射角余弦的概率密度函数,对散射角余弦的概率密度函数进行梯形积分,得到散射角余弦的概率分布函数;其次计算所有入射能量点下的概率分布函数,得到概率分布函数关于入射能量和散射角余弦的二维插值表;最后,在蒙特卡洛粒子输运程序中对散射角余弦进行抽样,根据抽样结果计算得出次级光子的能量。本发明专利技术提出的GPU并行的蒙特卡洛光原子反应抽样方法,对GPU并行效率有很大提升。

【技术实现步骤摘要】

本专利技术涉及蒙特卡洛粒子输运计算,具体涉及一种gpu并行的蒙特卡洛光原子反应抽样方法。


技术介绍

1、蒙特卡洛粒子输运方法是一种基于概率论的粒子输运求解方法,由于其可以准确的模拟介质中粒子输运的物理过程,近五十年来该方法得到了广泛的应用。蒙特卡洛粒子输运方法具有随机性,需要模拟大量的粒子历史以达到理想的统计精度,消耗大量的计算资源。随着gpu的不断发展以及蒙特卡洛方法天然适合并行,越来越多人在gpu上开发蒙特卡洛粒子输运程序。

2、然而传统的蒙特卡洛光原子反应抽样方法并不适用于gpu并行。传统的蒙特卡洛光原子反应抽样方法存在大量的分支流程,不同的线程可能会进入不同的代码分支。但gpu相同核心的线程只能执行相同的代码,这就使得传统方法在gpu上的并行效率很低。


技术实现思路

1、为解决上述现有技术中存在的问题,本专利技术提出了一种gpu并行的蒙特卡洛光原子反应抽样方法,该方法适用于gpu并行且计算精度与传统方法相当,解决了传统抽样方法在gpu上并行效率低的问题。

2、为实现上述目的,本专利技术采取如下的技术方案:

3、一种gpu并行的蒙特卡洛光原子反应抽样方法,包括以下步骤:

4、步骤1:通过相干散射和康普顿散射微分截面公式计算散射角余弦的概率密度函数,并将概率密度函数离散成二维插值表;

5、(1)相干散射

6、光子与束缚在原子核里的电子发生弹性散射的过程称为相干散射,相干散射微分截面采用如下公式计算:

7、

8、式中:

9、——相干散射微分截面/barn;

10、μ——散射角余弦;

11、e——入射光子能量/mev;

12、re——电子经典半径,re=2.81794×10-13cm

13、f(x,z)——相干散射原子形状因子;

14、x——光子动量转移量/

15、z——原子序数。

16、相干散射的概率密度函数为:

17、

18、式中:

19、pcoh(e,μ)——相干散射的概率密度函数;

20、σcoh(e)——入射光子能量为e时相干散射截面/barn。

21、其中,光子动量转移量x与入射光子能量e和散射角余弦μ存在以下关系:

22、

23、式中:

24、k——入射光子能量与电子静止能量的比值;

25、e——入射光子能量/mev。

26、结合公式(2)和公式(3)能够看出相同核素相干散射的概率密度函数只与入射光子能量和散射角余弦有关。因此,选取入射光子能量网格(e1,e2,e3······en)、散射角余弦网格(μ1,μ2,μ3······μm)对概率密度函数进行离散,网格点之间采用线性插值,即可得到相干散射的概率密度函数的二维插值表。

27、(2)康普顿散射

28、光子与束缚电子发生康普顿散射的微分截面采用以下公式进行计算:

29、

30、式中:

31、——康普顿散射微分截面/barn;

32、k′——出射光子能量与电子静止能量的比值;

33、s(x,z)——康普顿散射形状因子。

34、其中k,k′,μ存在以下关系:

35、

36、将公式(5)带入公式(4),可得康普顿散射的概率密度函数为:

37、

38、式中:

39、pinc(e,μ)——康普顿散射的概率密度函数;

40、σinc(e)——入射光子能量为e时康普顿散射截面/barn;

41、其中,光子动量转移量x与入射能量e和散射角余弦μ存在以下关系:

42、

43、同理,相同核素康普顿散射的概率密度函数只与入射光子能量和散射角余弦有关。因此,选取入射光子能量网格(e1,e2,e3······en)、散射角余弦网格(μ1,μ2,μ3······μm)对概率密度函数进行离散,网格点之间采用线性插值,即可得到康普顿散射的概率密度函数的二维插值表。

44、步骤2:将相干散射和康普顿散射的概率密度函数的二维插值表对散射角余弦进行积分,得到概率分布函数关于入射光子能量和散射角余弦的二维插值表;

45、相干散射和康普顿散射的概率分布函数通过对概率密度函数进行积分得到,采用梯形积分,计算公式如下所示:

46、

47、式中:

48、ccoh(e,μj)、cinc(e,μj)——相干散射、康普顿散射的概率分布函数;

49、pcoh(e,μi)、pinc(e,μi)——相干散射、康普顿散射在μi处的概率密度函数;

50、pcoh(e,μi+1)、pinc(e,μi+1)——相干散射、康普顿散射在μi+1处概率密度函数;

51、i、j——计数标识符。

52、步骤3:对入射光子能量和概率分布函数进行抽样,根据抽样结果插值得出次级光子散射角余弦。再通过次级光子散射角余弦与出射能量的关系计算出次级光子出射能量;

53、先对入射光子能量进行抽样,选择使用哪个入射光子能量下的概率分布函数。对于入射光子能量为e的光子,如果e≤e1则使用e1;如果e≥en则使用en;如果e∈(ei,ei+1),有抽取一个随机数ξ1,如果ξ1≤f则使用ei+1,反之则使用ei。

54、对入射光子能量抽样之后再对散射角余弦进行抽样。假设抽到的入射光子能量为ei,抽取一个随机数ξ2,且c(ei,μj)<ξ2c(ei,μm)<c(ei,μj+1),散射角余弦可由下式得出:

55、

56、式中:

57、μ——散射角余弦;

58、

59、p(ei,μj)——入射能量为ei散射角余弦为μj时的概率密度函数;

60、c(ei,μj)——入射能量为ei散射角余弦为μj时的概率分布函数;

61、μm——散射角余弦的最大网格点。

62、完成散射角余弦的抽样后需要通过散射角余弦与出射光子能量的关系计算出次级光子出射能量。对于相干散射:次级光子出射能量与入射能量相同e′=e。对于康普顿散射,次级光子能量为:

63、与现有技术相比,本专利技术具有如下优点:

64、(1)现有技术存在大量分支流程,在gpu上的并行效率很低;本专利技术没有分支流程,在gpu上能够达到很高的并行效率。

65、(2)现有技术在光子能量较低时抽样效率较低,需要多次循环计算;本专利技术只需一次计算即可完成抽样。

本文档来自技高网
...

【技术保护点】

1.一种GPU并行的蒙特卡洛光原子反应抽样方法,其特征在于:包括以下步骤:

【技术特征摘要】

1.一种gpu并行的蒙特卡洛光原子反应...

【专利技术属性】
技术研发人员:祖铁军张睿吴宏春曹良志
申请(专利权)人:西安交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1