张喜林 王啸宇 彭 倩 邹子强 王嘉赓
(1.核反应堆系统设计技术重点实验室中国核动力研究设计院,四川 成都 610041;2.中国核动力研究设计院,四川 成都 610041)
反应堆设计分析涉及中子物理和热工水力等多个专业。传统反应堆设计优化是由各专业单独开展的。传统方式存在以下不足:
(1)影响设计效率:虽然各专业均是单独完成设计计算,但整体上很多问题的解决仍然需要迭代。由于对其他专业缺乏充分了解,基于人员沟通的迭代过程可能会引起不必要的反复迭代和设计周期的延长。
(2)影响设计经济性:虽然最终完成的反应堆设计可以达到既定的设计目标,但是由于各专业都采用了保守设计,导致反应堆设计整体累积的保守余量过大,虽然极大保证了安全,但需要以过度经济成本作为代价。
(3)在某些现象问题的分析能力上存在不足:受制于计算能力,目前各专业程序通常模型简化程度较高;对某些反应堆关键现象尚未充分认识,或者相关模型尚未发展成熟;多物理耦合效应的现象难以通过现有单独专业程序工具进行分析。这些都不利于挖掘设计余量和提升反应堆性能。
因此,开发高精度专业程序、拓展专业程序能力和开展多专业耦合是改善设计效率和设计经济性的必经之路。这也是数字化反应堆的重要研究内容。
本文首先介绍数字化反应堆统一耦合架构的典型特点,之后对国内外耦合架构进行详细论述和对比,并尝试给出数字化反应堆耦合架构相关的研发建议。
数字化反应堆中的多专业耦合计算平台通常包含:(1)前处理模块,具备CAD 建模、网格划分、输入卡生成等功能;(2)物理求解模块,涵盖热工水力和粒子输运等专业:(3)统一耦合架构,提供方法工具支持实现耦合;(4)后处理模块,具备数据可视化和报告生成等功能。
统一耦合架构方案由耦合调度模型和数据传递模型组成。耦合调度模型用于定义程序的耦合调度方式。数据传递模型用于实现程序间不同类型数据的映射传递。
国际上统一耦合架构有程序耦合和平台融合两种方式。程序耦合,是指被耦合的程序可能基于不同的编程语言、软件设计理念和时空离散方案开发的,需开发额外的程序耦合接口来支持统一接口理念和统一数据传递模型。平台融合,是指所有的物理应用都是基于统一的软件开发架构(包括数据结构、输入格式和可选用的时空离散方案等),经用户设置具体方案后由基础开发架构自动实现程序间耦合控制和数据通信。
2.1.1 VERA(CASL)
为改善轻水堆技术,美国创建了轻水堆先进仿真联盟(CASL)。为了耦合不同专业求解器,CASL 搭建了反应堆建模仿真环境VERA。VERA 内集成了中子物理、热工水力、燃料棒性能分析和化学—力学—几何效应分析等诸多专业程序。为耦合历史遗留程序,VERA 早先基于LIME 开展耦合。之后,LIME 被重新设计为PIKE 并被整合到Trilinos 库里。为实现求解器间数据传递,CASL 开发了开源通用数据传递工具包DataTransferKit。
VERA 典型的耦合开发实例是VERA 堆芯模拟器VERA-CS(中子物理程序MPACT+子通道程序CTF+化学分析程序MAMBA)和Tiamat(VERA-CS+燃料行为分析程序Bison)。
2.1.2 SHARP&MOOSE(NEAMS)
与CASL 项目不同,美国数值反应堆项目NEAMS是围绕先进反应堆和核燃料循环系统。在NEAMS 项目中,美国阿贡国家实验室和爱德荷实验室分别研发了用于耦合已有程序的SHARP 架构和按统一架构开发程序并进行耦合的MOOSE 架构。
在SHARP 架构中,CouPE 用于耦合物理求解器,MOAB 库提供通用网格/场数据格式,MBCoupler 实现非匹配网格间的数据映射。SHARP 已融合中子输运程序PROTEUS、谱元法CFD 程序Nek5000,正在融合结构力学程序Diablo。SHARP 架构支持显式耦合和Picard 迭代算法。SHARP 架构中的典型耦合实例是PROTEUS 和Nek5000 的耦合。
基于LibMesh 和PetsC 等基本库,开源多物理面向对象耦合开发环境MOOSE 提供可拓展的编程架构,方便外部程序按照有限元方法离散求解和JFNK耦合迭代方法实现多物理耦合。LibMesh 库提供统一的网格数据格式。基于MOOSE 架构开发的程序有:燃料行为分析程序BISON、燃料微观结构演化分析程序MARMOT、系统程序Relap-7(内嵌子通道模型)、中子输运程序RattleSNake 和CRUD 微结构模拟器MAMBABDM。经封装集成到MOOSE 中的程序包括:蒙特卡洛程序Okapi(对应OpenMC),CFD 程序Giraffe(对应Nek5000)。
目前,美国NRC 与NEAMS 项目组也在计划合作搭建非水堆综合性分析软件包BlueCRAB。将系统程序TRACE 等NRC 所拥有程序封装集成到MOOSE 架构中,并与MOOSE 架构内与其他程序耦合。
2.2.1 OpenFOAM
国际上开展了一系列基于开源有限体积法CFD程序OpenFOAM 的反应堆多物理耦合求解器开发工作,包括:
(1)瑞士PSI 牵头完成GeN-Foam 求解器的开发。GeN-Foam 耦合了单相热工水力、热力学、多群中子物理、亚尺度有限差分燃料传热和1.5 维燃料棒行为等计算模型。GeN-Foam 采用半隐式Picard 迭代耦合方案。程序间数据映射是基于OpenFOAM 提供的网格单元体积加权算法。
(2)瑞典查尔莫斯理工大学开展了热工水力模型(buoyantSimpleRadiationFoam)和多群中子扩散模型的耦合。
(3)意大利米兰理工大学开发了熔盐堆中子物理-热工水力耦合求解器,用于熔盐堆无保护单泵失效事故分析。热工水力求解器采用OpenFOAM 自带求解器;中子物理求解器采用单群和多群中子扩散模型以及离散纵标中子输运模型。求解器采用6 步4 阶ESDIRK 算法,采用Picard 迭代。
2.2.2 Supervisor 方案
欧盟先后启动了NURESIM 计划、NURISP 计划和NURESAFE 计划,来搭建欧洲多物理耦合模拟参考平台NURESIM。
NURESIM 平台的基础是Salome(开源,数值模拟前处理/后处理/物理程序集成耦合)和URANIE(开源,不确定性分析)两个平台。Salome 平台采用MED 库(支持传统网格和场数据)来统一不同求解器的输入输出并支持程序间数据映射,而耦合接口理念采用通用程序耦合接口理念ICoCo。基于上述理念,欧盟完成的工作包括:
(1)西班牙UPM 完成COBAYA4 和COBRA-TF 的耦合,采用显式耦合方案。
(2)英国Wood 公司完成蒙卡程序MONK 和子通道程序SUBCHANFLOW 的耦合。
(3)德国KIT 完成Serpent2-SUBCHANFLOW-TR ANSURANUS 的核热力多物理耦合,采用半隐式耦合方案。
(4)德国KIT 完成系统程序TRACE 和CFD 程序TrioCFD 的耦合,并提出动态隐式附加源项方法(DIAS)。
(5)法国CEA 开发了MATHYS 多尺度热工水力程序(系统程序CATHARE+子通道程序TrioMC+Trio-CFD),并将Supervisor 程序固化,耦合采用不动点迭代方案。
2.3.1 JASMIN&JAUMIN&JCOGIN
面向高性能科学与工程计算,中国工程物理研究院自主研发了一套高性能科学与工程计算中间件。编程框架中间件可以支持结构网格(JASMIN)、非结构网格(JAUMIN)和实体组合几何(JCOGIN)3 类数值模拟应用程序的快速开发。典型的开发实例是基于JAUMIN 框架的确定论中子输运软件JSNT-U、基于JCOGIN 框架的三维蒙特卡罗粒子输运软件JMCT。
目前只有JASMIN 框架提供联邦计算功能来支持多物理耦合程序并行计算和并行程序间的程序通信,不同框架程序间的耦合和数据映射技术尚未明确提出。
2.3.2 CVR
中国数值反应堆原型系统CVR1.0是由中国科技部负责的“高性能计算”重点专项支持,项目周期为4 年(2017—2021 年)。面向E 级计算,CVR1.0 致力于搭建数值反应堆整体架构,提供多尺度多物理耦合所需工具,提供程序前后处理验证确认所需的工具和技术。目前,CVR1.0 目前取得了以下进展:
(1)开发了子通道程序CVR-PASA、CFD 程序CVRPACA。
(2)开发了粒子模拟程序(分子动力学MISA-MD、蒙特卡罗MISA-KMC 和介观速率理论MISA-RT)。
(3)解决掌握了多堆型精细建模所需的全堆芯统一建模与数据存储映射技术、大规模并行环境下射线追踪技术、适用于CPU/GPU 混合架构的特征线并行优化技术,为特征线全堆芯中子物理程序ANT-MOC奠定技术基础。
2.4.1 MPCCI
MPCCI是由德国Fraunhofer SCAI 开发的商业多物理耦合工具。目前,主流工业程序都提供接口支持MPCCI 耦合。
为支持MPCCI,每个程序需具备以下3 个层次:求解器程序代码层(code layer)、MPCCI 接口代码层(MPCCI layer)和并行MPI 层(MPI layer)。MpCCI 的调度程序是MpCCI CouplingEnvironment,提供耦合管理器,支持全局显式耦合方法和隐式迭代耦合方法等耦合方法。MPCCI 支持不同线程上非匹配网格数据的相互映射,支持节点对节点(PP)、单元对单元(EE)和节点对单元(PE)。
2.4.2 preCICE
开源耦合库preCICE由德国慕尼黑工业大学和德国斯图加特大学联合开发,是E 级计算科学软件开发工具包xSDK 的一部分。
各程序提供的适配接口(adapter),通过链接pre-CICE 库,具备以下功能:跨平台使用,其Adapter 接口开发对程序代码修改很小;支持TCP/IP 和MPI 两种通信方式;支持最近邻插值、基于径向基函数的Black-box 映射等数据映射方法;耦合迭代算法方面,支持静态、动态亚松弛方法、Anderson 加速、广义Broyden 加速技术;支持时间插值。
“程序耦合”统一耦合架构包括欧盟的Supervisor方案(核心是统一接口理念ICoCo+统一数据传递模型MED)、美国的SHARP 架构、德国的MPCCI 工具和preCICE 库以及法国的OpenPALM 库。“平台融合”统一耦合架构包括美国的MOOSE 架构、欧洲的OpenFOAM、中国的J 系列中间件(JASMIN/JAUMIN/JCOGIN)等。
自下而上统一耦合架构可以以“黑匣子”方式来将已有专业程序耦合在一起。而自上而下统一耦合架构则需要将专业程序按照其要求的方式来重新开发。自下而上架构的代码开发量较少,可以较快地完成近期目标。目前有将专业程序都基于自上而下统一耦合架构开发的趋势,从而更好地利用现代软件工程、数值算法和高性能计算技术。然而,目前自上而下统一耦合架构方案众多,一时难分伯仲。长期来看,仍是自下而上和自上而下架构共存的情况。融合不同框架是数字堆发展必须要解决的问题。
耦合接口方案和数据传递模型是耦合架构中的两个主要内容。耦合接口方案强调其通用性,致力于可以实现算符分离、Picard 迭代、JFNK 等耦合迭代算法及其松弛加速技术。数据传递模型则要能够支持不同类型的物理程序计算数据(传统网格、无网格、组合几何等)在程序间可以有效传递,确保数据传递的连续性、守恒性和可适用大规模并行能力。各项目的耦合接口和数据传递方案各有所长,融合不同技术路线对于提升数字化反应堆性能和灵活性具有重要意义。