MCNP 初学者入门指南
二○○九年五月
目 录
一 MCNP 概述
1.1 MCNP 计算过程
1.2 MCNP 文件结构
1.3 MCNP 使用方法
二 MCNP 输入文件书写方法
2.1 输入文件规范
2.2 7MeV 轫致辐射 X 射线算例
三 输出文件解读
第 1 章 MCNP 概述
1.1 MCNP 计算过程
MCNP(Monte Carlo N-Particle Transport code)是计算粒子输运过程的一套
蒙特卡罗模拟计算程序。这个程序需要用户通过输入文件给出计算模型。计算模
型中需要提供源的属性、感兴区内各种物体的属性、记录粒子信息的方法等。
例如,若想计算一个 1MeV 的 X 射线透过 2cm 铁的概率是多少,我们可以
通过下面的模型进行计算,如图 1 所示。
图 1 计算模型
在上面的计算模型中,感兴区是一个球的内部,其中包含 X 射线源、铁块
和记录面,而其他位置均为真空。由于当粒子被输运到感兴区外时,它将肯定不
会再对记录结果产生贡献,所以程序会自动停止这个粒子的输运过程,这也正是
设定感兴区的原因。
源的属性主要包括位置、能量、出射方向、粒子种类等。图 1 的计算模型中,
源的能量为单能 1MeV,方向为单向垂直于铁块的左表面,粒子种类为光子
(Photon)。
感兴区内物体的属性包括几何尺寸、材料成分、密度等。图 1 中使用了一块
铁块,它的厚度为 2cm,其他方向的尺寸对我们的计算结果没有影响,但要保证
铁块完整地包含于感兴区内。
记录方法有多种,其中包括通过某个面的特定种类粒子的个数。在图 1 中,
我们可以利用 MCNP 记录通过“记录面”的能量为 1MeV 的光子个数。
计算图 1 的模型时,MCNP 会首先根据源的属性描述,抽样出一个起始粒子。
图 1 中的源为单能且单向的点源,所以每次抽样出的粒子都是能量、方向、种类
相同的粒子。这个粒子会沿着它的出射方向(垂直于铁块左表面)飞行,当它入
射到铁块里时,会有一定的概率发生康普顿散射、电子对效应和光电效应。发生
三种反应的概率由 MCNP 的截面库中的微观截面数据、输入文件中铁的密度以
及抽样得到的随机数共同决定。若 X 射线发生了康普顿散射,原来的 X 射线将
被具有新属性的 X 射线取代,它将有不同的出射方向、能量。MCNP 会继续输
运这个新产生的 X 射线直到它发生下一次反应或者飞出感兴区;X 射线还会有
一定的概率不发生任何反应,直接透过铁块。
当基于一个起始粒子的输运过程结束后,MCNP 会重复上述的过程。由于每
次抽样的得到的随机数会不同,所以每个起始粒子的输运过程都是独立而且不同
的。多次的输运过程会使得 MCNP 的记录结果越来越接近它的期望值,重复的
次数越多,统计涨落就会越小。
尽管 MCNP 会记录所有通过记录面的光子。但由于光子一旦发生反应,它
的能量就会变化,所以若只观察能量为 1MeV 的光子,我们就可以排除那些经过
多次散射而打到记录面的光子了。
由于每次输运均是基于一个起始源粒子,所以最后记录得到的结果也都是相
对于一个起始粒子的概率。对于图 1 来说,记录结果就是 1 个 X 射线透过 2cm
的铁后打到记录面的概率。
1.2 MCNP 文件结构
MCNP 的输入文件名不可以多于七个字符,所以不建议对输入文件增加扩展
名;MCNP 的输出文件的扩展名为.o;MCNP 内部计算过程的记录文件的扩展名
为.r。若一次计算结果就已经达到满意的统计结果,那么.r 文件就没有什么价值
保存下来;但是若一次计算结果达不到满意的统计可信度,那么我们可以在已得
到的计算结果的基础上继续模拟输运过程,来减小统计涨落。而为了这么做,
MCNP 需要上一次计算结果中使用的.r 文件。为了这个目的,有时候.r 文件还是
值得保留的。在基于上一次的计算结果继续模拟计算时,MCNP 将不再读入输入
文件,而单单读入.r 文件的信息。所以我们想继续计算时,需要保证.r 文件就是
我们所设想的模型的前一次模拟计算中得到的.r 文件。除了上面三种常用的文件
类型,MCNP 还有两种不长用的输出文件。这两种文件只有用户通过输入文件要
求 MCNP 输出这些文件时才会得到。其中一个为.w 文件,这个文件是我们想通
过 MCNP 输出 surface source 的时候才会产生;另外一个为.p 文件,这个文件时
我们想通过 MCNP 追踪粒子的输运过程的时候才会得到。
上面的几种文件是用户常用到的文件类型,下面将介绍 MCNP 程序内部使
用的若干的文件。
1. MCNP5.exe:MCNP 的应用程序,这个程序是在 dos 下运行的程序。所
2.
以用户不要试图双击这个程序来运行它。
vised.exe:这个程序可以让用户观察 MCNP 读入的输入文件中的计算模
型。我们可以利用这个程序观察我们所设想的计算模型与实际书写出来
的计算模型是否有偏差。此外,这个程序还可以方便我们找出 MCNP
输入文件中潜在的一些错误,例如:两个物体有相交的部分等。
3. 目 录 Documents: 这 个 文 件 夹 内 包 含 LANL(Los Alamos National
3) gogo.bat:这个批出文件可以使 MCNP 连续的计算若干个输入文件,具
体的使用方法将在后面介绍。
4)
resume.bat:这个批处理文件可以使得 MCNP 在上一次计算结果的基础上
继续进行计算,具体使用方法将在下面介绍。
上面所提到的文件就是用户在使用 MCNP 时最频繁接触到的文件。
1.3 MCNP 使用方法
在使用 MCNP 时,我建议用户安装一个比较方便的文本编辑器,如:
Ultraedit。
Laboratory)提供的 MCNP 的官方使用说明、林谦老师的蒙卡课程讲义和
西安交通大学翻译的中文 MCNP 的使用手册等
4. 目录 MCNPData: 这个目录里存放的是 MCNP 的截面库。
5.
xs52: 这个文件内说明了各个核素的属性,包括质量,截面库内各种反
应类型对应的截面的存放位置等。在初始使用 MCNP 时,我们有可能要
修改这个文件中的一部分内容,具体的修改方法将在下面介绍。
6. X11.dll:MCNP 程序的动态链接库,没有这个文件 MCNP 将无法计算,
所以不要把这个文件弄丢了。
除了上面的文件外,为了在 dos 下使用 MCNP 程序我们编写了几个批处理
文件。
1) ccmd.bat: 只要双击这个程序就可以弹出一个 dos 界面。
2) g5.bat: 这个批处理将是用户用到最多的批处理程序。我们可以利用这个
批处理直接调用 MCNP 的主程序。
为了使用 MCNP,用户需要首先进行一些文件路径的指明等工作,具体如下:
1) 建议用户把 MCNP 的整个目录(名为 LANL)放在一个硬盘分区的根目录
下。
2) 修改 g5.bat 中 文件路径:我们用 Ultraedit 打开 g5.bat 可以发现,这个
批处理的内容为
del %1.o
del %1.r
del %1.p
del %1.s
del %1.w
mcnp5 n=%1. xsdir=xs52
前 5 句的作用是删除与输入文件相关的已经存在的输出文件,这样做的目的
是,如果 MCNP 程序发现已有输入文件对应的输出文件存在,那么程序就认为
这个输入文件已经得到了模拟计算并且没有必要进行重复的计算。
批处理中的最后一句就是调用 MCNP 的主程序——MCNP5.exe,并指明管
理截面库的文件(xs52)的路径。由于我已经把这个文件放在了 LANL 的目录内,
所以用户不用修改这个文件的路径了。
3) 修改 xs52 文件:利用 Ultraedit 打开 xs52 文件,可以发现文件的第一行
为 datapath=e:\LANL\MCNPDATA\。为了让 MCNP 找到截面库,用户需要正确
地修改它的路径。因为我把 LANL 放在了 E 盘的根目录下,所以这里的 datapath
就是 e:\LANL\MCNPDATA\。之前,我已经建议用户把 LANL 目录放在某个硬盘
分区的根目录下,所以在这里修改时,用户只需把 e 更换为实际存放的硬盘分区
的盘符就可以了。
经过上面的修改后,用户就可以使用 MCNP 程序了。例如我们已经书写好
了一个文件名为 Xray7 的输入文件,
A,那么我们可以通过下面的步骤进行计算。
1) 双击 ccmd.bat,系统会弹出下面的窗口。
2) 在窗口内输入 g5Xray7 并按回车,MCNP 就开始进行计算了。界面如下
图所示。
计算时 MCNP 会占据单个 CPU 的所有资源。若用户的计算机是单核的,那么
CPU 使用量是 100%;若用户的计算机是双核的,那么 CPU 的使用量是 50%。
B, 关于停止一次计算,可以通过在输入文件内限定计算时间或输运的起始
粒子个数。此外,还可以通过 dos 下强制停止计算过程的方法。若想强制停止计
算过程,可以使用 Ctrl+C 键停止计算。同时按下这两键时,屏幕会出现下面的
界面。
在这个界面下,输入 s 并按回车,程序会输出已经消耗的计算时间;按下 m
是调用 MCNP 的画图软件,因为有了 vised.exe 程序,所以不建议使用这里的画
图程序;按下 q 是停止计算程序,并输出结算结果。有时候,MCNP 会等待正在
模拟的一个粒子的输运过程结束后在结束程序,但并不会拖延太长时间;按下 k
是直接停止计算程序,而并不会输出计算结果。
C, 继续计算一个已计算完的模型。用户需要保留初始计算过程中产生的.r
文件。还以上面的计算情况为例,在上一次计算中我们得到了 Xray7.o(输出文
件)和 Xray7.r(计算过程的记录文件)。在 dos 命令行下输入 resumeXray7 并按
下回车,可以得到下面的界面。