33. 序列化再启动计算

RMC支持使用序列化功能来实现计算中的再启动计算。该功能可用于在RMC停止计算后,重新启动计算。

33.1. 序列化再启动计算模块输入卡

SERIALIZE
RESTARTCRITICALITY  Write =<flag>  Cycles=<cycles_vector_group>

其中,

  • SERIALIZE是序列化再启动计算模块的关键词;
  • RESTARTCRITICALITY为在临界计算中使用序列化再启动计算输入卡的关键词;
  • Write为指定是否输出数据文件,1表示输出,0表示不输出,默认值为0; 当该选项卡为1时,Cycles输入卡中必须有输入。
  • Cycles为在临界计算模式下,指定在哪些代计算结束后,以二进制格式输出内存中所有的数据;

例如,在进行临界计算时,在输入卡中添加:

SERIALIZE
RESTARTCRITICALITY Write = 1 Cycles= 3 23 43

程序会分别在第3、23、43代中子模拟结束后输出所有的数据。

程序会在输入卡文件所在目录下新建对应数目(此例中即为3个)的文件夹,文件夹名为“‘CriSerializeFiles’ + 空格 + 代数”,不同代后保存的数据会分别存放在不同的文件夹中。文件夹里的数据文件为二进制格式,一个类的对象对应一个数据文件,文件名即为程序代码中类的对象名,临界计算中保存的数据文件在下表中列出。同一对象在不同代后的数据文件名相同,仅以所在文件夹区分。

文件名 介绍
cCalMode 计算模式
cFixedSource 固定源
cNeutronTransport 中子输运
cPhotonTransport 光子输运
cElectronTransport 电子输运
cAceData ACE截面数据
cCriticality 临界
cMaterial 材料
cGeometry 几何
cParticleState 粒子信息
cConvergence 收敛
cTally 计数器
cBurnup 燃耗
ORNG 随机数
cAdjoint 伴随
cSampling 随机抽样
OXSParaTableVec 截面参数化类
Output 输出类
cellVector 用于对栅元展开式进行快速哈希的类
OParticleTracker 统一控制程序中筛选以及输出粒子事件功能的类
OMeshInfo 网格信息
OWeightWindow 权窗类
OStatus 用于记录RMC运行状态的类

33.2. 数据文件使用

要读入已保存的数据文件进行接续计算时,只需再次运行RMC程序即可,程序会自动检测默认的保存路径下是否有完整的数据文件,选择并读取已完成中子代数模拟最多的数据来进行后续的计算。

例如在先前的例子中,如果已经存在且仅存在“CriSerializeFiles 3”和“CriSerializeFiles 23”文件夹,且里面的数据均完整,程序会读取“CriSerializeFiles 23”里的文件,直接从第24代开始进行中子代模拟计算,且仍会在第43代后输出所有的信息。

这里的 数据完整是指存在文件夹且里边有对应文件名的文件,而不会对文件里数据的信息进行合理性检查,所以请不要更改这些自动保存的文件,以确保再启动计算结果的正确性。