MCNP是什么?关于MCNP的详细介绍

创闻科学2020-11-16 15:51:21

MCNP程序(蒙特卡洛多粒子输运程序)全名为Monte Carlo N-particle Transport Code。随着电子计算机的诞生,为了原子能事业的发展,20世纪40年代美国科学家提出了用蒙特卡洛方法求解粒子输运问题的理论。1963年,美国的Los Alamos国家实验室的蒙特卡罗小组在一系列程序工作基础上,集中编制了一个具有目前最高水平的大型通用中子—光子一电子输运程序。MCNP通用软件包由Fortran语言编写,其版权属于Los Alamos国家实验室的放射性安全信息计算中心(RSICC),在编写过程中也得到了橡树岭国家实验室等很多私人和政府组织的帮助。经过多年的发展,MCNP与其他程序相比,在功能方面、技巧方面、几何能力和取用数据方面有很大提高,被称为“超级蒙特卡罗程序”。

基本原理——蒙特卡洛方法

蒙特卡罗方法是以概率统计理论为基础, 利用数学方法来加以模拟, 而进行的一种数字模拟实验。其基本思想是: 当所要求解的问题是某个随机事件出现的概率, 或者是某个随机变量的期望值时, 或者是与概率或数学期望有关的量时, 可以通过大量随机实验的方法, 得到事件出现的概率或随机变量若干个具体观察的算术平均, 并以此作为问题的近似解; 另外蒙特卡罗方法也可用于求解本来不是随机性质的确定性问题 (比如计算定积分),这样就必须事先构造一个人为的概率过程, 在其上引入某个随机变量, 使它的数学期望正好是所求问题的解。

它可以求解概率问题,也可求解非概率问题,特别适用于其本身就具有随机性的粒子输运问题的计算。由于蒙特卡罗方法能够逼真地描述事物的特点及物理实验过程,解决一些数值方法难于或根本无法解决的问题,因此随着计算机技术的飞速发展,蒙特卡罗方法已在实验物理、固体物理、原子能技术、宇航与导弹技术及运筹规划、高维数学、多元统计分析等领域 中得到广泛的应用。

解决粒子输运问题是蒙特卡罗方法应用的一个重要方面。 粒子在介质中的运动规律, 具有随机性质, 其运动过程是一种马尔可夫过程。 所以, 只要粒子与核碰撞的规律在物理上清楚, 那么粒子运动的马尔可夫过程, 完全能够用蒙特卡罗方法正确地模拟, 并从而得到所要的解。蒙特卡罗方法求解粒子输运问题受问题条件的限制小, 因而它广泛地用于求解各种复杂几何条件以及截面复杂变化的问题中。 在粒子输运问题中, 蒙特卡罗方法要求建立单个粒子在给定几何结构中的真实运动历史, 通过对大量粒子历史的跟踪, 得到大量随机实验值(抽样值) , 然后用统计方法做出随机变数某个数值特征的估计量, 即问题的解(如通量密度、剂量率或进入探测器的粒子数等)。这里一个粒子的历史, 指的是该粒子从源出生, 在输运介质中经受各种散射相互作用, 随机游动直到“死亡”,即历史终止(可能的情况是:粒子被吸收、泄漏或能量、权、时间的截断等)。

在计算机上用蒙特卡罗方法解粒子输运问题的程序一般可分为: 源抽样,空间输运,碰撞,记录和结果处理及输出,还有一个公共的产生随机数程序及主控程序。程序框图如下:

基本内容

MCNP是一种通用的蒙特卡洛粒子输运程序,可用于中子、光子、电子或耦合中子/光子/电子输运模拟。具体应用领域包括但不限于辐射防护和剂量测定、辐射屏蔽、射线照相、医学物理、核临界安全、探测器设计和分析、核测井、加速器设计、裂变和聚变反应堆设计、核设施的去污和退役。该程序处理由一次和二次曲面和四次椭圆环面围成的几何单元组成,单元中的材料成分可任意配置。

通常使用点式横截面数据,但也可以使用组式数据。对于中子,在特定截面评估中给出的所有反应(如ENDF/B-VI)都要考虑在内。热中子由自由气体和S(α,β)模型描述。对于光子,该编码解释了非相干和相干散射、光电吸收后荧光发射、正负电子对湮灭产生的成对光子发射及韧致辐射。连续慢化模型用于电子输运,包括正电子、X射线和韧致辐射,但不包括外部或自感生场。

MCNP非常通用且易于使用的重要标准特性包括强大的通用源、临界源和表面源;几何和输出计数绘图仪;丰富的方差设置;灵活的计数结构;以及广泛的横截面数据集合。

MCNP包含许多灵活的计数:表面电流和通量、体积通量(轨道长度)、点或环探测器、粒子加热、裂变加热、能量或电荷沉积的脉冲高度、网格计数和射线照相计数。

