第八章蒙特卡罗方法应用程序介绍1.蒙特卡罗方法应用软件的特点2.常用的通用蒙特卡罗程序简介3.MCNP程序输入的描述4.例子第八章蒙特卡罗方法应用程序介绍建立完善的通用蒙特卡罗程序可以避免大量的重复性工作,并且可以在程序的基础上,开展对于蒙特卡罗方法技巧的研究以及对于计算结果的改进和修正的研究,而这些研究成果反过来又可以进一步完善蒙特卡罗程序。1.蒙特卡罗方法应用软件的特点通用蒙特卡罗程序通常具有以下特点:1)具有灵活的几何处理能力2)参数通用化,使用方便3)元素和介质材料数据齐全4)能量范围广,功能强,输出量灵活全面5)含有简单可靠又能普遍适用的抽样技巧6)具有较强的绘图功能2.常用的通用蒙特卡罗程序简介1)MORSE程序较早开发的通用蒙特卡罗程序,可以解决中子、光子、中子-光子的联合输运问题。采用组合几何结构,使用群截面数据,程序中包括了几种重要抽样技巧,如俄国轮盘赌和分裂技巧,指数变换技巧,统计估计技巧和能量偏移抽样等。程序提供用户程序,用户可根据需要编写源分布以及记录程序。2)EGS程序EGS是Electron-GammaShower的缩写,它是一个用蒙特卡罗方法模拟在任意几何中,能量从几个KeV到几个TeV的电子-光子簇射过程的通用程序包。由美国StanfordLinearAcceleratorCenter提供。EGS于1979年第一次公开发表,提供使用。EGS4是1986年发表的EGS程序的最新版本。3)MCNP程序MCNP是美国LosAlamos国家实验室开发的大型多功能通用蒙特卡罗程序,可以计算中子、光子和电子的联合输运问题以及临界问题,中子能量范围从10-11MeV至20MeV,光子和电子的能量范围从1KeV至1000MeV。程序采用独特的曲面组合几何结构,使用点截面数据,程序通用性较强,与其它程序相比,MCNP程序中的减方差技巧是比较多而全的。3.MCNP程序输入的描述MCNP的输入包括几个文件,但主要的一个是由用户编写的INP文件,该文件包括描述问题所必须的全部输入信息。文件采用卡片结构,每行代表一张卡片,文件由一系列卡片组成,对于任一特定的问题,只需用到INP全部输入卡片的一小部分。MCNP输入文件中物理量的单位长度厘米能量MeV时间10-8秒温度MeV(kT)原子密度1024个原子/厘米3质量密度克/厘米3截面10-24厘米2原子量中子质量的1.008664967倍阿伏加德罗常数6.023×10231)输入文件的基本形式(1)信息块信息块的卡片放在INP文件中标题卡之前。信息块给出了MCNP的一些运行信息,信息块上各部分的意思和运行行信息是一样的,当运行行信息与信息块中所指定的信息相矛盾时,则忽略信息块中相应的信息,而以运行行信息为准。信息块是可选的,信息块的第一张卡片,必须在第1~8列写上“MESSAGE:”,从第一张卡片的第9~80列到后续卡片的第1~80列都可填写运行信息。在标题卡之前用一个空行分隔符结束信息块。(2)初始运行的输入文件信息块空行分隔符选择项标题卡仅一行,占用第1~80列。作为输出标题。栅元卡…空行分隔符定义构成整个系统的各个基本介质单元以及相应的物理信息。曲面卡…空行分隔符定义组成栅元的曲面信息。数据卡…空行分隔符其它数据,包括问题类型、源描述、材料描述、计数描述,问题截断条件等。其它选择项(3)接续运行的输入文件接续运行必须在运行行信息或信息块中给出C项选择,即Cm,表示从RUNTPE文件中读出第m次转储的内容接着运算,如果m未指定,则读最后一次转储的数据。如果不需要改变内容,则不需要接续输入文件,仅需运行RUNTPE以及在运行行加上C选择。信息块空行分隔符选择项CONTINUE写在第1~8列数据卡…空行分隔符只允许部分数据卡。(FQ,DD,NPS,CTME,IDUM,RDUM,PRDMP,LOST,DBCN,PRINT,KCODE,MPLOT,ZA,ZB,和ZC)其它选择项(4)卡片格式INP输入文件的每一行(称之为一张卡片)都限于使用第1~80列并构成卡片映象。大部分输入卡片按行填写;然而,对数据卡允许按列填写。$符号为它所在那行数据的结束符,在$符号后面的内容作为注释,它可从$符号后面的任一列开始。标题卡只占一行,整行都可填入用户需要的信息,也可以是空行。但要注意在其它地方使用空行是作为结束符或者分隔符。输入文件中,在标题卡之后及最后的空行结束卡之前的任何地方都可插入注释卡。注释卡必须是字母“C”写在1~5列中的任意位置,且至少用一个空格隔开后面的注释内容。a)行输入格式栅元卡、曲面卡和数据卡的书写格式是相同的。必须从1~5列开始填写这些卡片相应的名字(或编号)和粒子标识符,后面填写用空格分隔的数据项。如果1~5列为空,则表示它是前一张卡片的继续卡。如果在一行的末尾有一个用空格隔开的符号“&”,则表示下一行是该行的继续卡,数据可填写在1~80列。一个数据项必须在一张卡片上写完,不得跨到下一张卡片上。完全空白的一行则为两组卡片的分隔符。对任何给定的带有粒子标识符的类型卡只能有一张。需要整数的数据项必须填写整数,其它数据可填写为整数或浮点数以及MCNP能读的数据。为书写方便,可以使用四项书写功能:i.nR功能,表示将它前面的数据重复n次。例如:24R等同于22222ii.nI功能,表示在与其前后相邻的两个数之间,插入n个线性插值点。对于XnIY的结构,如果X和Y是整数,且X-Y刚好是n+1的整倍数,则产生标准的整数插值,否则产生实数插值,但Y值直接存储。例如:1.52I3.0=1.52.02.532.0可能不精确而14I6=123456都是精确定整数iii.xM功能,它表示的数值为前面的数据乘上x。例如:112M2M4M2M=11241632iv.nJ功能,表示其后n个数据项使用缺省值。例如:DD.1(缺省值)1000=DDJ1000如果nR、nI、及nJ项中缺省n,则假设n=1。这四项功能的书写必须满足以下规则:i.nR前面必须放一个数或者放由R或M产生的数据项。ii.nI前面必须放一个数或者放由R或M产生的数据项,而它的后面还必须有一个常数。iii.xM前面必须放一个数或者放由R或M产生的数据项。iv.除了在I项的后面,nJ可以放在任何地方。例如:13M2R=133313MI4=133.5413M3M=13912R2I2.5=1111.52.02.51R2M=1121RR=11112I43M=12341212I42I10=123468103J4R错误!14I3M错误!14IJ错误!b)列输入格式列输入对栅元参数及源描述是非常有用的。对于栅元重要性及体积等参数,输入按行排列时其可读性差,且在增加或删除一些栅元时容易出错。用列输入格式,一个栅元的所有栅元参数是放在标有该栅元名字的那行上。如果删掉一个栅元,用户只需删除该栅元参数行,而不需要在每一个栅元参数卡上寻找该栅元所对应的数据项。对于源描述也有类似的情况。用列格式,卡片名字逐个放在一个输入行上,并且在这些卡片名字下面按列列出数据项。后续各行为各个栅元的数据。如果填写某个栅元名字,则必须填写全部栅元名字,且栅元的顺序可以任意排列;如果没有指定栅元名字,则按栅元卡描述的顺序排列。在一个输入文件中,允许有多个列数据块。列输入块的格式:Si必须是MCNP卡片名字,它们必须全部是栅元参数、或者全部是曲面参数、或者全部是其它参数。Ki是栅元名字,它们必须是全部填写或全部空格。一个卡片不允许同时用行格式和列格式输入。1~5列6~72列#S1S2…SmK1D11D12…D1mK2D21D22…D2m……KnDn1Dn2…Dnm(5)粒子标识符几个输入卡片都需要粒子标识符以区别中子、光子和电子的输入数据。这些卡片是:IMP、EXT、FCL、WWN、WWE、WWP、WWGE、DXT、DXC、F、F5X、F5Y、F5Z、PHYS、ELPT、ESPLT、CUT和PERT。粒子标识符由上述卡片名字后面的冒号、字母N、P或E组成。例如:中子重要性卡为IMP:N光子重要性卡为IMP:P(6)缺省值MCNP的许多输入参数都有缺省值,因此用户不需要每次都给出各个输入参量的值。当缺省值符合用户要求时,便可不在输入文件中指定。当省略某张输入卡时,则该卡上的全部参数均使用缺省值。如果只想改变一张卡上的某一个特定参量时,则它前面的参量仍需指明,或者用nJ方式跳过前面那些使用缺省值的参量。例如:光子截断卡CUT:P3J-.10表示前3个参量使用缺省值,只改变第四项参量的值。(7)输入错误信息MCNP对输入文件出现的错误作广泛的检查,如果用户违反了输入说明的规定,将在终端上以及输出文件中打印致命错误信息,MCNP不再进行粒子输运计算,作业中断。第一个出现的致命错误是真的,而后面的错误可能不一定是真的,这取决于前面出现的致命错误的情况。若在MCNP运行行上指定FATAL项,则MCNP忽略致命错误,照常运行。对于MCNP的警告信息,用户不应忽视,应搞清楚它们的含义。(8)检查几何错误在处理输入文件的数据时,有一种非常重要的输入错误MCNP无法检测。即MCNP无法查出各栅元之间的重叠和空隙,只有当粒子丢失时,才会发现几何错误。即使如此,可能仍然无法准确判断错误性质。o几何画图o用外源的粒子轨迹注满真空系统2)栅元描述卡格式:jmdgeomparams或:jLIKEnBUTlistj栅元号,1≤j≤99999,写在第1~5列上。m栅元材料号,与材料卡(Mm)中的序号对应。m=0为真空栅元。d栅元材料密度。正值为原子密度,负值为质量密度。对于真空栅元,该项缺省,不填写。geom栅元的几何说明。由一系列带符号的曲面号经过布尔运算组成。params任选的栅元参数说明。n另一个栅元的名字(编号)。list描述栅元j和栅元n之间差别的栅元参数。在栅元的几何说明中,关于曲面的指向是一个很重要的概念。假定曲面S的曲面方程为f(x,y,z)=0,则对于f(x,y,z)>0的区域对于曲面S具有正的指向;而对于f(x,y,z)<0的区域对于曲面S具有负的指向。正指向的区域用+S表示,“+”号可不写;负指向的区域用-S表示。栅元用各相关曲面的布尔运算表示,布尔算符包括交(用空格表示)、并(用冒号:表示)和非(用#表示)。缺省的运算顺序是先非,其次是交,最后是并,使用括号可控制布尔运算的次序。非运算有两种形式:(1)#n,n是某个栅元号,#n表示一个由不在栅元n内的点组成的空间区域。(2)#(---),括号内是对某一个栅元进行描述的曲面——栅元关系组,这一形式定义的几何区域由不属于括号内描述区域的点组成的空间。例如:30-12-4$定义栅元3#3$与下行相同#(-12-4)在栅元卡上可定义栅元参数以代替在输入文件中数据卡部分定义的栅元参数。格式为:关键词=值。这儿允许的关键词是:带有粒子标识符的IMP、VOL、PWT、EXT、FCL、WWN、DXC、NONU、PD和TMP,以及关于重复结构的4个栅元参数卡:U卡、TRCL卡、LAT卡和FILL卡。例如:1016-4.21-23IMP:N=4IMP:P=8表示栅元10由曲面1的正面、曲面2的负面和曲面3的正面的交集组成,填充质量密度为4.2克/厘米3的16号材料。该栅元的中子重要性为4,光子重要性为8。在简写格式LIKEnBUT中,还有两个关键词MAT和RHO,分别表示栅元的介质号和密度。例如:23-3.7-1IMP:N=2IMP:P=43LIKE2BUTTRCL=1IMP:N=10表示栅元3除了有不同的中子重要性和位置以外,其它方面与栅元2完全一样。即栅元3的定义及其材料和密度与栅元2一样,它们的光子重要性也一样。3)曲面描述卡(1)由方程定义曲面格式:jnalistj曲面号,1≤j≤99999,写在第1~5列上。若前面有符号*,则该曲面为反射面。若前面有符号+,则该曲面为白边界。如果用该曲面定义的栅元进行了坐标变换(用TRCL),则1≤j≤999。n=0或缺省表示未进行坐标变换。0,为坐标变换卡TRn的号码,表示该曲面是在TR