34. 序列化再启动计算

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

34.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运行状态的类

34.2. 数据文件使用

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

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

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