一种蒙特卡罗粒子输运模拟中核截面数据处理优化方法

文档序号:6633426阅读:431来源:国知局
一种蒙特卡罗粒子输运模拟中核截面数据处理优化方法
【专利摘要】本发明公布了一种蒙特卡罗粒子输运模拟中核截面数据处理优化方法,在传统MC粒子输运模拟连续点截面处理与应用的方法基础上,归并问题涉及的所用核素的能量网格点形成统一能量网格,使得每步输运只需对统一能量网格进行一次搜索查找,由预处理得到的核素指针数组直接找到当前能量在每个核素能量网格中的具体位置,替代传统方法对材料中每个核素的不同能量网格的重复搜索查找,极大地减少了蒙特卡罗粒子输运计算中对能量网格的搜索查找次数,在不损失计算精度的情况下提高计算速度;并根据点状核数据能量点分布的特点,引入能量分段思想形成能量网格的双层查找模式,减少在分布密度较高区域的无效搜索次数,提高单次网格搜索的效率。
【专利说明】-种蒙特卡罗粒子输运模拟中核截面数据处理优化方法

【技术领域】
[0001] 本发明涉及蒙特卡罗粒子输运计算中的一种核截面数据处理优化方法,属于原子 能科学【技术领域】。

【背景技术】
[0002] 蒙特卡罗(MC)方法是目前粒子输运模拟中较常用的方法。MC粒子输运模拟从连 续能量点截面的核数据中获取粒子与物质发生各种反应的相关截面数据用于指导输运过 程中的各种抽样过程。对于不同核素连续能量点的能量网格划分各不相同,在MC计算中, 需要频繁的根据入射能量对每个核素的能量网格进行搜索找到对应的网格索引,以得到相 应的截面。这些频繁的网格搜索导致核素多时计算很慢,在燃耗计算中尤其明显。
[0003] 统一能量网格是Serpent等软件使用的一种加速MC计算的方法。其基本思想是: 构造所用核素适用的能量网格,计算时,只需对该能量网格进行一次搜索,即可得到当前能 量下所有核素的截面数据,避免了因各核素能量网格不同而进行的重复的能量网格搜索。 但是,已有的统一能量网格方法,考虑到计算速度、计算精度与内存开销,通常有两种处理 方法:一种为了保证原始核数据的精度,通常将所有核素的能量网格合并,并对所有能点预 计算所有核素的各种截面和每种材料的各种宏观截面,存储在内存中供输运计算使用,因 此会占用非常大的内存,甚至因为需要内存太大而不能进行计算;另外一种为了避免大内 存开销,在建立统一能量网格时,不是合并所有核素的能量网格,而是自定义一套能量网格 或者对所有核素的能量网格进行精简,这样的处理导致了原始核数据精度的部分丢失。如 何在保持计算精度且不显著增加内存使用的情况下,提高统一能量网格方法对MC计算的 加速效果是需要解决的关键问题。


【发明内容】

[0004] 本发明要解决的技术问题为:本发明的目的在于改善传统蒙特卡罗粒子输运计算 方法在核截面数据处理与使用效率上的不足,提供了一种蒙特卡罗核截面数据处理优化方 法,在保持计算精度的前提下,提高计算速度。
[0005] 本发明的技术方案如下:一种蒙特卡罗程序中核截面数据处理优化方法,其特征 在于包括以下步骤:
[0006] (1)对蒙特卡罗程序从数据库中读取的核数据进行预处理,包括以下内容:
[0007] a.统一能量网格的建立:在读取核素数据的时候,采用归并法合并问题涉及的所 用核素的能量网格形成统一能量网格数组UnionErgArray[N tot],其中Nt(rt表示统一能量网 格中的网格数;
[0008] b.核素指针数组的建立:对比每个单核素i的能量网格EryArrayjNi],队表示 网格数,与统一能量网格数组UnionErgArray[N t(rt],找出统一能量网格数组中的每个能点 UnionErgArray[j]在单核素i能量网格中的位置,标记为PositioriiU],存入数组,形成核 素i的核素指针数组,标记为PositioriilXJ ;
[0009] c.核素总截面数组与材料宏观总截面数组的建立:在核素指针数组建立的同时, 依据单核素i的能量网格值计算线性插值因子:

