34. 序列化再启动计算
RMC支持使用序列化功能来实现计算中的再启动计算。该功能可用于在RMC停止计算后,重新启动计算。
34.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运行状态的类 |
34.2. 数据文件使用
要读入已保存的数据文件进行接续计算时,只需再次运行RMC程序即可,程序会自动检测默认的保存路径下是否有完整的数据文件,选择并读取已完成中子代数模拟最多的数据来进行后续的计算。
例如在先前的例子中,如果已经存在且仅存在“CriSerializeFiles 3”和“CriSerializeFiles 23”文件夹,且里面的数据均完整,程序会读取“CriSerializeFiles 23”里的文件,直接从第24代开始进行中子代模拟计算,且仍会在第43代后输出所有的信息。
这里的 数据完整是指存在文件夹且里边有对应文件名的文件,而不会对文件里数据的信息进行合理性检查,所以请不要更改这些自动保存的文件,以确保再启动计算结果的正确性。