EGS4历史

 ball1.gif (5819 bytes) EGS4计算程序的特点 ball1.gif (5819 bytes) EGS4计算程序的历史 ball1.gif (5819 bytes) EGS4计算程序的组成
EGS是Electron-Gamma Shower 的缩写,它是一个用蒙特卡罗方法模拟在任意几何中,能量从几个KeV到几个TeV的电子-光子簇射过程的通用程序包。
蒙特卡罗方法有很多通用程序包,EGS4只是其中的一种。但它由于以下优点而获得广泛传播和应用。

EGS4计算程序的特点

wpeD.jpg (2054 bytes)

元素和介质材料齐全:该程序可提供100种元素的截面数据,能完成电子和光子在前100号元素组成的任何物质(单质、化合物或混合物)中的输运过程模拟。
能量范围广泛:带电粒子的动能范围从几十KeV到几千GeV,光子能量范围可从1KeV到几千GeV。
带电粒子和光子的输运采用随机游动方式进行。
涉及的物理过程比较全面:包括了电子的轫致辐射、电子对的湮灭、Moliere多次散射、碰撞能量损失、d 射线的产生(Bhabha(e+e-)和MF ller(e-e-)),以及光子的对产生、康普顿散射、光电效应和瑞利(Rayleigh )散射。
开放式结构:允许用户自己编写程序完成对源粒子特征的定义、几何关系处理、结果的记录和对EGS4系统程序的调用,因此EGS4有很大的灵活性、适应性。
PEGS4为离线数据处理程序。该程序包括12个子程序,85个函数,其输入文件可直接被EGS4调用。
具体的几何模块在用户程序HOWFAR中给出,可以引入辅助程序。

.EGS4程序系统包括有关平面、圆柱、锥、球等几何模块。

.可将MORSE-CG程序的组合几何包引入到子程序HOWFAR中使用。

.可在HOWFAR中按专门的方式定义粒子的输运环境(包括电场、磁场等)。

用户所需信息及结果的输出方式在用户程序AUSGAB中规定。

.实用程序ECNSV1用于监视和保存能量变化轨迹。

.实用程序NTALLY用于保存事件。

.实用程序WATCH用于按事件或按步模拟。

EGS4程序包括重要抽样以及其它减小方差的技巧。如:主粒子偏移抽样,俄国轮盘赌与分裂技巧,步长偏移抽样等。
免费获取:可以发e-mail或从internet网上免费获得程序及使用手册。地址见超级联接

EGS4计算程序的历史

wpeD.jpg (2054 bytes)

在EGS4之前,已经存在了许多代码,其中具有代表性的是下列代码。

Messel and Crawford code :该码在1958到1970年使用,由澳大利亚开发,其特点是首次使用计算机进行高能MC模拟,并且发表了极好的结果,但代码不可获得。

Zerby and Moran code:该代码在1962年到1963年使用,是受SLAC的建造而由ORNL开发,在工程计算上极好地完成任务,但其代码在ORNL外并未发布。

Berger and Seltzer code:该代码使用于1964年到现在,由NIST开发,即ETRAN码。它是极好的MC代码,用户友好的版本目前也可得到,即ITS和MCNP。

Nagel Code:在1963年到1967年使用,由波恩大学开发,它是博士论文,仅计算了圆柱几何体,而且材料仅限于铜和铅,但是可以很容易从DESY、MIT或SLAC得到,由Negal本人在大约1966年带到了SLAC。

SHOWER code:由Negal开发,并且成为了EGS3的种子代码,能量范围扩展到0.1MeV到几个GeV,能模拟100种元素中任一种,包括化合物或混合物,其中PEGS3代码使得EGS3输入数据变得容易,它比Negal代码更能有效抽样,而且可以加入新的程序。

