36. 换料

RMC支持换料功能,其在RMC输入卡中的选项和参数如下:

Refuelling
Refuel step=<step1 step2 ... stepn> index=<index1 index2 ... indexn>
File path.yaml

其中,

  • Refuelling为换料输入卡的关键词;
  • Refuel为换料参数卡,用于指定在哪一步燃耗之后换料,step和index的选项一一对应 分别指定各次换料对应的燃耗步数、换料yaml输入卡中的index值。如果某个step值为0,表示 在进行燃耗计算前就进行换料;
  • File为换料yaml文件路径卡,支持使用相对路径或绝对路径指定换料yaml文件的路径。

换料yaml文件的内容可以参考tests/refuelling/或RMC/controller/test/resources中 的各个refuelling.yaml或refuelling.yml文件进行编写。下面给出一个示例,在注释中说明各个 选项卡的含义。

refuelling: !refuelling
  lists:  # 可以有多个!do_refuel换料
  - !do_refuel
    step: 0  # 这个编号需要与RMC的文本输入卡的index对应
    plan:
    - !refuel_univ
      universe: 1  # 换料组件的重复几何所在的universe编号
      # position指定换料universe的前缀universe展开式,为一个二维数组,下面写法一般用于换料universe被多个cell包含的情况;
      #   如果只有一个cell包含这个universe,可以只写一个,例如[[6, 31]]表示换料的universe为6>31>1(最后的1为上面的universe)
      position:
      - [3000]     #   对应3000>1这个universe展开式
      - [3001]     #   对应3001>1这个universe展开式
      - [3002]     #   对应3002>1这个universe展开式
      - [3003]     #   对应3003>1这个universe展开式
      - [3004]     #   对应3004>1这个universe展开式
      - [3005]     #   对应3005>1这个universe展开式
      - [3006]     #   对应3006>1这个universe展开式
      - [3007]     #   对应3007>1这个universe展开式
      - [3008]     #   对应3008>1这个universe展开式
      - [3009]     #   对应3009>1这个universe展开式
      - [3010]     #   对应3010>1这个universe展开式
      - [3011]     #   对应3011>1这个universe展开式
      pattern: univ_1  # 使用下面utilities卡中的pattern的名字
      # 换料方案
      # - 0表示没有组件
      # - 字母+数字为原先组件的位置移动到当前位置,数字开头的0可以随意填充;
      # - NEW_开头为新组件,后面的编号为RMC输入卡中的该新组件的universe编号;
      # - 字母+数字+"-数字"表示从"-"后面的数字对应的换料循环的"字母+数字"的位置移出的组件再入到当前位置,
      #   如A005-1表示将第一个循环从A5位置移出的组件放入到当前位置。
      # - 字母、数字、新组件开头前缀都可以在后面的utilities卡的pattern中设置。实际编写时不需要严格对齐。
      mapping:
      - [0,      0,      0,      0,      L010,   NEW_57, NEW_56, NEW_57, NEW_56, NEW_57, E010,   0,      0,      0,      0     ]
      - [0,      0,      G010,   NEW_56, NEW_53, L002,   P012,   N003,   B012,   E002,   NEW_53, NEW_56, J010,   0,      0     ]
      - [0,      F009,   NEW_57, N002,   N010,   NEW_54, D011,   R010,   M011,   NEW_54, C010,   C002,   NEW_57, K009,   0     ]
      - [0,      NEW_56, P003,   L008,   NEW_55, M009,   E015,   G008,   L015,   D009,   NEW_55, H005,   B003,   NEW_56, 0     ]
      - [F005,   NEW_53, F003,   NEW_55, M004,   NEW_54, M003,   A010,   D003,   NEW_54, D004,   NEW_55, K003,   NEW_53, K005  ]
      - [NEW_57, P005,   NEW_54, G004,   NEW_54, N008,   R009,   G014,   A009,   H003,   NEW_54, J004,   NEW_54, B005,   NEW_57]
      - [NEW_56, D002,   E012,   A011,   N004,   G001,   B009,   H015,   J014,   J001,   C004,   R011,   L012,   M002,   NEW_56]
      - [NEW_57, N013,   F015,   H007,   F001,   B007,   A008,   F014,   R008,   P009,   K015,   H009,   K001,   C003,   NEW_57]
      - [NEW_56, D014,   E004,   A005-1, N012,   G015,   G002,   H001,   P007,   J015,   C012,   R005,   L004,   M014,   NEW_56]
      - [NEW_57, P011,   NEW_54, G012,   NEW_54, H013,   R007,   J002,   A007,   C008,   NEW_54, J012,   NEW_54, B011,   NEW_57]
      - [F011,   NEW_53, F013,   NEW_55, M012,   NEW_54, M013,   R006,   D013,   NEW_54, D012,   NEW_55, K013,   NEW_53, K011  ]
      - [0,      NEW_56, P013,   H011,   NEW_55, M007,   E001,   J008,   L001,   D007,   NEW_55, E008,   B013,   NEW_56, 0     ]
      - [0,      F007,   NEW_57, N014,   N006,   NEW_54, D005,   A006,   M005,   NEW_54, C006,   C014,   NEW_57, K007,   0     ]
      - [0,      0,      G006,   NEW_56, NEW_53, L014,   P004,   C013,   B004,   E014,   NEW_53, NEW_56, J006,   0,      0     ]
      - [0,      0,      0,      0,      L006,   NEW_57, NEW_56, NEW_57, NEW_56, NEW_57, E006,   0,      0,      0,      0     ]
    # 下面三个选项用于移除毒物棒(在第一循环后往往会移除毒物棒)
    poison_universe: [14, 25, 26, 34]  # 带有毒物的组件的universe编号
    guide_tube: 40  # 冷却剂导管的universe编号
    poison_rod: 50  # 毒物棒的universe编号
  utilities:  # 定义一些公共的设置信息
    universes:
      univ_1:
        alias:
          column: [R, P, N, M, L, K, J, H, G, F, E, D, C, B, A]  # 从左到右的各列的字母编号
          row: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]  # 从上到下的各行的数字编号
          new: NEW_  # 新组件的前缀
        fixed:  # 一般用于定义控制棒组所在的位置,因为这些位置不会随着组件移动而改变,因此是固定的(fixed)。
          pattern1:  # 支持写多个pattern,从而方便将固定位置相同的组件放在一个pattern中定义
            assemblies: [H004, D008, L008, H012]  # 固定棒所在组件的位置
            position:  # 组件中需要固定的棒的位置
            - [3, 6]
            - [3, 9]
            - [3, 12]
            - [4, 4]
            - [4, 14]
            - [6, 3]
            - [6, 6]
            - [6, 9]
            - [6, 12]
            - [6, 15]
            - [9, 3]
            - [9, 6]
            - [9, 12]
            - [9, 15]
            - [12, 3]
            - [12, 6]
            - [12, 9]
            - [12, 12]
            - [12, 15]
            - [14, 4]
            - [14, 14]
            - [15, 6]
            - [15, 9]
            - [15, 12]
            # 默认棒的universe,主要是原先有控制棒的组件移到其他位置时,该移走的组件的控制棒栅元位置需要填充冷却剂导管栅元,
            #   这里的编号就是冷却剂导管栅元。
            default_pin: 40
        # 该卡不需要人工填写,也不建议人工填写,RMC会自动检测和产生
        #   表示这个组件在RMC文本输入卡中填充到全堆重复几何的universe编号与棒重复几何对应的universe的映射关系。
        assemblies:
        - [2, 0]
        - [3, 100]
        - [4, 101]
        - [5, 102]
        - [6, 103]
        - [7, 104]
        - [8, 105]
        - [9, 106]