33. 序列化再启动计算¶
RMC支持使用序列化功能来实现计算中的再启动计算。该功能可用于在RMC停止计算后,重新启动计算。
33.1. 序列化再启动计算模块输入卡¶
SERIALIZE
RESTARTCRITICALITY Write =<flag> Cycles=<cycles_vector_group>
其中,
- SERIALIZE是序列化再启动计算模块的关键词;
- RESTARTCRITICALITY为在临界计算中使用序列化再启动计算输入卡的关键词;
- Write为指定是否输出数据文件,1表示输出,0表示不输出,默认值为0; 当该选项卡为1时,Cycles输入卡中必须有输入。
- Cycles为在临界计算模式下,指定在哪些代计算结束后,以二进制格式输出内存中所有的数据;
例如,在进行临界计算时,在输入卡中添加:
SERIALIZERESTARTCRITICALITY 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代后输出所有的信息。
这里的 数据完整是指存在文件夹且里边有对应文件名的文件,而不会对文件里数据的信息进行合理性检查,所以请不要更改这些自动保存的文件,以确保再启动计算结果的正确性。