您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > mcnp从入门到精通讲座
第一讲:如何运行MCNP程序执行命令语句\mcnpi=(输入文件名)o=(输出文件名)…[选项]选项[i|p|x|r|z]i=processinputfile过程输入文件p=plotgeometry几何画图x=processcross-sections截面处理r=runparticletransport运行粒子输运z=plottallyresults,plotcross-sections画记数结果,画截面。具体执行过程:假定mcnp.exe在C:\\mcnp\bin\子目录下,在DOS窗口里,在命令行提示符后敲入,C:\\mcnp\binmcnpi|p|x|r|zi=(输入文件名)o=(输出文件名)╛其中╛为回车键。缺省文件名:inp→asciiinputfileascii码输入文件outp→asciioutputfileascii码输出文件runtpe→binaryrestartfile二进制转储文件举例如下:C:\\mcnp\binmcnpixri=greatwallname=greatwall.1其中greatwall是你自己编写的源程序输入文件。这个命令行语句,将读入输入文件greatwall,调用XS数据库,并且运行mcnp。.1是你自己选择的输出文件名,每次输出必须更改输出文件名,或者不更改但删除上一次的输出文件名,否则程序运行出错。你也可以改成.2,.8,等等,任你选择。这样运行的结果,就会有如下输出:greatwall.1.o→ascii码输出文件greatwall.1.r→转储文件其中,转储文件也可以作为下一次运行的输入文件,进行接续运行。关于接续运行,将在以后的讲座中详细介绍。你自己定义的文件名,将使你能够跟踪上述的辅助文件。练习:众坛友,请运行下面的greatwall文件,暂时不要计较文件里的内容,以后的讲座,会陆续予以讲解。程序的目的是,画出在一个立方体当中有一个球体。message:datapath=C:\mcnp\bintitle--greatwall:UsphereinAlshpereinwatercube---ccquickintrorun,plot,interruptsetccc***celldescriptions***c101-18.7-1imp:n=1$PuSpherec202-7.8+1-2imp:n=1$Alshellc303-1+2-3imp:n=1$waterc400+3imp:n=0$outsideworldc1sph0005$Sphereatoriginradius2cmc2sph0005.02$outterAlsphericalshell0.5cmthickc3box+20-20-2004000040-4000$surroundingH2Oc***SourceCard***csdef$defaultsourcecc***MaterialCards***cm1922381$U238m2260001$Alm31001+18016+2$watercc***Printfirst50histories***print110cdbcn17j1jprdmp2j11cfc4fluxintegratedoverthePu/Alinterfacef4:n10f14:n20c***timeandnpscutcards***nps10ctme1EndofFile你可以用Wordpad或者Notepad打开任何一个你已经有的INP文件,删去其所有内容,拷贝上述程序,另存为greatwall文件。注意,不要敲Tab键,否则程序出错。尝试下面的命令,看看你都得到了什么输出结果,以及输出的文件都在哪里?(1)执行C:\\mcnp\binmcnpi=greatwall╛其中╛为回车键。(2)再次执行一遍上述命令C:\\mcnp\binmcnpi=greatwall╛(3)执行C:\\mcnp\binmcnpi=greatwallname=greatwall.1╛(4)执行C:\\mcnp\binmcnpi=greatwallname=greatwall.2╛(5)执行C:\\mcnp\binmcnpixri=greatwallname=greatwall.2╛下面是mcnp程序运行的结构框图,从中你可以看到,用户输入文件被mcnp.exe执行后,要根据执行命令语句的设置,来调用XS数据库,然后计算输运过程,把输出文件放到所执行的子目录里。我不知道,国内怎样翻译XS数据库,索性就把XS放到这里,不再忽发奇想,闭门造车,以免‘毁’人不倦。如果有哪位朋友知道的话,请跟帖加以说明,非常感谢。这一讲,就说到这里。欲知后事如何,请听下一讲分解:mcnp输入文件。*^_^*第二讲,MCNP输入文件(1)MCNP中物理量的默认单位长度:cm通量:MeV时间:刹shake(10-8秒)能量:MeV温度:MeV(kT)原子密度:1024个原子/cm3质量密度:g/cm3截面:巴barns(10-24/cm2)加热量:MeV/collision此外,原子质量按照中子质量为1.0计算,这种单位下阿佛伽德罗常数是0.59703109;程序运行时间以分钟为单位。MCNP的源代码是用FORTRAN语言编写的。(2)输入INP文件的基本形式INP文件由一些被空行分隔的由一些被空行分隔的输入块组成,主要的输入块是信息块、标题和栅元块、曲面块和数据块等。输入块又由一些被称为卡的输入行组成。论坛的朋友可以参照对比一下,上一讲中的greatwall程序内容。INP文件的格式如下:信息块(可选项)空行分隔符(可选项)标题卡栅元卡……空行分隔符曲面卡……空行分隔符数据卡……空行分隔符其它(可选项)说明如下:•信息块的第一行,必须在它的1∼8列填写MESSAGE:,后面跟着用空格分隔的参数项。其后的9∼80列和空行分隔符之前各行的1∼80列都看作信息块内容。可用A=B参数项更改输出文件名,如OUTP=MYOUT。信息块是可选的。信息块提供给MCNP一个执行信息的方法。•在信息块之后的第一行是问题的标题卡,它仅限于一行,占用1∼80列,可以是任何信息,将作为OUTP文件中各个输出表的标题被复制。•用户在栅元块和曲面块中描述问题的几何。栅元由栅元卡描述。空间必须由彼此相邻的栅元填满,栅元之间不能重叠,也不能出现无栅元的空区,否则会出现错误。构建栅元的曲面由曲面卡定义,曲面卡在曲面块中给出。曲面卡和栅元卡的填写方法,将在以后的讲座中予以介绍。•曲面块之后是数据块,在数据块中用户描述源、记数方式、材料等。数据卡在以后的讲座中予以详细介绍。•数据卡后不管有无空行分隔符均可以运行,不同之处是,如果数据卡后面有空行分隔符,则MCNP将不再读后面的附加行(如果附加行存在的话)。这对某些用户喜欢保留附加的内容是很方便的,如改变这个问题的说明或者与这个输入文件本身有关的信息,那么,这个分隔符就能防止读入这些附加信息。用户可以把希望保留的一些附加信息写在数据块的空行之后,MCNP会将它们复制到OUTP文件末尾。(3)卡片格式INP文件的每一行(称之为一张卡片)都限于使用1∼80列。大多数卡片都可以按行填写,然而数据卡也允许按列填写。a)行输入格式通常卡片的1∼5列用于填写栅元号、曲面号或数据卡的助记名,6∼72列填写卡片参数,73∼80列为注释,$符号之后也为注释。序号或卡片助记名可以写在1∼5列的任何地方。带有粒子标识符助记名可能需要5列以上,但冒号必须写在6列以内。如果1∼5列空白,表示本行为上一行的接续行。6列之后可以写数据项,多个数据项之间用空格分隔。一个数据项必须在一行上写完,不得接续到下一行。相同编号的卡片只能有一张。需要注意的地方:每行最多80个字符不含控制字符,比如:Tab键,你是看不见的。它导致程序出错。注释行:—标题卡之后的任何位置都可插入‘C’;—第一列是字母“C”,且随后是个空格;—从输入数据之后的$符号后开始的内容(以上三种情况可以单独或同时存在)$符号为它所在的那行数据的结束符,在$符号后面的内容作为注释,它可从$符号后面的任一列开始。填写卡片参数时可以使用以下输入简写功能:1.nR功能,表示它前面的数据再重复n遍。例如:24R=222222.nI功能,表示与其前后相临两个数之间插进n个线性插值点。例如:15I7=12345673.xM功能,表示数值等于它前面数据的x倍。例如:54M=4204.nJ功能,表示从它所在位置跳过n项不指定的数据而使用缺省值。这四项输入简写功能可以综合运用。另外,FCn卡是作为注释用的,但它将作为记数类型n的表头文字印出,比如可作为记数的标题。SCn卡也是作为注释用的,它作为源概率分布n的表头文字印出。具体使用方法请见手册。b)列输入格式列输入只能用于数据块中,对栅元参数和源的描述比较有用。按行输入的栅元重要性、体积、权窗等数据项可读性较差,而且增加或删除栅元时要在行输入卡上仔细寻找相应项。列输入的可读性有很大提高,删除或增加与某一栅元相对应的数据项时也比较方便。列输入格式的第一行以#开始,#可以放在1∼5列的任意位置,卡片助记名逐个放在该行6列以后,在这些助记名之下按列给出数据项。同一个列输入格式块中的卡片必须是同一类卡片,比如都是栅元参数卡、都是曲面参数卡或都是源参数卡等,在#号下面的1∼5列放置栅元号、曲面号或源分布号。c)粒子标识符粒子标识符是卡片助记名的一部分,:N表示中子,:P表示光子,有时也能遇到表示中子-光子联合输运的:NP。下面一些数据卡需要粒子标识符:IMP、EXT、FCL、WWN、WWE、WWP、WWCE、DXT、DXC、Fna、PHYS、ESPLT和CUT。d)缺省值MCNP许多输入卡的参数项有缺省值,用户不必每次都给出这些参数,如果卡片输入项有固定顺序,可以使用nJ功能跳过n个输入项。如果卡片上所有数据项都想缺省,只给出卡片助记名即可。有些卡片不给出也有缺省值,如MODEN卡就可以省略。练习:请找出上一讲中的greatwall文件里的信息卡MESSAGE:,标题卡Title,栅元卡cellCard(从celldescriptions开始),曲面卡Surfacecard(从1sph0005$Sphereatoriginradius2cm开始的三行),数据卡Datacard,包括源卡SourceCard,材料卡MaterialCards。论坛朋友们不必彻底搞懂它们的作用,以后讲座会详细讲解;只需体会书写的格式,看看是否符合上述的规则。这一讲,就说到这里。欲知后事如何,请听下一讲分解:MCNP几何结构描述。*^_^*MCNP从入门到精通讲座,第03讲再举一个例子:有一个大球面S1,它的里面有一个小球面S2。在小球面S2外且在大球面S1里的部分,是这样定义的:在小球面S2里的部分,是这样定义的:(2)交集和并集(intersection&union)在MCNP里,布尔表达式是由下述符号构成的::冒号,表示并集;#井字号,表示补集;表示交集。这个符号你们看见了吗?我也没看见。交集的表达式是一个空格键,也是隐式的。缺省的运算顺序是先#补集,其次是交集,最后是:并集。交集是两个集合的公共部分,如图所示。并集是两个集合的合集,见图。若想仅用交算符定义栅元,栅元内所有点对特定的界面必须有相同的坐向。如图所示,1、2、3、4、5面围成一个实体,用密度为1.0g/cm3的材料1填充,外部是真空。实体内P1和P2点相对于4面有负坐向,P3点相对于4面有正坐向;P1点相对于3面有正坐向,P2和P3点相对于3面有负坐向。这时最好借助另一平面6把实体分成两部分,从而顺利定义栅元:11-1.01–2–3621-1.01–6–45然而,只用交算符还不便定义实体之外的区域,这时用并算符比较方便,实体外可由3、4面以上区域的交集和其它几个面以外区域的并集构成一个栅元:30-5:-1:2:34当然实体之内的区域也可以借助并算符定义,把1、2栅元合并(这样定义会降低计算速度)。由
本文标题:mcnp从入门到精通讲座
链接地址:https://www.777doc.com/doc-2888412 .html