.. _section_output: 输出控制 ============== RMC输出控制模块用来自定义输出内容。尤其是在大规模燃耗计算中,可能产生大量的输出 信息,通过输出控制模块可以有效地减小输出文件的体积。 9.1 输出控制模块输入卡 输出控制模块输入卡 ---------------------- 输出控制模块的输入方式为: .. code-block:: none PRINT Mat Keff Source CellTally SURFACETALLY POINTTALLY MeshTally CsTally CYCTALLY Inpfile FissionSource Material2HDF5 BurnupCorrector 其中, - **PRINT**\ 输出控制模块的关键词。 - **Mat**\ 、\ **Keff**\ 等输入卡指定是否输出相关内容(见 :numref:`outputcontrol_table` )。\ **flag = 0**\ 表示不输出指定内容,输入卡(**Keff**, **Source**, **CycTally**, **Inpfile**) \ **flag = 1**\ 表示输出指定内容, 输入卡(**Mat**, **CellTally**, **SurfTally**, **PointTally**, **MeshTally**, **CsTally**) \ **flag = n**\ 表示输出n位小数。 - **FissionSource**\ 用于控制输出收敛后的(最后一代)的裂变源信息,包括所有源的位置、方向和能量信息到文件 ``inp.Source.h5`` 中。 .. table:: 输出文件控制模块的输入卡 :name: outputcontrol_table +----------------------+-----------------------------------+-----------------------+ | 输入卡 | 输出内容 | 默认选项 | +======================+===================================+=======================+ | **Mat** | 所有材料的核素密度列表 | flag = 5,输出5位小数 | +----------------------+-----------------------------------+-----------------------+ | **Keff** | 每代的Keff | flag = 1,输出 | +----------------------+-----------------------------------+-----------------------+ | **Source** | 每代的裂变源信息 | flag = 0,不输出 | +----------------------+-----------------------------------+-----------------------+ | **CellTally** | 栅元计数器的结果 | flag = 4,输出4位小数 | +----------------------+-----------------------------------+-----------------------+ | **SurfTally** | 面计数器的结果 | flag = 4,输出4位小数 | +----------------------+-----------------------------------+-----------------------+ | **PointTally** | 点计数器的结果 | flag = 4,输出4位小数 | +----------------------+-----------------------------------+-----------------------+ | **MeshTally** | 网格计数器的结果 | flag = 4,输出4位小数 | +----------------------+-----------------------------------+-----------------------+ | **CsTally** | 截面计数器的结果,包括燃耗 | flag = 4,输出4位小数 | | | 计算过程中的单群截面统计结果。 | | +----------------------+-----------------------------------+-----------------------+ | **CycTally** | 每代的计数 | flag = 0,不输出 | +----------------------+-----------------------------------+-----------------------+ | **Inpfile** | 接续文件输入卡 | flag = 0,不输出 | +----------------------+-----------------------------------+-----------------------+ | **Material2HDF5** | 输出材料信息到HDF5文件 | flag = 0,不输出 | +----------------------+-----------------------------------+-----------------------+ | **FissionSource** | 收敛的裂变源信息 | flag = 0,不输出 | +----------------------+-----------------------------------+-----------------------+ | **BurnupCorrector** | 燃耗计算校正步的计算结果 | flag = 1,输出 | +----------------------+-----------------------------------+-----------------------+ .. note:: 需要注意的是,``Material2HDF5`` 仅在用户选择开启 ``Inpfile`` 时生效。在这种情况下,程序将向 ``material.h5`` 文件中输出材料信息(包括核密度、核素组成等),而不再输出到文本文件中。先比此前的文本文件的输出,输出到HDF5文件中 的材料更易被程序读取,因此在大规模核热耦合计算中可以有效减小输入卡的读取时间。但其内容可读性较差。值得一提的是,为了在将材料输出到 HDF5文件时保留材料的可读性,在RMC的Python模块添加了 ``Materials.from_hdf5`` 函数,用户可通过该函数读取相应的HDF5文件,并将其 转换为文本文件,使用方法如下: .. code-block:: python from RMC.model.input.Material import Materials materials = Materials.from_hdf5('material.h5') with open('material.txt', 'w') as f: f.write(str(materials)) .. caution:: ``Material2HDF5`` 选项仅在开展大规模核热耦合计算时建议开启,以减少程序读取材料文件的时间,加速初始化。 .. caution:: ``BurnupCorrector`` 选项卡用于在燃耗计算开启预估校正方法时,控制输出校正步的计算结果,包括校正步的有效增殖因子、计数统计结果等。 需要注意的是,在核热耦合计算中,由于现有框架下的燃耗计算被拆分为单步燃耗计算,在开启预估校正方法时,校正步的计数结果会覆盖预估步的计数结果(主要是 功率计数文件MeshTally1.h5)。然而,耦合计算事实上需要的是预估步的计数结果,因此在核热耦合计算中,建议设置在``PRINT``选项卡中设置 ``BurnupCorrector 0``。 .. _section_output_example: 输出控制模块输入示例 ------------------------ 对于含大量燃耗区的燃耗计算,建议通过以下输入卡屏蔽材料和单群截面的输出信息,以免 产生庞大的数据文件。 .. code-block:: c PRINT Mat 0 CsTally 0