历程与版本

MCNP程序是由美国LosAlamos国家实验室研制开发的,为其所投入的研究、发展、程序编写及参数制作超过了500人/年。20世纪40年代美国科学家提出了用蒙特卡洛方法求解粒子输运问题的理论。1963年,美国的Los Alamos国家实验室的蒙特卡罗小组在一系列程序工作基础上,集中编制了一个具有目前最高水平的大型通用中子—光子一电子输运程序。自70年代开始,MCNP的版本每2—3年更新一次,版本不断发展,功能不断增加,适应面也越来越广。已知的MCNP程序研制版本的更新时间表如下:

MCNP-3:1983年写成,为标准的FORTRAN77版本,截面采用ENDF/B2III。

MCNP-3A:1986年写成,加进了多种标准源,截面采用ENDF/B2IV。

MCNP-3B:1988年写成,具有阵列几何处理能力(即重复结构描述),多群截面和计数输出的图形化功能,截面采用ENDF/B2IV和ENDL2851。

MCNP-4:1990年7月由LANL写成,截面采用ENDF/B2V。

MCNP-4.2:1991年3月由ORNL的RSIC写成,程序有较大改进,增加了基于Sandia国家实验室的ITS连续能量电子输运包,将其编入MCNP程序,专用于UNIX系统,从此MCNP程序成为中子/光子/电子耦合输运程序。

MCNP-4A:1993年诞生,仍为UNIX系统,开始引入PVM并行,适合共享存储并行计算机,截面为ENDF/B2V。

MCNP-4B:1997年3月正式推出,有PC版(需要LAHEY编译系统支持),UNIX版,采用ENDF/B2VI截面库和彩色图形系统,仍采用PVM并行编程。

MCNP-4B2:为MCNP24B的升级版,其支持FORTRAN90系统。

MCNP24C:2000正式推出,在MCNP24B基础上增加共振自屏、瞬发α本征值、微扰和多群伴随中子输运计算等处理,采用F90编译器,工作站版本支持PVM和SMPP并行。

MCNP-5:2003年推出。在这个版本中,完成了从FORTRAN277到FORTRAN290的重新组织,支持以前MCNP-4C2/4C3的全部功能,同时在提高图形显示,易安装性以及更好的在线文档方面有较大改善。

另外,在MCNP系列版本中,出现了MCNPX版本,该版本程序仍为该实验室研制,并由其负责维护和更新。MCNPX开始于1994年,作为MCNP-4B和LAHET22.8的代码整合项目,并第1次在1999年对外发布,版本为2.1.5。2002年,MCNPX升级为MCNP-4C,其变化包括支持FORTRAN90系统,加强了12种新特性,并作为2.4.0版本对外发布。自从2002年开始,MCNPX测试组向全球300个机构中的1400多名用户进行公开测试,在加入了数10个新特性后作为2.5.0版对外发布。MCNPX现在已经成为世界上使用最为广泛的粒子输运程序之一。

目前最新的MCNP版本已经发展到MCNP6。

使用实例

要用 MCNP 程序来处理问题,需要按照 MCNP 规定的格式编写一个输入文件,在这个文件中要根据要解决的问题给出发射粒子(即源的形状、位置,粒子的种类、能谱)、穿过的介质(包括化学成分、密度、几何形状)、要探测的计数(探测位置、能量区间)的信息,然后提交给 MCNP 程序进行处理即可得到结果,然后根据自己的需要从输出文件中撮自己感兴趣的信息。

下面是一个 MCNP 输入文件。

上图给出了我们要进行模拟的实验装置图,从“点中子源”发出的具有一定能谱的“中子”,在穿过“水介质”之后其能谱和运动方向都会发生一定的改变,通过放置在“水介质”背面的“探测器”可以得到“探测器”位置上的“中子”的能谱。

在输入文件中要告诉 MCNP 的一些信息:

1、源的位置,源发出粒子的类型及能谱,是通过 sdef,mode 来定义的。

2、实验装置中物体的几何结构和物质种类及密度。在 MCNP 中每一个物体由一个称为Cell 的结构来表示,每个 Cell 定义为由若干 Surface 共同包围的区域,同时为它指定一种材料(由 m1,m2 等等指定的材料)及密度数值。

3、指定每一物体即 Cell 对粒子的反应特性。这通过 imp 来指定,我们一般指定某一Cell 的 imp 为 1 表示该 Cell 代表的物体会和粒子发生反应,指定某一 Cell 的 imp为 0 表示该 Cell 代表的物体对这种粒子是“完全透明”的,粒子在穿过该物体的时候会像穿过真空一样,并不和该物体中的原子发生反应。

4、指定要采集数据的位置及能区,这通过 f 及 e 来指定。

5、指定结束计算的条件。我们一般通过 nps 指定在源发射出 N 个粒子后结束计算。