这篇博客用于记录我在学习及使用DagOpenMC的过程中,觉得有价值的一些小技巧及一些FAQ。
一些有用的设置
输出控制
settings.output
settings.output
是用来控制运行过程中输出文件的选项。OpenMC运行过程中会默认输出tallies.out
和summary.h5
。这两个内容,在不需要的时候,可以选择让OpenMC不输出他们。能够稍微减少文件I/O耗费的时间,稍微节省磁盘空间。
1 | settings.output = {'tallies':False, 'summary':False} |
settings.sourcepoint
settings.sourcepoint
是用来控制是否在statepoint.xx.h5
文件中保存一个batch的所有源粒子信息的选项。当一个batch的粒子数目很多时,保存这部分信息会导致statepoint文件非常大,而且要耗费一些时间。
可以通过下面的设置不保存源粒子的信息:
1 | settings.sourcepoint = {write':False} |
计算速度
settings.survival_biasing
settings.survival_biasing
是用来控制计算时是否使用隐式辐射俘获来提升计算速度的。推荐开启。
1 | settings.survival_biasing = True |
Tally
网格计算总中子通量的误差
OpenMC网格技术的能量区间划分和MCNP不一样,暂时没有默认的全能量区间计数及全能量区间误差计算。
我们在画图的时候,经常用到总中子通量的误差。由于同一个网格,不同能量区间的计数并不是相对独立的,而是相关的,我们无法通过直接将各个能量区间的方差相加的方式获得总通量的方差。
目前,可以单独设置另一个单一的包含所有能量区间的能群来计数总通量。
举个例子,我用175群计数中子通量的时候,第一个tally的EnergyFilter
用175群的能量边界(176个数)用来记录175群每个能群的通量;第二个tally用[0, ebin_175]
来计数总通量,这样通过第二个tally计数来获得总通量的误差。