《蒙特卡罗方法简介》由会员分享,可在线阅读,更多相关《蒙特卡罗方法简介(7页珍藏版)》请在金锄头文库上搜索。
1、第三章 蒙特卡罗方法简介3.1 Monte Carlo 方 法 简 介Monte Carlo 方法是诺斯阿拉莫斯实验室在总结其二战期间工作(曼哈顿计划)的基础上提出来的。Monte Carlo 的发明,主要归功于 Enrico Fermi、Von Neumann 和 Stanislaw Ulam 等。自二战以来,Monte Carlo 方法由于其在解决粒子输运问题上特有的优势而得到了迅速发展,并在核物理、辐射物理、数学、电子学等方面得到了广泛的应用。Monte Carlo 的基本思想就是基于随机数选择的统计抽样,这和赌博中掷色子很类似,故取名 Monte Carlo。Monte Carlo 方
2、法非常适于解决复杂的三维问题,对于不能用确定性方法解决的问题尤其有用,可以用来模拟核子与物质的相互作用。在粒子输运中,Monte Carlo 技术就是跟踪来自源的每个粒子,从粒子产生开始,直到其消亡(吸收或逃逸等)。在跟踪过程中,利用有关传输数据经随机抽样来决定粒子每一步的结果 6。3.2 Monte Carlo 发展历程MCNP 程 序 全 名 为 Monte Carlo Neutron and Photon Transport Code (蒙 特 卡 罗 中 子 -光 子 输 运 程 序 )。 Monte Carlo 模 拟 程 序 是 在 1940年 美 国 实 施 “发 展 核 武 器
3、 计 划 ”时 , 由 洛 斯 阿 拉 莫 斯 实 验 室 ( LANL) 提 出的 , 为 其 所 投 入 的 研究、发展、程序编写及参数制作超过了 500 人年。1950年 Monte Carlo 方法的机器语言出现 , 1963 年通用性的 Monte Carlo 方 法 语言 推 出 ,在此基础上,20 世纪 70 年代中期由中子程序和光子程序合并,形成了最初的 MCNP 程序。自那时起,每 23 年 MCNP 更新一次 , 版本不断发展,功能不断增加,适应面也越来越广。已知的 MCNP 程序研制版本的更新时间表如下:MCNP-3:1983 年写成,为标准的 FORTRAN-77 版本
4、,截面采用 ENDF /B2III。MCNP-3A: 1986 年写成,加进了多种标准源,截面采用 ENDF /B2I V20。MCNP-3B::1988 年写成具有阵列几何处理能力 (即重复结构描述 ),多群截面和计数输出的图形化功能,截面采用 ENDF /B2I V 和 ENDL2 851。MCNP-4::1990 年 7 月由 LANL 写成,截面采用 ENDF /B2V。MCNP-4.2: 1991 年 3 月由 ORNL 的 RSIC 写成,程序有较大改进,增加了基于 Sandia 国家实验室的 ITS( Integrated Tiger Series)-连续能量电子输运包,将其编入
5、 MCNP 程序,专用于 UNIX 系统,从此 MCNP 程序成为中子/ 光子/电子耦合输运程序。MCNP-4A: 1993 年诞生,仍为 UNIX 系统,开始引入 PVM 并行,适合共享存储并行计算机,截面为 ENDF/B2 V。MCNP-4B:1997 年 3 月正式推出,有 PC 版(需要 LAHEY 编译系统支持) ,UNIX 版,采用 ENDF/B2VI 截面库和彩色图形系统,仍采用 PVM 并行编程。MCNP-4B2:为 MCNP-4B 的升级版,其支持 FORTRAN-90 系统。MCNP-4C:2000 正式推出,在 MCNP-4B 基础上增加共振自屏、瞬发 本征值、微扰和多群
6、伴随中子输运计算等处理,采用 F90 编译器,工作站版本支持 PVM 和 SMPP 并行。MCNP-5:2003 年推出。在这个版本中,完成了从 FORTRAN-77 到 FORTRAN-90 的重新组织,支持以前的 MCNP-4C2 /4C3 全部功能,同时在提高图形显示,易安装性以及更好的在线文档方面有较大改善。另外,在 MCNP 系列版本中,出现 MCNPX 版本,该版本程序仍为该实验室研制,并由其负责维护和更新。MCNPX 开始于 1994 年,作为 MCNP-4B和 LAHET-2 . 8 的代码整合项目,并第 1 次在 1999 年对外发布,版本为 2 .1 .5。2002 年,
7、MCNPX 升级为 MCNP- 4C,其变化包括支持 FORTRAN-90 系统,加强了 12 种新特性,并作为 2.4.0 版本对外发布。自从 2002 年开始,MCNPX测试组向全球 300 个机构中的 1400 多名用户进行公开测试,在加入了数 10 个新特性后作为 2.5.0 版对外发布。MCNPX 现在已经成为世界上使用最为广泛的粒子输运程序之一 7。3.3 MCNP-3B/PC 的输入文件表 3.1 MCNP 输入数据物理量的单位物 理 量 单 位 物 理 量 单 位长 度 cm 能 量 MeV时 间 刹 ( )810温 度 MeV原 子 密 度 个原子/243c质 量 密 度 g
8、/ 3cm截 面 巴(bar)3.3.1 初始运行的输入文件这一文件用于建立一个蒙特卡罗计算问题,对问题的几何结构、材料、计数要求等等给以描述,如果需要,便可直接运行。该文件按书写顺序包括如下内容: 信息块卡 该项是选择性的;可有可无。 (空行分隔) 标题卡 栅元描述卡 (空行分隔) 曲面描述卡 (空行分隔) 数据卡 (空行分隔) 其它卡 选择项 其中的标题卡不可省去,它限于一行,且占用 180 列,它作为 MCNP 各部分输出表的标题使用。 数据卡后面不管有没有空行分隔符, MCNP 都能运行, 不同的是如果数据卡后向有至行分隔符,则 MCNP 将不再读后面的附加行(附加行存在) 。附加行一
9、般为这个问题的说明或者是与这个输入文件本身有关的信息。那么,该空行分隔行能防止读入这些附加信息。3.3.2 卡片书写格式INP 文件中的每一行(我们称之为一张卡片) ,都限于使用 1-80 列并构成卡片映象。大部分输入卡片按行填写;然而,数据卡片也允许按列填写。 “”符号为它所在行数据的结束符号。在“”符号后面的内容为注释内容,注释内容可从“”符号后的任一列开始。标题卡例外,它只限于一行,整行都可填入用户的信息,即使全部空白也可(在输入文件的其余部分,空白卡则作分界符或终止符使用) 。标题卡通常给出特定计算问题的信息。 输入文件中,在标题卡之后及最后的空白结束卡之前,任何地方都可插入注释卡。注
10、释卡的第一列必须标有字母“c” ,且后面跟 4 个空格,第 6-80 列供用户填入任何注释内容。注释卡仅在输入文件内容的原型输出部分印出,输出文件的其它任何部分不再出现。FCn 卡也是作为注释用的, 但它将作为记数类型 n 的表头文字印出, 比如可作为记数的标题出现。SCn 卡也是作为注释用的,但它将作为源概率分布 n 的表头文字印出。 l行输入格式 栅元卡、曲面卡及数据卡的书写格式是相同的。第 l-5 列填写这些卡片相应的名字(或序号),而且可以写在 1-5 列的任何地方。如果 1-5 列为空白,则表示它是前一张卡片的继续卡。 (完全的空白卡则作为两组卡片的分界符使用) 。 带有粒子标识符的
11、卡可需要 5 列以上,但冒号必须写在第 6 列以前(包含第 6 列) 。6-80 列是用自由格式填写 1-5 列卡片有关的数据项。填入的数据项之间均以空格(一个或多个)作为分隔。一般讲,填入的数据可以是任何类型,定点数、浮点数及八进制数等等,MCNP 会根据所送入的变量类型进行适当转换。需要整数输入的地方必须填写整数。一个数据项必须在一张卡片上写完,不得跨到下一张卡片上。2列输入格式 列输入格式对于栅元参数和源分布是特别有用的。 按行排列的栅元重要性或体积可读性差,并且当用户增加或删除栅元参数时容易出错。用列输入格式,一个栅元的所有栅元参数是放在标有这个栅元名字的那行上。如果要删除某个栅元参数
12、,用户只需删除栅元参数这一行,而不需在每一个栅元参数卡上寻找属于该栅元的数据项。对源描述,相应 SI、SP 及 SB 的数据逐个放在每一行上。3.3.3 栅元描述的一般卡片格式 格式: j m d geom params j:栅元的题目序号,写在第 1-5 列,1j99999。 “题目序号”是指由用户按任意所希望的次序选定的序号,在一个文件中,可以不连续。然而 MCNP 将按照读入的顺序对栅元进行编号,从 1 开始按增量为 1 单调上升。我们将此称之为栅元的“程序编号” 。必须明白题目编号与程序编号的区别,因为后面叙述的一些卡片将会引用到这种或那种编号。不过多数情况下, 用户给出的序号往往与程
13、序编号一致, 这也是避免混乱, 减少错误的最可靠方法。 m:栅元的材料号,它是材料卡(Mm)中相应材料的序号。真空栅元,m=0。 d:栅元材料的密度。填入正值时,表示是原子密度(单位为 1024 个原子/cm3);填入负值时,则是质量密度(单位为 gm/cm3)。对于真空栅元,该项不填,直接列出下一项内容。 geom:栅元的几何描述。它列出界定该栅元的所有曲面号(带有数将,表示坐向) ,及描述这些曲面所定义的曲面之间关系的布尔算符,布尔算将包括交(Intersection) ,用一个空格表示;联(Union) ,用“: ”号表示;余(Complement) ,用“#”表示。这里所说的曲面号及栅
14、元号都指的是题目编号。如果定义该栅元要用到一个虚设曲面,则它必须作为界定该概元的一个曲面列出(同样带有坐向数符) 。 param:任选的栅元参数说明,其形式为:关键词=数值。3.3.4 源的描述卡对每一个 MCNP 问题都有四个源中的一个。四个源包括:通用源(SDEF 卡);曲面源(SSR 卡);临界源(KCODE 卡);用户提供的源。除了临界源之外,其它源都能使用源分布函数,分布函数分别由 SIn、SPn、SBn 和 DSn 卡指定。下列卡片用于指定源的信息:助记名(1-5 列) 卡片内容 助记名(1-5 列) 卡片内容SDEF 通用源 SCn 源注释SIn 源信息 SSW 写曲面源SPn
15、源概率 SSR 读曲面源SBn 源偏倚 KCODE 迭代源DSn 相关源 KSRC 源的一些特点在一些情况下,MODE 卡也作为源描述部分来说明从源出发粒子的隐含类型。对源粒子的描述应包括如下信息: i)几何位置(xxx,yyy,zzz);ii)飞行方向(uuu,vvv,www)iii)能量(ERG);iv)开始时间(TME);v)粒子类型(IPT);vi)粒子统计权重(WGT);vii)粒子开始栅元(ICL);viii)粒子开始曲面(JSU),如果开始点不在曲面上该值为 0。如果对点探测器或者 DXTRAN 球的问题还必须定义另外一些变量。源粒子的类型(中子或光子)则自动由 MODE 卡指定
16、了。上述变量的任何一个都可能有一个概率分布。源粒子若出生在重要性为“0”的栅元,则是一个致命性错误。3.3.5 FSn 分段记数卡(记数类型 1,2,4,6,7) 格式: FSn S1 S2 Sk n:记数号; Si:带数符的分段曲面的题目编号。 此卡不用于探测器。可以要求 Sdn 卡。该卡允许用户把一个栅元或曲面分成若干段来记数,其优点在于不必专为记数设置额外的栅元。在 FSn 卡上指定的分段曲面应与正规的问题曲面一起列出曲面描述卡,但它们不一定是实际几何的组成部分。因此无需按栅元与曲面间的关系把它们考虑得很复杂。如果在 FSn 卡上填写 k 个曲面,就把曲面或栅元分成了 k+1 段。按照在 FSn 卡上列出的分段曲面的次序和坐向把记数 n 分成 kl 段记数箱。采用分段记数时,通常只给出每段的结果,当在 FSn 卡末尾加上“T”时,则增加一个总的记数箱,同时给出整个曲面或栅元上的记数。分段是按如下方法做的:F