1. 运行RMC程序¶
通过编译(参见《 compiling 》) 或从程序包中,得到适应当前系统的RMC可执行程序 ,在完成配置数据库、编写输入文件后,即可运行RMC程序进行计算。
本节介绍如何运行程序,后续章节介绍输入文件编写方法。
1.1. 安装配置¶
在运行程序前,需要配置截面数据库。
RMC采用ACE格式中子反应截面数据库,并通过索引文件获得数据库位置进而读取数据。
将数据库(如Library文件夹)拷贝到计算机某一目录
用文本编辑器打开数据库相应的索引文件xsdir,设置数据库文件所在的 完整目录 ,形如 “DATAPATH = E:\Library\endf7_2” (windows) 或 “DATAPATH = /home/username/Library/endf7_2” (Linux)
将输入文件置于RMC可执行程序的目录内,即可运行算例。注意,用户需要让程序知道数据库索引 文件”xsdir”的具体路径以便RMC调用数据库。目前RMC支持以下几种指定”xsdir”路径的方式:
(1)命令行指定:
mpiexec –n MPI进程数 RMC_MPI_OMP -s OMP线程数 输入文件名 -d xsdir文件路径(2)添加环境变量”RMC_DATA_PATH”,形如:
RMC_DATA_PATH=E:\\RMC_DATA (windows) RMC_DATA_PATH=/home/username/RMC_DATA (Linux)(3)使用默认路径,默认当前工作目录的路径:
用户应保证“xsdir”索引文件位于当前工作目录。
1.1.1. 哈希数据类型定义¶
当用户几何定义的栅元层级很高时,哈希数据类型采用unsigned long long (64位)不一定够用。 此时需要在编译环节输入命令:
cmake -Dhash128=on ..
开启哈希128位数据选项。
1.2. 运行命令¶
1.2.1. 串行运行¶
假定串行版RMC可执行程序文件名为“RMC”,串行运行RMC的方法是:通过windows命令控制 台或Linux终端进入RMC可执行程序所在目录,输入以下命令:
Windows系统: RMC [OPTION...] 输入文件名
Linux系统: ./RMC [OPTION...] 输入文件名
注意 :
- 输入文件应与RMC可执行程序处于同一目录,否则应当使用完整的文件路径。
- 输出文件名可省略,程序默认将输入文件名加上后缀“.out”作为输出文件名。对于 燃耗计算,程序还将自动指定后缀“.nuc”和“.power”等作为附加输出文件,用户应避 免输出文件名的冲突。
- 输入文件名如果有后缀,应包含后缀。
- 不建议windows系统下的输入文件和linux系统下的输入文件混用。 Windows系统默认使用ANSI文件编码(中文操作系统中,就是GBK编码), Linux系统默认使用UTF-8文件编码,混用可能导致文件读取失败。 若确有需求,推荐使用 UltraEdit 、 VSCode 等软件手动转换编码格式。
1.2.2. 纯MPI并行运行¶
并行调用RMC需要先在操作系统中配置好MPI并行环境,mpich、impi、openmpi和mvapich等 软件都可以提供MPI并行环境。
以Windows下的MPICH2-1.4.1p1为例,假定并行版RMC可执行程序为“RMC_mpi”,则执行并行 计算的命令为:
mpiexec –n 并行核数 RMC_mpi [OPTION...] 输入文件名
例如 mpiexec –n 10 RMC_mpi -o output input 表示使用10个进程计算,输入文件名为 “input”,输出文件名为”output”。
1.2.3. MPI/OepnMP混合并行运行¶
假定同时使用MPI和OpenMP编译成功的混合并行版RMC可执行程序为“RMC_MPI_OMP”, 则执行并行计算的命令为:
mpiexec –n MPI进程数 RMC_MPI_OMP -s OMP线程数 输入文件名
例如 mpiexec –n 2 RMC_MPI_OMP -s 10 input -o output 表示使用2个进程,每个进程10个线程计算, 输入文件名为”input”,输出文件名为”output”。
1.2.4. python调用RMC运行¶
RMC程序支持用户调用python模块进行计算,计算流程如下:
安装python模块 :进入RMC程序根目录,执行”python setup.py install”安装RMC的python依赖 (或者将RMC项目根目录下的 RMC 文件夹复制到执行目录下)。
配置工作目录文件 :假定用户执行目录名为”directory”,进入该目录,新建”runner.py”文件 (或将RMC程序根目录下 RMC 文件夹中的”runner.py”复制到目录下,建议!!!),新建”workspace”文件夹, 复制RMC可执行程序、程序运行所需数据库文件,如”xsdir, xsdir_sab, DepthMainLib, RMC_DATA.h5”等 到”workspace”文件夹中,在”workspace”文件夹中放入RMC程序输入卡inp。
设置计算条件 :用户可以通过设置”runner.py”文件夹中的相关参数设置计算条件。”runner.py”文件示例如下:
run(inp="workspace/inp", n_mpi=4, n_threads=None, exec="workspace/RMC", status="workspace/status.txt", conti=False, archive_dir=archive, platform='linux')其中, inp 指定输入文件(默认为workspace/inp), n_mpi 指定并行核数, n_threads 指定openmp的 进程数, exec 指定RMC可执行程序位置(默认为workspace/RMC), status 指定输出的状态文件, conti 表示是否执行接续计算, archive_dir 指定输出文件的存放路径, platform 指定计算平台,包括”linux”, “tianhe”, “yinhe”等。
计算 :用户在”directory”目录中执行 python runner.py即可执行
1.3. 测试输入输出¶
程序发布包中的Example文件夹下附带典型算例的输入文件和输出文件,用户可通过计算其 中的某些算例(如“3_1_PWR_assembly、8_1_Burn_PWR_Pin”),以检验程序是否正确安装。
1.4. 试用版功能限制¶
试用版用户需要注意,试用版RMC的最大并行MPI进程数为8,最长运行时间为1000核时,超出最长运行时间会导致程序 中断退出,且不会输出计算结果。该时长足够完成组件的全寿期燃耗计算,或堆芯的多步燃耗计算。
试用版不支持的计算功能有:敏感性与不确定度分析/随机介质与弥散介质/临界搜索 /时空动力学计算功能/群常数/区域分解/计数器数据分解/随机中子动力学/截面参数化/粒子事件追踪(在目录标题上已标出)。
如有对计算时长或功能的额外要求,请联系REAL团队(contact@reallab.org.cn, https://forum.reallab.org.cn), 以协商企业版本或临时试用版本。