【权利要求】
1. 一种蒙特卡罗粒子输运模拟中核截面数据处理优化方法,其特征在于包括以下步 骤: 步骤(1)对蒙特卡罗粒子输运模拟程序从核数据库中读取的核数据进行预处理,包括 以下步骤: (11) 统一能量网格的建立:在读取核素数据时,采用归并法合并问题涉及的所用核素 的能量网格,形成统一能量网格数组,标记为UnionErgArray [Nt(rt],其中Nt()t表示统一能量 网格中的网格数; (12) 核素指针数组的建立:对比每个单核素 i的能量网格EryArrayjNi],队表示网 格数,与步骤(11)中产生的统一能量网格数组UnionErgArray[NtJ,找出统一能量网格数 组中的每个能点UnionErgArray[j]在单核素 i能量网格EryArrayjNi]中的位置,标记为 PositioriiU],存入数组,形成核素 i的核素指针数组,标记为PositioriilXJ ; (13) 核素总截面数组与材料宏观总截面数组的建立:在步骤(12)中建立核素指针数 组的同时,依据单核素 i的能量网格值计算线性插值因子:
插值得到核素 i的总截面: 〇=〇 [Positiorii [j] ]+factor* ( 〇 [Positionj [ j]+1] - 〇 [Positionj [ j]]), 其中〇 [PositioriiU]]表示单核素 i能量网格对应的总截面数组中的第PositioriiU] 个值,将总截面值存入数组,形成单核素 i的总截面数组,标记为〇 i [NtJ,将材料k中所有 核素的总截面值按密度比例求和得到材料的宏观总截面数组,标记为2k[NtJ ; (14) 分段能点指针数组的建立:根据用户给定的或者程序内置的分段能点数组 PointwiseErgArray[Npw],其中Npw表示分段能点个数,遍历步骤(11)中产生的统一能量网 格数组UnionErgArray[Ntot],找出分段能点数组中每个能点在统一能量网格中的位置,存 入数组,形成分段能点指针数组,标记为P〇sitionpw[Npw]; 步骤(2)在蒙特卡罗粒子输运模拟中需要使用截面数据时,对各类截面进行计算,包 括以下步骤: (21) 查找当前能量在步骤(11)中产生的统一能量网格数组UnionErgArray[Ntot]中 的位置,首先,在分段能点数组P〇intwiseErgArray[Npw]中搜索当前能量erg,得到erg 在分段能点数组中的位置为Npwl与Npwl+1之间;其次,根据步骤(14)中得到的分段能 点指针数组P〇intwi seErgArray [Npw],得到erg在统一能量网格数组中的位置为p 1 = Positionpw[Npwl]与p2 = Positionpw[Npwl+l]之间;再次,使用二分查找法在统一能量网格 数组UnionErgArray[Nt()t]的pi到p2区间上进行搜索得到erg在统一能量网格中的精确 位置Mainindex,并得到插值因子:
(22) 在抽样粒子输运长度时需要计算材料的宏观截面,依据步骤(21)中得到的当前 能量erg在统一能量网格中的精确位置Mainindex和插值因子fmain,对步骤(13)中得到 的当前材料的宏观总截面数组2k[NtJ进行线性插值得到材料的宏观截面I:: 2 = 2k[Mainindex]+fmainX (2k[Mainindex]-2k[Mainindex]); (23) 在抽样反应核素时需要使用当前材料中各核素的总截面,根据步骤(21)中得到 的当前能量erg在统一能量网格中的精确位置Mainindex和插值因子fmain,同步骤(22) 中,直接依据步骤(13)中得到的每个核素的总截面数组〇 jNtJ进行线性插值得到每个核 素的总截面〇 i : 〇 i = 〇 j [Mainindex]+fmainX (〇 j [Mainindex] - 〇 j [Mainindex]); (24) 在抽样反应类型或物理参数计算时需要计算当前反应核素 i的多种反应截面, 根据步骤(21)中得到的当前能量erg在统一能量网格中的精确位置Mainindex,对应步骤 (12)中得到的当前核素 i的核素指针数组Positiorii [Mainindex]得到erg在核素 i的能 量网格中的位置P,线性插值因子f由下式得到: f = (erg-EryArrayj [p]) / (EryArrayj [p+1] -EryArrayj [p]), 线性插值得到各种反应截面。
【文档编号】G06F19/00GK104346533SQ201410623626
【公开日】2015年2月11日 申请日期:2014年11月6日 优先权日:2014年11月6日
【发明者】郝丽娟, 郑华庆, 孙光耀, 宋婧, 吴宜灿 申请人:中国科学院合肥物质科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1