30. 减方差¶
RMC支持减方差计算功能,包括区域重要性,源偏倚和权窗技术。 目前区域重要性和权窗技术都只在固定源模式下使用。 权窗技术包括栅元权窗和网格权窗,对于同一种粒子类型(中子、光子、电子), 区域重要性、栅元权窗和网格权窗三种减方差方法只能同时使用其中的一种。
30.1. 区域重要性输入卡¶
在栅元信息卡中增加几何重要性imp选项卡,其分为中子几何重要性imp:n、 光子几何重要性imp:p和电子几何重要性imp:e。例如:imp:n=0, imp:n=1,imp:n=2,imp:p=0,imp:p=1,imp:p=2,imp:e=0,imp:e=1,imp:e=2,等等。
30.2. 权窗输入卡¶
WeightWindow
WWN:N W_1 W_2 W_3 W_4 … W_n
WWMESH:N W_1 W_2 W_3 W_4 … W_n
[WeightWindowMESH:Geometry Axis Vector Origin
Scope Bound BoundX BoundY BoundZ ScopeX ScopeY ScopeZ]
WWP:N WUPN WSURVN MXSPLN
示例为中子的栅元权窗和网格权窗输入卡。其中,
- WeightWindow为减方差的权窗输入卡的关键词;
- WWN:N为中子的栅元权窗卡,W1、W2、W3等等分别表示每个栅元 的权窗下限。若是光子的栅元权窗卡,则把关键词替换为WWN:P。 若是电子的栅元权窗卡,则把关键词替换为WWN:E;
- WWMESH:N为中子的网格权窗卡,W1、W2、W3等等分别表示每个网格的权窗下限。 网格的几个定义在网格计数器部分,目前的程序支持非均匀网格和 非均匀圆柱网格。若是光子的网格权窗卡,则把关键词替换为WWMESH:P。 若是电子的网格权窗卡,则把关键词替换为WWMESH:E。; 目前在RMC自带的网格权窗条件下,使用的是基于径迹的网格权窗算法。
- WeightWindowMESH为RMC权窗网格的输入方式,其关键字与网格计数器中的网格信息输入方式相同。
- Geometry选项卡指定坐标系类别,1为直角坐标系,2为柱坐标系,缺省为1。
- Axis选项卡指定柱坐标系的z轴方向,直角坐标系不定义。
- Vector选项卡的向量和Axis向量构成的平面为φ = 0平面, Vector和Axis可以不垂直,但不能平行,直角坐标系不定义。
- Origin选项卡指定柱坐标系的原点坐标,直角坐标系不定义。
- Scope选项卡指定网格在x,y,z方向的数量。特别地,参数为“-1”表示该方向上 只有一层无限大网格 (注意:在Universe重复几何中的Scope选项卡当中,参数为1表示 该方向上只有一层无限大网格)。
- Bound选项卡指定网格在x,y,z方向的边界范围,形如“Bound = x_min x_max y_min y_max z_min z_max”。若某方向只有一层网格,Bound选项卡中对应的参数没有实际意义。
- BoundX / BoundY / BoundZ选项卡分别指定非均匀网格在x,y,z方向的粗网格边界序列, 比如”BoundX = 1.0 3.0 7.0”表示非均匀网格在x方向上有3个粗网格边界,分别为1.0,3.0,7.0。 注意:每个方向上的粗网格边界序列必须单调递增。
- ScopeX ScopeY ScopeZ选项卡分别指定非均匀网格在x,y,z方向的细网格数量序列, 比如”ScopeX = 2 8”表示非均匀网格在x方向上共有两个粗网格,每个粗网格内依次有2、8个细网格。 注意:粗网格边界的数量必须比粗网格数量多1,此外,程序暂不支持某一方向上只有一层无限大网格的 非均匀网格。
- WWP:N为中子的权窗参数卡,WUPN表示权窗上限与下限的倍数, 要求WUPN>2,默认值为5。WSURVN表示存活粒子权重与权窗下限的倍数, 要求1<WSURVN<WUPN,默认值为3。MXSPLN表示粒子的最大分裂数, 要求1<MXSPLN,默认值为5。若是光子的权窗参数卡,则把关键词替换 为WWP:P。若是电子的权窗参数卡,则把关键词替换为WWP:E;
- 注意,同一种粒子的不同种类权窗卡只能同时使用一种。比如对于中子,WWN:N和 WWMESH:N只定义其中的一个就可以。若WWP:N没有定义,则为默认值。
30.3. 兼容MCNP的网格权窗输入卡¶
目前RMC兼容MCNP格式的网格权窗文件,可以使用MCNP减方差参数的WWE、WWN、WWP、WWINP卡片,不支持WWT卡。 MCNPWeightWindow为兼容MCNP权窗输入卡参数的关键词;
MCNPWeightWindow
[MPISHAREWEIGHTWINDOW]
WWE:N E_1 E_2 E_3 E_4 … E_j
WWN1:N W_11 W_12 W_13 W_14 … W_1k
WWN2:N W_21 W_22 W_23 W_24 … W_2k
…
WWNj:N W_j1 W_j2 W_j3 W_j4 … W_jk
[WWP:N WUPN WSURVN MXSPLN MWHERE SWITCHN MTIME WNORM ETSPLT]
[WWINP FileName]
- WWE:N为中子的栅元权窗卡,E_1、E_2、E_3、E_4 … E_j分别表示每个栅元 的能量间隔,在WWN卡上将指定重量窗口的界限。最小能量不在WWE卡上输入,但被定义为零。
- MPISHAREWEIGHTWINDOW为使用MPI共享内存功能进行大规模网格权窗内存优化的功能(仅仅对wwinp卡中使用的MCNP格式的权窗文件有效), 此功能若要开启,必须在编译选项中开启MPI并行;如果在MPI并行情况下,不使用此功能,则每个进程都会对提供的wwinp文件进行一次读取;若开启此功能,则只进行一次读取; 若要在超算上使用此功能,则只能使用一个节点进行计算,不支持跨节点。
- WWNi:N规定了栅元中与空间和能量相关的权窗的下限。如果权窗是能量相关的(即对不同能量的粒子也有权窗分裂), 则必须与WWE卡一起使用。粒子的权重界限总是绝对的,而不是相对的。如果同时使用了WWN卡和WWE卡,则用户必须为每个 栅元的每个能量均指定一个权窗下限,也就是说,假如WWE卡指定了j个能量分箱,此算例中共有k个栅元,则对每个i(1<=i<=j) WWNi:N 后必须输入k个权窗下限,分别对应此能量分区中的k个栅元编号。
- WWP:N为中子的权窗参数卡,WUPN表示权窗上限与下限的倍数, 要求WUPN>2,默认值为5。WSURVN表示存活粒子权重与权窗下限的倍数, 要求1<WSURVN<WUPN,默认值为3。MXSPLN大于1,表示一个粒子的最大分裂数 MWHERE表示权窗在何处使用,目前仅支持0,表示在粒子穿面和碰撞的时候使用权窗 SWITCHN表示从何处得到权窗下限,目前仅支持<0 和=0两种情况,<0表示从WWINP中得到,=0 表示从WWN中得到,需要注意的 是这个参数必须与使用的卡片类型一致,即<0时必须使用WWINP; =0时必须使用WWN MTIME表示如何理解WWE卡片中的参数, =0 表示WWE中数字为权窗的能量网格,>0 表示WWE中数字为权窗的时间网格,目前仅支持MTIME=0 WNORM表示权窗乘子,目前在RMC中不支持使用,必须设置为0; ETSPLT表示ESPLT和TSPLT的使用方式,目前RMC中不支持使用这两种卡片,需要将此参数设置为0;
- WWINP为RMC读取MCNP的权窗文件格式功能卡,FileName为MCNP权窗格式文件名。需要注意的是,使用WWINP输入时 一定使用网格权窗,此权窗在使用的时候会生成一个编号为99的网格计数器,并且在使用WWINP卡的时候与WWN卡不兼容。
WWN卡和WWE卡(中子)示例
MCNPWeightWindow
WWE:N e1 e2 e3
WWN1:N w11 w12 w13 w14
WWN2:N w21 w22 w23 w24
WWN3:N w31 w32 w33 w34
该示例定义了3个能量区间下的4个栅元的中子权窗下限。即0-e1能量分箱下cell1至cell4的权窗下限分别为w11、w12、w13、w14;以此类推。
30.4. 兼容MCNP的权窗生成器输入卡¶
目前RMC兼容MCNP格式的权窗生成器,可以使用MCNP权窗生成功能的WWG、WWGE卡片。 MCNPWeightWindow为兼容MCNP权窗生成器输入卡的关键词;WWG卡和WWGE卡与任何一种权窗参数(WWE、WWN、WWP、WWINP卡片)均不可同时使用,另外目前 RMC中的权窗生成器默认生成当前计算流程中所有涉及到的粒子的权窗。
MCNPWeightWindow
WWG It Ic Wg J1 J2 J3 J4 IE
WWGE E_1 E_2 … E_j j是任意正整数
[MESH] [Geometry=<geo>] [Axis=<a1><a2><a3>]
[Vector=<v1><v2><v3>][Origin=<o1><o2><o3>]
[Scope = <params>] [Bound = <params>]
[ScopeX/ScopeY/ScopeZ = <params>]
[BoundX/BoundY/BoundZ = <params>]
- WWG为权窗下限自动生成器参数。
- It表示参考的CellTally的计数器编号。
- Ic表示基于Cell(栅元)或基于Mesh(网格)的权重窗生成器,如果Ic>0,则调用基于Cell的权窗生成器,且参考栅元编号为Ic,此时不能输入REF卡;如果Ic<0,则调用基于Mesh的权窗生成器,此时Ic的绝对值就是参考的meshtally的网格的编号。
- Wg为参考的CellTally或参考MeshTally生成的权窗下限值,如果Wg=0,那么参考的CellTally或参考MeshTally的权窗下限为0.5倍源粒子权重,Wg默认值为0。J1-J4没有意义,为了保持与MCNP格式一致而保留。使用基于Mesh的权窗生成器的时候(Ic=0)必须指定一个MeshTally,此meshtally指定的网格即为权窗网格。
- IE为WWGEW输入卡的指定方式,目前仅支持IE=0,即将WWGE设置为能量网格。当使用MESH进行网格权窗生成的时候,其格式与网格计数器中的网格几何描述相同。使用WWG功能最终生成的权窗文件名称为[输入卡文件名].wwout
- MESH给出权窗网格的几何描述。
- Geometry选项卡指定坐标系类别,1为直角坐标系,2为柱坐标系,缺省为1。
- Axis选项卡指定柱坐标系的z轴方向,直角坐标系不定义。
- Vector选项卡的向量和Axis向量构成的平面为φ = 0平面, Vector和Axis可以不垂直,但不能平行,直角坐标系不定义。
- Origin选项卡指定柱坐标系的原点坐标,直角坐标系不定义。
- Scope选项卡指定网格在x,y,z方向的数量。特别地,参数为“-1”表示该方向上 只有一层无限大网格 (注意:在Universe重复几何中的Scope选项卡当中,参数为1表示 该方向上只有一层无限大网格)。
- Bound选项卡指定网格在x,y,z方向的边界范围,形如“Bound = x_min x_max y_min y_max z_min z_max”。若某方向只有一层网格,Bound选项卡中对应的参数没有实际意义。
- BoundX / BoundY / BoundZ选项卡分别指定非均匀网格在x,y,z方向的粗网格边界序列, 比如”BoundX = 1.0 3.0 7.0”表示非均匀网格在x方向上有3个粗网格边界,分别为1.0,3.0,7.0。 注意:每个方向上的粗网格边界序列必须单调递增。
- ScopeX ScopeY ScopeZ选项卡分别指定非均匀网格在x,y,z方向的细网格数量序列, 比如”ScopeX = 2 8”表示非均匀网格在x方向上共有两个粗网格,每个粗网格内依次有2、8个细网格。 注意:粗网格边界的数量必须比粗网格数量多1,此外,程序暂不支持某一方向上只有一层无限大网格的 非均匀网格。
- WWGE为权窗下限自动生成器能量网格输入卡,E_1 E_2 E_3 E_4 … E_j 为能量网格的上边界。在进行权窗生成的时候默认0为最低能量。j最大为10000,超过这个数量的话会截断。
WWG卡和WWGE卡示例
MCNPWeightWindow
WWG 1 1 0.001 0 0 0 0 0
WWGE:N 0.01 0.1 1 5
该示例定义了一个基于MCNP格式的WWG卡片,针对编号为1的栅元计数器的统计结果进行权窗生成,参考栅元为1,权窗下限为0.0001,能量网格为0.01、0.1、1、5MeV
30.5. 源偏倚输入卡¶
源偏倚功能可在源描述模块中指定, 若要对不同的源之间进行偏倚抽样, 可以使用Source选项 卡中的BiasFrac参数; 若要对某一个源的分布进行偏倚抽样, 可以使用Distribution选 项卡中的Bias 参数。
30.6. 网格权窗简并功能脚本¶
打开RMC/scripts/下的meshmerge.py文件,将其中的输入输出均改为对应权窗和meshtally计数文件的名字,再将此脚本和权窗文件和meshtally计数文件放于同一个文件夹下,使用python执行此文件即可。