在Negal 60年代中期开发的SHOWER1的基础上,Nicoli通过改进开发出SHOWER2;在1966年到1972年,SLAC在计算组Nelson的领导下,将SHOWER2改进为PREPRO到了1972年,SHOWER3/PREPRO进入实用阶段;1974年Ford和Nelson合作,把SHOWER3/PREPRO和SHOWER4/SHINP程序进行综合和改善。程序命名为EGS(Electron-Gamma-Shower)/PEGS(Preprocessor for EGS);此后EGS不断更新,在1982年,SLAC 和KEK进行协作,而NRCC的Rogers在使用EGS3方面相当深入,因此在1985年由美国斯坦福直线加速器中心(SLAC)、日本高能物理国家实验室(KEK)和加拿大国家研究所(NRCC)联合推出了一套模拟电子和光子在物质中输运过程的通用MC计算程序系统EGS4(Electron-Gamma-Shower, Version 4),并在1986年发表。EGS4是揭示电子和光子在物质中输运规律的有力而且方便的理论分析及模拟研究工具。由于其应用灵活性和通用性而被广泛应用于高能物理、低能物理和医学物理。

EGS4计算程序的组成

wpeD.jpg (2054 bytes)

程序主要由下列模块组成:

EGS4: 主模拟程序。

EGS4 MACROS:一个独立的由EGS4调用的宏文件,通常命名为EGS4MAC。

EGS4 BLOCK:一个独立文件,包括EGS4必须的块数据, 通常命名为EGS4BLOCK。

PEGS4:可以独立运行的代码,它产生EGS4子程序HATCH所需的介质数据。

EGS4程序包主要包括十组文件:

第一组为说明性文件。在\EGS4\APPENDIX目录下,主要包括EGS4用户使用手册,PEGS4用户程序使用手册,Mortran3程序的使用指南,一些引用的文件,以及EGS4系统说明等。

第二组为Mortrran程序的预处理文件。在MORTRAN目录下,包括MORNEW77. FOR、MORNEW77.RAW、 MORNEW.FOR、MORNEW.RAW等四个文件。主要把Mortran3语言写成的EGS4系统程序转化为FORTRAN77或FORTRAN IV。

第三组是与PEGS4程序有关的文件。在PEGS4目录下,包括为EGS4系统生成媒质参数的PEGS4的用MORTRAN语言和FORTRAN语言写成的两个源程序,不同媒质状态时PEGS4的输入卡片的写法例子等。

第四组是与EGS4程序有关的文件。在EGS4目录下,包括用FORTRAN 语言与MORTRAN语言分别写成的两种版本的EGS4源程序,EGS4所调用的宏集合及数据块。

第五组到第八组是工具程序。在EGS4目录下,包括可由HOWER调用的各种子程序,可跟踪粒子轨迹的子程序,显示PEGS4作用截面数据的子程序,打印在簇射过程中信息的子程序,为IBM/VM和VAX/VMB大型机上运行EGS4所提供的预处理程序等。

第九组是具体例子。在EGS4\EXAMPLES目录下,包括结构为圆柱和平板结构的用户程序例子,考虑有荧光光子情况下用户程序例子,复杂几何结构的用户程序例子等。

第十组为学习EGS4提供的七个简单的例子。在\EGS4\TUTOR目录下,对粒子入射半无限平板的情况,记录不同信息及应用不同方法实现的例子。

EGS4程序通过产生伪随机数并完成对模拟对象的随机抽样来实现蒙特卡罗方法模拟。在理论上,只要有了一种连续分布的随机变量,通过变换、筛选等抽样方法就可以得到任意分布的随机变量。在EGS4中使用的随机变量就是[0,1]区间上均匀分布的随机变量。抽样的方法在EGS4中有很多,这取决于所要研究的问题,同时要考虑工作量的大小。

用EGS4进行模拟计算,用户至少要编写一个主程序(MAIN)、一个几何关系处理子程序(HOWFAR)和一个记录结果子程序(AUSGAB)。其执行过程如下:

用户在主程序中首先对一些变量进行必要的初始化和其它一些必要的操作,然后调用EGS4系统子程序(HATCH)从介质数据文件中读取截面数据和必要的参数,并做必要的处理,最后再调用EGS4的粒子跟踪程序(SHOWER),完成一个或多个粒子历程的跟踪。在SHOWER的执行过程中,EGS4要频繁调用用户写的HOWFAR和AUSGAB子程序以完成粒子空间几何关系的处理和结果的记录。调用方式如下图:

wpeC.jpg (2025 bytes)