MCNP使用教程.docx
《MCNP使用教程.docx》由会员分享,可在线阅读,更多相关《MCNP使用教程.docx(10页珍藏版)》请在冰豆网上搜索。
MCNP使用教程
第1章MCNP概述
1.1MCNP计算过程
MCNP(MonteCarloN—ParticleTransportcode)是计算粒子输运过程的一套蒙特卡罗模拟计算程序。
这个程序需要用户通过输入文件给出计算模型。
计算模型中需要提供源的属性、感兴区内各种物体的属性、记录粒子信息的方法等。
例如,若想计算一个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.2MCNP文件结构
MCNP的输入文件名不可以多于七个字符,所以不建议对输入文件增加扩展名;MCNP的输出文件的扩展名为。
o;MCNP内部计算过程的记录文件的扩展名为。
r。
若一次计算结果就已经达到满意的统计结果,那么.r文件就没有什么价值保存下来;但是若一次计算结果达不到满意的统计可信度,那么我们可以在已得到的计算结果的基础上继续模拟输运过程,来减小统计涨落.而为了这么做,MCNP需要上一次计算结果中使用的。
r文件.为了这个目的,有时候。
r文件还是值得保留的。
在基于上一次的计算结果继续模拟计算时,MCNP将不再读入输入文件,而单单读入.r文件的信息.所以我们想继续计算时,需要保证.r文件就是我们所设想的模型的前一次模拟计算中得到的。
r文件。
除了上面三种常用的文件类型,MCNP还有两种不长用的输出文件。
这两种文件只有用户通过输入文件要求MCNP输出这些文件时才会得到。
其中一个为.w文件,这个文件是我们想通过MCNP输出surfacesource的时候才会产生;另外一个为.p文件,这个文件时我们想通过MCNP追踪粒子的输运过程的时候才会得到。
上面的几种文件是用户常用到的文件类型,下面将介绍MCNP程序内部使用的若干的文件。
1。
MCNP5.exe:
MCNP的应用程序,这个程序是在dos下运行的程序.所
以用户不要试图双击这个程序来运行它。
2.vised。
exe:
这个程序可以让用户观察MCNP读入的输入文件中的计算模
型。
我们可以利用这个程序观察我们所设想的计算模型与实际书写出来的计算模型是否有偏差。
此外,这个程序还可以方便我们找出MCNP输入文件中潜在的一些错误,例如:
两个物体有相交的部分等。
3。
目录Documents:
这个文件夹内包含LANL(LosAlamosNational
Laboratory)提供的MCNP的官方使用说明、林谦老师的蒙卡课程讲义和西安交通大学翻译的中文MCNP的使用手册等
4.目录MCNPData:
这个目录里存放的是MCNP的截面库。
5.xs52:
这个文件内说明了各个核素的属性,包括质量,截面库内各种反
应类型对应的截面的存放位置等.在初始使用MCNP时,我们有可能要修改这个文件中的一部分内容,具体的修改方法将在下面介绍.
6.X11.dll:
MCNP程序的动态链接库,没有这个文件MCNP将无法计算,
所以不要把这个文件弄丢了.
除了上面的文件外,为了在dos下使用MCNP程序我们编写了几个批处理文件。
1)ccmd。
bat:
只要双击这个程序就可以弹出一个dos界面。
2)g5.bat:
这个批处理将是用户用到最多的批处理程序。
我们可以利用这个批处理直接调用MCNP的主程序。
3)gogo.bat:
这个批出文件可以使MCNP连续的计算若干个输入文件,具体的使用方法将在后面介绍。
4)resume.bat:
这个批处理文件可以使得MCNP在上一次计算结果的基础上继续进行计算,具体使用方法将在下面介绍.
上面所提到的文件就是用户在使用MCNP时最频繁接触到的文件。
1。
3MCNP使用方法
在使用MCNP时,我建议用户安装一个比较方便的文本编辑器,如:
Ultraedit。
为了使用MCNP,用户需要首先进行一些文件路径的指明等工作,具体如下:
1)建议用户把MCNP的整个目录(名为LANL)放在一个硬盘分区的根目录下。
2)修改g5。
bat中文件路径:
我们用Ultraedit打开g5.bat可以发现,这个批处理的内容为
前5句的作用是删除与输入文件相关的已经存在的输出文件,这样做的目的是,如果MCNP程序发现已有输入文件对应的输出文件存在,那么程序就认为这个输入文件已经得到了模拟计算并且没有必要进行重复的计算.
批处理中的最后一句就是调用MCNP的主程序-—MCNP5。
exe,并指明管理截面库的文件(xs52)的路径。
由于我已经把这个文件放在了LANL的目录内,所以用户不用修改这个文件的路径了。
3)修改xs52文件:
利用Ultraedit打开xs52文件,可以发现文件的第一行为datapath=e:
\LANL\MCNPDATA\.为了让MCNP找到截面库,用户需要正确地修改它的路径.因为我把LANL放在了E盘的根目录下,所以这里的datapath
分区的根目录下,所以在这里修改时,用户只需把e更;经过上面的修改后,用户就可以使用MCNP程序了;A,那么我们可以通过下面的步骤进行计算;1)双击ccmd.bat,系统会弹出下面的窗口;2)在窗口内输入g5?
Xray7并按回车,MCN;计算时MCNP会占据单个CPU的所有资源;B,关于停止一次计算,可以通过在输入文件内限定计;在这个界面下,输入s并按回车,程
分区的根目录下,所以在这里修改时,用户只需把e更换为实际存放的硬盘分区的盘符就可以了。
经过上面的修改后,用户就可以使用MCNP程序了.例如我们已经书写好了一个文件名为Xray7的输入文件,
A,那么我们可以通过下面的步骤进行计算。
1)双击ccmd.bat,系统会弹出下面的窗口.
2)在窗口内输入g5?
Xray7并按回车,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命令行下输入resume?
Xray7并按下回车,可以得到下面的界面。
在继续运算的情况,由于MCNP不会再次读入输入文件,而仅仅读入.r文件,所以这次计算的终止需要我们通过强制停止的方法。
D,连续计算多个软件
这里只给出了计算一个文件的命令,若我们想连续地计算多个文件(如D1,D2然后在dos命令行下,键入gogo并按下回车,MCNP就可以依次计算D1,D2和D3了.
第2章MCNP输入文件书写方法
2.1MCNP输入文件规范
MCNP的输入文件在结构上基本上可以分为三块,分别为cell块、surface块和其他内容。
块内除了注释外,不得有空行,而两个块之间只能有一个空行。
通常情况下,每一行中只能有一个主导性的助记符,这个助记符可以有很多参数和附属的次要助记符.MCNP官方手册中称这样的助记符为卡(card).每一列不得超过80个字符,若书写不下时,可以在行尾写入&符号,并从下行继续书写。
输入文件的第一行不论写了什么都会被MCNP忽略掉,这一行的作用是方便用户给这个输入文件做一些备注.第二行后写计算模型,我的习惯是先写cell块,然后是surface块,最后是其他。
输入文件中有两种注释方法,助记符分别为c和$符号。
在第一行写c就是把这一行都注释掉;在某一行的某列上写$就是注释该行该列后的内容。
但是即使是注释,请用户也不要超过每一列80个字符(包括空格)的要求。
还有三个常用的助记符在这里介绍个用户,分别为r,i和j。
r代表的是repeat,例如13r就等于写了1111;i代表线性插入点,例如12i4就等于写了1234;j代表的是jump,表示该位置使用默认值,例如1j2就等于写了1默认值2.
由于MCNP对输入文件的规范要求苛刻,所以请用户谨记这样的规范.
2。
17MeV轫致辐射X射线算例
下面将通过书写计算7MeV的轫致辐射X射线的角分布、能谱的方法介绍MCNP输入文件的书写方法.
在书写MCNP输入文件前,请用户首先想好要计算的模型,包括坐标系以及各个物体在这个坐标系内的相对位置.我的计算模型如下图所示.
图2计算模型;在图2的计算模型中感兴区是半径为100cm的球内;为了书写上面的计算模型,我们首先写surface;1,源所在面的书写方法:
1PX—2;直于X轴的面;-2代表的是该面在X轴上的轴距;2,同理Au的左底面的书写方法:
2PX0;3,同理Au的右底面的书写方法:
3PX1;4,Au的侧面的书写方法:
4CX1;到类似地,还会有CY和CZ的助记符);5,圈
图2计算模型
在图2的计算模型中感兴区是半径为100cm的球内,源是能量为7MeV,位置在(—2,0,0)的单向电子束;X射线靶是半径(Y或者Z方向)1cm,高度(X方向)1cm的金;其他位置均为真空.我将记录面设置在圈定感兴区的球面上。
为了书写上面的计算模型,我们首先写surface模块.这里需要定义的surface有源所在面;Au的三个表面(两个底面和一个侧面),圈定感兴区的球面;划分感兴区表面的记录用面。
1,源所在面的书写方法:
1PX-2。
这里的第一个1代表这个面的序号,这个序号将在书写cell块时用到;px为助记符表示该面是垂
直于X轴的面;-2代表的是该面在X轴上的轴距。
2,同理Au的左底面的书写方法:
2PX0.
3,同理Au的右底面的书写方法:
3PX1。
(可以猜到类似地,还会有PY和PZ的助记符)。
4,Au的侧面的书写方法:
4CX1。
这里的4代表面的序号,cx代表这个面是轴心是X轴的圆柱面,后面的1代表圆柱面的半径。
(可以猜
到类似地,还会有CY和CZ的助记符)。
5,圈定的感兴区的面的书写方法:
100SO100。
第一个100仍然代表面的序号。
定义面的需要时,并不需要连续地定义,但要保证定义的
顺序是单调递增的。
第二个so代表的是圆心在原点的球面,之后的
100就是圆的半径。
6,除了这些面,为了记录时把记录面分割为若干个小面,我们需要额外定义一些分割用面。
为了把记录面(球面)分割为若干个球带,我们
可以定义若干个圆锥体,如30kx00。
2345679011,其中30代表这
个面的序号;kx代表这个面是轴心是X轴的圆锥面;0代表圆锥的
顶点在原点;0。
234567901代表圆锥体顶角的tan值的平方值;我们
可以想象,这样定义的圆锥体应有两叶,在Z〈0的一叶和Z〉0的一
叶。
所以最后的1代表的是,我们想要的圆锥面是Z>0的一叶。
我
们可以类似地定义很多这样的分割面.
有了这些surface的定义后,我们就可以开始书写cell块了。
1)首先定义Au块(cell),它由三个面围成,它们是序号分别为2,3,4.Au块由2号面的向右方向(或X轴的正方向),3号面的向左方向(或X轴的负方向)以及4号面的内部围成。
所以这个Au块(cell)的书写方法是:
11-19。
32—3-4。
第一个1代表的是这个cell的序号;第二个1代表的是这个cell所对应的材料种类为1,关于1号材料的定义将在后面介绍;第三个-19。
3中,负号代表的是实际密度,若没有负号则代表的是原子密度。
所以-19。
3代表的是Au块(cell)的密度是19。
3g/cm3;之后的2—3-4描述的是Au块是由2号面的正方向,3号面的负方向,4号面的内部围成的。
2)源不是一个物体,所以不需要在cell块中定义。
而在感兴趣内,除了Au块(cell),其他位置均为真空。
尽管是真空,我们仍需要在输入文件内把真空定义为一个物体。
定义的方法如下:
20-100#1。
其中第一个2代表cell的序号;第二个0代表定义的块内什么东西都没有;后面的-100#1限定了这个cell的几何空间,它表示这个块是在100号面的内部,(#助记符代表扣除的意思)除了1号cell的所有空间。
3)我们同样需要定义感兴区外的空间,定义的方法如下:
1000100.第一个100是这个cell的序号;第二个0代表真空;第三个100代表第100号面的外部。
2号cell和100号cell均为真空,区分哪一个是感兴区的方法是利用另外一个助记符imp,它代表的是importance,也就是粒子在该cell内的重要性。
这个助记符可以在每个cell的定义的末端写上,也可以在第三块中写入。
在cell末端写入的方法如:
20-100#1imp:
e,p=1,它代表了2号cell中电子(e)及光子(p)的重要性为1,即它是感兴区内的物体;1000100imp:
e,p=0,它代表了100号cell的电子及光子的重要性为0,即它在感兴区外.
注:
感兴区与非感兴区并不需要一定是位置划分分明的两块区域,我们可以在感兴区内设定一个非感兴区,只要粒子被输运到该区域就会被杀死(类似于黑洞)。
最后我们需要书写第三个模块,在这个模块内将指明模拟计算中所涉及的反应类型,记录方法,运算时间限定等。
1.模式卡:
modeep.这个卡说明了计算中将涉及两种粒子,分别为电子
及光子。
(源粒子是电子,它轰击Au块会产生轫致辐射X射线)。
2.材料卡:
m179197—1.0.其中m1代表第一号材料,同理会有m2、m3
等材料;79197的格式是ZZAAA,即79是原子序数(Au),197是质量数;-1。
0中负号代表的是原子个数的比重,若正好则代表的是质量比重。
材料卡的各种核素的比重的标识中并不要求归一化,MCNP会自动给用户归一化。
也就是说m179197-2.079198-2。
0与m179197—0.579198—0.5的写法对于MCNP而言是等效的,都说明1号材料中197Au与198Au各占一半.
3.源定义:
sdefpar=3sur=1pos=—200vec=100dir=1erg=7.其中sdef是
源定义的助记符代表sourcedefinition;par代表源粒子的种类,1代表中子,2代表光子,3代表电子;sur代表源所在的面,上面定义中sur=1说明源在序号为1的面上;pos代表源所在的位置,按照上面的定义,源的位置为(-2,0,0)。
请谨记若sur和pos同时被用上,请保证pos的点是在sur的面上,不然可能导致计算结果有误;vec代表参考向量,向量的起始点是原点,而终止点是(1,0,0)。
这说明了我们设定的参考向量就是X轴的正方向;dir代表粒子出射方向与参考向量的夹角的余弦,上面定义中为1,说明了源粒子沿着X轴正方向出射;erg代表源粒子的能量,按照上面的定义,源粒子的能量为7MeV。
关于源的定义还有许多其他的助记符以及各种分布情况,请参考MCNP的官方使用手册。
4。
粒子重要性表示:
imp:
e110.其中imp:
e代表了这张卡描述的是各个
cell中电子的重要性,110代表了在cell块中写的各个cell(以书写顺序)的重要性分别为1、1、0。
这说明了cell块中第三个描述的cell(cell的序号可能不是三,只是代表它是第三个被定义的cell.)是电子的黑洞,只要电子被输运到这个cell就会被杀死,停止输运。
同理我们还可以定义imp:
p110。
在前面已经描述过,这里的imp卡可以在cell块中写入如:
5。
能量截断卡:
cut:
ej1.其中cut代表能量截断卡的助记符;e代表电子;
j代表第一个参数选用默认值;1代表截断能量为1MeV。
这个卡的作用是当输运过程中,电子的能量小于1MeV,就杀死这个电子。
这样做的目的是,若我们只关心高能(〉1MeV)的X射线,而能量小于1MeV的电子已经不会再产生能量大于1MeV的X射线了,所以我们可以停止这些低能电子输运来节省计算机机时而且不会影响计算结果。
同理我们还可以写cut:
pj1。
6.记录方法描述卡1:
F1:
p100。
其中F1代表的是第一种记录模式,也就
是通过某个面的粒子的个数(相对于一个源粒子);p代表记录的是光子;100代表记录面是序号为100的面。
故这个记录卡的作用是记录所有通过100号面的光子。
7。
记录方法描述2:
F2:
p100。
其中F2代表的是第二种记录模式,也就是
通过某个面的粒子的注量,它等于通过面的粒子个数(相对于一个源粒子)除以该面的面积.
8。
记录面分割:
Fs2-30—31—32-33-34—35—36-37-38—394041424344。
其中Fs2代表的是分割第二号记录卡的记录面(也就是分割记录第100号面);后面的—30等代表分割方法,输出时MCNP会给出
1)100号面上,从30号面的内部(圆锥体右叶的内部)出射的粒子
2)100号面上,从30号面的外部且40号面的内部出射的粒子
3)100号面上,从30号面的外部且31号面的外部且32号面的内部出射的粒子
4)100号面上,从30号面的外部且31号面的外部且32号面的外部且33号面的内部出射的粒子。
5)以此类推
9。
能量分割:
我们可以对任意一个记录卡分别设置能量分割卡或所有记录
卡同意设置相同的能量分割卡。
这里我们将对2号记录卡设置一个能量分割卡:
E2119i7.其中E2代表这是对2号记录卡的能量分割卡,后面的119i7代表的是分割方法,也就是在1MeV至7MeV之间插入19个点。
(若把E2写成E0则代表对所有记录卡使用相同的能量分割方法.)
10。
计算时间设定卡:
ctme10。
这个卡说明了要求MCNP计算10分钟。
可
以想象,计算的时间越长,模拟的源粒子的个数就会越多,模拟结果就会越接近它的期望值,统计涨落就会越小。
所以计算时间需要用户根据自己希望得到的统计可信度,设定计算时间。
除了ctme还有利用模拟源粒子的个数进行时间限制的方法,如NPS10000,它说明了需要MCNP模拟10000个源粒子的输运过程.
在这个文件中只使用了两个记录方法,分别为F1和F2。
MCNP中一共有8中记录方法,用户请参考使用手册,选用适合计算模型的记录卡.此外一种记录卡可以有多个记录面,只要保证记录卡的个位数是8种记录卡的一种,例如F11和F21都是第一种记录类型,即通过某个记录面的粒子个数.另外请谨记,在使用F1和F2的记录卡时,记录面一定要是构成某个cell的一个面,不然MCNP不会给出记录结果,也就是说如果用户随意定义了一个面(如上面定义的某个分割面),而且这个面没有被使用在定义某个cell上,那么我们不能期望MCNP可以记录通过这个面的粒子信息。
使用分割面时,其实还是记录通过那个记录面的粒子个数,分割面只是把那个记录面分割为若个块而已.
总结上面的书写过程,我们最后的输入文件如下。
文件名为Xray7。
我们可以利用vised.exe观察这个已经写好的;误,我们需要修改输入文件;关闭;若打开后,观察到明确的红线,代表两个物体分享了一;中是不允许的;与我们想像的模型是一致的;入文件的正确性,不然计算出来的结果就很有可能是错;Vised。
exe是windows下的应用程序,;好的输入文件,就可以观察写好的模型了,如下图所示;图3宏观形状;图4Au块的形状;利用前
我们可以利用vised。
exe观察这个已经写好的输入文件的模型,如果书写有
误,我们需要修改输入文件。
有错误时会导致vised.exe无法打开文件并被强制
关闭。
出现这种情况时,请看输入文件的书写规范,如空行是否多了或少了等.
若打开后,观察到明确的红线,代表两个物体分享了一部分空间,这在MCNP
中是不允许的.在书写复杂的模型时,vised。
exe可以帮助我们确定写出来的模型
与我们想像的模型是一致的。
建议用户反复地观察各个方向的视图,从而确保输
入文件的正确性,不然计算出来的结果就很有可能是错误.
Vised。
exe是windows下的应用程序,我们双击它并用它选中我们已经书写
好的输入文件,就可以观察写好的模型了,如下图所示.
图3宏观形状
图4Au块的形状
利用前面介绍的调用MCNP的方法就可以计算这个模型了。
下一章帮助各
位解读输出文件的内容。
第3章MCNP输出文件解读
利用MCNP计算上面的输入文件可以得到输出文件为Xray7.o.利用
Ultraedit可以看到计算结果,其中关于记录信息的结果对我们最有用,如下。
其中nps代表一共运行了2958959个源粒子的输运过程.
Tallytype1代表记录类型为1,也就是numberofparticlescrossingasurface.
Tallyforphotons代表的是记录的是光子。
Surface100代表记录面是第100号面。
记录结果是2