MCNP与后处理软件耦合应用程序开发
2015-12-02何泽鸿叶民友王忠伟毛世峰
何泽鸿 叶民友 王忠伟 毛世峰 徐 坤
1(中国科学技术大学 核科学技术学院 合肥 230027)
2(中国科学院等离子体物理研究所 合肥 230027)
MCNP与后处理软件耦合应用程序开发
何泽鸿1叶民友1王忠伟2毛世峰1徐 坤1
1(中国科学技术大学 核科学技术学院 合肥 230027)
2(中国科学院等离子体物理研究所 合肥 230027)
中子通量密度分布和核热分布计算是聚变堆设计过程中至关重要的一环,其代表性计算软件是基于蒙特卡罗方法的MCNP程序,但计算结果不能直接导入后处理软件Ensight、Paraview、ANSYS等作分析处理。为此开发一款耦合应用程序支持MCNP计算结果数值逻辑操作和到各种后处理软件格式转换,以提升相关人员对MCNP数据分析效率。
蒙特卡罗方法,后处理,Ensight,ANSYS,Paraview,MCNP
MCNP[1]是美国洛斯阿拉莫斯国家实验室开发的一款基于蒙特卡罗方法的粒子运输程序,可以计算复杂三维几何结构的中子、光子、电子或耦合粒子的运输问题。它几何适应性好,可以真实模拟物理问题。如用于熔盐堆不同堆芯边界下的物理研究[2]、中子屏蔽材料的屏蔽性能模拟[3]等,其结果与实际十分符合,所以在辐射屏蔽设计优化、反应堆设计、(次)临界装置实验法等领域应用十分广泛。
MCNP作为聚变堆工程设计中子学和核热分布计算代表性软件,其计算结果存在以文本形式输出、数据量极大、人工直接分析效率低和不直观等问题。
同时,在聚变堆设计过程中,相关设计分析人员不仅需要对MCNP计算结果数据直接进行提取分析,也需要对其计算结果导入到相关分析软件,使MCNP计算体素模型和聚变堆几何模型进行结合[4−5],继而将MCNP模拟计算结果转化为设计指导意见。
为此依托中国科学技术大学核学院“2014年国家磁约束核聚变能发展研究专项”中《CFETR设计软件的集成及堆芯参数的优化》课题,以微软公司的Visual Studio 2010作为程序开发的集成开发环境(IDE),C/C++作为开发语言,在该项目平台下开发MCNP到后处理软件相关接口模块。程序可以封装为相关类作为平台可调用功能模块之一,同时也作为单独可执行耦合应用程序提供相关分析人员使用,以提高相关聚变堆工程设计效率。
本文首先介绍程序的总体框架设计,其次阐述各个功能模块,再次介绍相关功能应用案例。在编码完成后,先采用白盒测试方法完成代码调试,再通过编译器生成相关可执行文件,然后读取MCNP输出计数实例文件进行功能测试。本测试样例采用中国聚变工程试验堆(China Fusion Engineering Test Reactor, CFETR)中子学分析基准模型内部分区域的MCNP模拟计算结果,通过程序转换后导入后处理软件,与CAD模型相结合分析或单独直接可视化处理,籍此提高MCNP结果数据的分析效率。最后对工作进行总结和展望。
1 程序总体框架设计
1.1 程序/代码架构
MCNP与后处理软件耦合应用程序目标在于提供MCNP计算结果到各种后处理软件分析的桥梁,以提高工程设计效率。在整个程序设计中,按照现代软件工程[6]的开发要求,采用针对数据处理的“输入-加工-输出”(Hierarchical Input Process Output, HIPO)结构化分析方法,进行程序框架设计。其基本思路在于,首先将表达问题中的信息、数据的变换和传递过程以数据流图的形式加以表示,然后确定系统整体的数据流模型。
最后,以数据流图代表整个数据处理的系统,按照数据流图分解和抽象工作的步骤,将数据流模型映射为相关软件结构模块,即将数据传送驻留节点设计为相关程序模块。为此,依照数据流图(图1),程序可设计为4个主要功能模块:(1) MCNP计算结果数据读入与存储;(2) MCNP计数结果逻辑操作;(3) MCNP计算结果与Paraview、Ensight耦合;(4) MCNP计算结果与ANSYS耦合。
图1 以数据流形式表现的程序架构Fig.1 Data stream of the application architecture.
1.2 直角坐标MCNP计算结果分析与数据结构设计
数据结构是数据在计算机存储组织形式,是计算机可以直接识别的基本和重要对象。对于以数据流形式分层设计的本程序,数据结构设计直接影响到前面文件读入,中间数据逻辑操作,后面的数据输出功能模块设计。
按上述的数据流模型,在程序前端,MCNP计算结果读入内存后,需要设计相关数据结构进行存储。为此首先需将直角坐标系MCNP计算结果文件的物理结构映射为相关计算机存储的数据结构。
从物理意义角度看,MCNP输出的网格计数类型Meshtal文件(下称计数文件),是由一个经用户创建的称为INP的输入文件卡片经 MCNP 计算得到的文本数据结果,里面含有三维空间离散后网格几何信息和不同入射能量粒子信息,并且包含每一个网格单元某物理量(如中子通量密度)的统计平均值。第一部分“X direction,Y direction,Z direction”为网格几何的坐标信息,代表体素[7]空间的几何信息,“Energy bin boundaries”为粒子的能量信息,代表不同的能量粒子,下面逐行“X,Y,Z,Result,Error”代表每个在笛卡尔坐标系下划分不同网格单元的中心坐标信息、物理属性信息和计算误差值。
从计算机数据结构设计角度看,可以将网格几何每一行数据看做一个浮点数行链表(vector<float>),网格单元数据每一行看做一个整体元祖(Tuple)数据,从上往下看成元祖延展的列链表。
C++中STL模板类[8]提供了丰富可直接使用存储数据的容器,可以使用vector<float>模板对象存储计数文件网格几何数据。利用元祖(Tuple)存储行数据,vector容器(单元为元祖)存储整个计数文件网格单元行信息,数据结构为vector<tuple<string,float,float,float,float>>。
1.3 MCNP计数文件数据逻辑操作
MCNP计算输出的计数文件所含信息随输入控制文件而改变,计数文件大体可划分两种特性类型:一是计数文件可能有多种粒子计算结果,例如一个计数文件同时含有中子、光子的模拟结果;二是相同几何区域MCNP模拟的中子、光子等粒子计数结果分布不同计数文件下。
分析人员对MCNP计数文件内数据操作的功能需求也多样化,常常需要对计数文件内的网格单元的计算结果进行相关数学逻辑操作。例如做热分析人员需要计算全部粒子对一个空间的核热总分布值,但是对于相同网格几何计数文件,各个粒子计算结果分布于不同文件下,程序需要将相同网格几何下不同粒子计数文件的核热数据进行叠加。同时也可能是对于不同粒子计算统计误差取均方根或均值,或对多粒子复合计数文件分解为单粒子的文件,以单独提取各个粒子物理计算信息、误差信息等。
为此程序开发相关数据逻辑操作功能:计算结果的叠加、取平均值、对计算结果进行乘以某一个运算系数、或对复合的计数文件进行分解等,以满足分析人员功能性需求。
1.4 MCNP计算结果与Paraview/Ensight耦合
1.4.1 模块功能需求背景
聚变堆工程设计中MCNP模拟计算数据量动辄几十兆,网格数量少则数万,多则百万级别,对人员大数据分析能力要求较高。面对瀚海数据,分析人员也可能丢失潜在重要信息,若通过人工方法分析某一局部数据,也很难从整体把握数据场分布。
为此,MCNP计算结果分析很长时间内其只能应用在简化的二维计算模型上。
随着计算方法的进步和计算机性能的提升,三维中子学计算成为主流,模型中包含的结果越来越丰富,审视如此大的数据量将消耗很多的时间和精力。在聚变能事业快速发展的背景下,迫切需要发展一种能直观快速分析中子学计算结果的手段,将Paraview或Ensight数据后处理分析软件应用在MCNP计算结果的可视化[9]上就可以很好地满足这种需求。
1.4.2 设计思路
Paraview和Ensight都是可对二维和三维数据进行分析和可视化的后处理软件,两者功能相近,前者是开源免费软件,基于VTK (Visualization toolkit)开发,可以直接使用,后者则是一款商业软件。Ensight对于较大数据规模比Paraview更有优势。同时两者可识别的数据文件格式很多是可以通用,如XML、TSC2文件等。MCNP中子学计算结果经过程序转换后,两者都可以用于其可视化分析和后处理。下面以VTK作为中间层编写到Paraview和Ensight的转换函数。
VTK[10]是一个开放资源的免费软件系统(库),它的内核是用C++构建,主要用于三维计算机图形学、图像处理和可视化。且VTK包含大量各种数据格式输出接口类,支持各种格式的文件输入输出,自然也提供Paraview和Ensight可识别的格式接口支持。
为此将MCNP对Paraview和Ensight的接口模块开发合并与一起。在MCNP计数文件读入内存处理完毕后,利用VTK提供相关输出格式接口类vtkXMLWriter、vtkEnsightWriter等,分别二次封装成相应输出函数(图2),将读取的网格几何数据和网格单元属性数据转换并输出相关可识别文件。
1.4.3 功能验证/效果图
在功能验证部分,采用黑盒测试方式,首先对程序输入输出进行接口测试。在代码通过调试后,再采用相关中国聚变工程设计堆中子学分析基准模型(图3)和工程设计CAD模型(图4)进行程序转换功能验证。
图2 VTK与Ensight (Paraview)Fig.2 VTK to Ensight (Paraview).
图3 中子学分析模型Fig.3 Neutron analysis model.
图4 CAD设计模型Fig.4 CAD design model.
中子学分析模型和CAD设计模型为不同文件,前者仅用于MCNP模拟计算,后者则是工程设计文件,可直接导入Paraview/Ensight等后处理软件。
由于中国聚变工程设计堆中子学分析基准模型尺寸较大,整个模型进行MCNP中子学计算或核热计算时间过于漫长,普通PC电脑硬件平台资源也无法支撑如此巨大计算量。为此仅截取模型的部分区域模块(图3中的两个框),区域1通过MCNP做中子通量密度分布模拟计算,区域2通过MCNP做核热分布模拟计算,然后得到计数文件1(中子通量密度分布)和计数文件2(核热分布)。
在此验证部分,程序转换计数文件1后导入Paraview/Ensight采取与CAD模型结合分析方式(图5)。
图5 计数文件加载于ParaviewFig.5 Count files loaded on Paraview.
先使用程序将计数文件1转换为相应格式,然后将转换后文件和中国聚变工程试验堆的CAD模型(图4)都导入Paraview/Ensight,并设置相关数值到颜色的映射,最后可以直观反映出所选取区域1(图3)的中子通量密度在CAD模型中的分布(图5)。通过区域颜色趋势分布的观察,设计人员可以了解MCNP模拟计算是否符合预期。若将整个中子学设计模型分成多个区域,单独做中子学MCNP模拟计算,通过程序转换导入Paraview/Ensight,则可以看出三维空间整个几何模型的中子通量密度或其他物理量整体分布,这样可视化效果更佳,对工程指导意义更大。
1.5 MCNP计算结果与ANSYS耦合
1.5.1 模块功能需求背景
在聚变堆包层的设计中研究领域包括材料科学、中子物理、热工水力与安全、电磁学等,其中包层设计很多工程中复杂真实的物理系统几何和载荷工况都可以依赖有限元分析[11]方法求解。其中具有代表性有限元分析ANSYS软件,在聚变堆工程设计中核热分析、应力分析[12]和数值模拟分析等方面有十分重要应用基础。
MCNP几何栅元模拟计算是体素空间宏观整体的结果,但工程设计中的几何模块比较复杂,MCNP计算结果中部件几何细节信息会丢失,如果可以对MCNP几何栅元进行进一步细化,则可以更好模拟出各种物理量分布结果。
ANSYS可以对网格几何栅元进行更进一步细化分析。对此,利用MCNP对模型几何栅元进行体素空间宏观数值模拟,设置相关边界条件参数,再应用于ANSYS以有限元办法对几何栅元进行细化二次分析,可以更加真实模拟出包层设计模型中核热等物理量分布。
1.5.2 设计与验证
由于ANSYS可以支持列表类型的TXT文本文件输入,为此MCNP计算结果到ANSYS耦合部分可以利用C++标准库中输入输出函数和类,单独编写ANSYS可识别列表文件输入函数AnsysWriter。
在此验证部分,程序转换计数文件2后导入ANSYS直接做可视化分析处理。
选取前面所述中国聚变工程试验堆中子学标准分析模型(图3)区域2(背板-屏蔽层-真空室(图6)),通过MCNP做热载荷的分布计算,得到输出计数文件2,然后将计数文件2通过程序转换后导入ANSYS,并且设定边界条件和参数,得到相关验证图。
图6 MCNP计算核热网格区域放大图Fig.6 MCNP calculation grid area enlargement of thermal distribution.
加载到ANSYS(图7、8)后,可以直观看出核热的区域分布效果(图9),设计人员将预测分布结果与ANSYS可视化效果进行对比,可以更加准确确定中国聚变工程试验堆设计部件尺寸、材料等各种参数是否合理,进一步优化设计方案。
图7 导入ANSYS效果图示Fig.7 Import ANSYS results illustrated.
图8 ANSYS对网格细化Fig.8 Mesh refinement by ANSYS.
图9 ANSYS分析区域核热分布Fig.9 Analysis of thermal distribution by ANSYS.
2 结语
通过开发 MCNP与后处理软件耦合应用程序,不仅可以将MCNP计算的中子通量和核热分布等结果以直观的可视化形式展示出来,也可以与聚变堆CAD模型叠加显示[13],从而克服中子学简化模型难以反映实际结构的缺点。若在与三维立体[14]虚拟现实系统配合使用时,具有非常好的视觉效果,能极大地提高了审视MCNP结果数据的效率,为分析研究聚变堆内中子的分布规律和快速做出设计决策提供了有效的软件工具。目前程序已经实现MCNP计算结果网格数据逻辑操作和到后处理软件Paraview、Ensight、ANSYS接口转换功能,同时通过大量样例测试,并且预留相关接口用于日后到Fluent、CFX等软件转换功能开发。程序既可以封装为相关类,以作为总体项目《CFETR设计软件的集成及堆芯参数的优化》平台一个功能模块,也可以单独作为一个独立应用程序给以相关人员使用,为相关MCNP模拟计算到实际工程设计决策提高有效工具支持。
1 Los Alamos National Laboratory. MCNP—a general Monte Carlo N-particle transport code[M]. Version 5. Los Alamos: Los Alamos National Laboratory, 2003
2 刘亚芬, 梅龙伟, 蔡翔舟. 熔盐堆不同堆芯边界下的理物研究[J]. 核技术, 2013, 36(3): 030601
LIU Yafen, MEI Longwei, CAI Xiangzhou. Physics research for molten salt reactor with different core boundaries[J]. Nuclear Techniques, 2013, 36(3): 030601
3 戴春娟, 刘希琴, 刘子利. 高密度B4C/Al中子屏蔽材料的蒙特卡罗模拟[J]. 核技术, 2013, 36(3): 030202
DAI Chunjuan, LIU Xiqin, LIU Zili. Monte Carlo simulation of high density B4C/Al neutron shielding materials[J]. Nuclear Techniques, 2013, 36(3): 030202
4 Michael Loughlina, Ahmed Aslamb, Chris Hollandb, et al. Use of MCNP and PARAVIEW for ITER radiation maps[J]. Progress in Nuclear Science and Technology, 2012, 8(1): 5−7
5 Qiu Y F, Lu P, Ulrich F, et al. A generic data translation scheme for the coupling of high-fidelity fusion neutronics and CFD calculations[J]. Fusion Engineering and Design, 2014, 89(1): 1330−1335
6 张海藩. 软件工程[M]. 北京: 清华大学出版, 2010 ZHANG Haifan. Software engineering[M]. Beijing: Tsinghua University Press, 2010
7 郭翰琦, 袁晓如. 体数据可视化传递函数研究[J]. 计算机辅助设计与图形学学报, 2012, 24(10): 1−2
GUO Hanqi, YUAN Xiaoru. Survey on transfer function in volume visualization[J]. Journal of Computer-Aided Design & Computer Graphics, 2012, 24(10): 1−2
8 Josuttis N M. C++标准库——自学教程与参考手册[M].第2版上册. 北京: 人民邮电出版社, 2012 Jousttis N M. The C++ standard library-a tutorial and reference[M]. 2ndEd. Beijing: Posts & Telecom Press, 2012
9 范佳锦, 王义, 程建平, 等. MCNP4B可视化运行平台[J]. 核电子学与探测技术, 2002, 22(1): 1−3
FAN Jiajin, WANG Yi, CHENG Jianping, et al. Development of visual platform of MCNP4B[J]. Nuclear Electronics & Detection Technology, 2002, 22(1): 1−3
10 许庆功, 李昌华. VTK框架结构与运行机制的探讨许庆攻[J]. 洛阳理工学院学报, 2008, 18(1): 1−2
XU Qinggong, LI Changhua. Study for framework and operation mechanism of VTK[J]. Journal of Luoyang Institute of Science and Technology (Natural Science Edition), 2008, 18(1): 1−2
11 孙锋, 潘蓉. 基于ANSYS的核电厂安全壳结构非线性有限元分析[J]. 核安全, 2012, 2(1): 1−3
SUN Feng, PAN Rong. Nonliner finite element analysis of containment structure in nuclear power plant based on ANSYS[J]. Nuclear Safety, 2012, 2(1): 1−3
12 唐雨建, 宁庆坤, 弓振邦, 等. 非能动氢复合器的应力分析和评定[J]. 核技术, 2013, 36(4): 1−2
TANG Yujian, NING Qingkun, GONG Zhenbang, et al. Stress analysis of passive hydrogen autocatalytic recombiner[J]. Nuclear Techniques, 2013, 36(4): 1−2
13 FDS Team. CAD-based interface programs for fusion neutron transport simulation[J]. Fusion Engineering and Design, 2009, 84(1): 1987−1992
14 管伟光, 马颂德. 三维数据可视化技术[J]. CT理论应用与研究, 1995, 4(1): 1−2
GUAN Weiguang, MA Songde. The three-dimensional volumetric data visualization techniques[J]. CT Theory and Applications, 1995, 4(1): 1−2
CLC TL32
MCNP coupled with post-processing software application development
HE Zehong1YE Minyou1WANG Zhongwei2MAO Shifeng1XU Kun1
1(School of Nuclear Science and Technology, University of Science and Technology of China, Hefei 230027, China)
2(Institute of Plasma Physics, Chinese Academy of Sciences, Hefei 230027, China)
Background: Neutron flux and thermal distributed computing are vital parts of the process of nuclear fusion reactor design, its representative calculation software MCNP is based on the Monte Carlo method. However, the output of MCNP is a text file, thus the results are not conveniently and visually represented by manual analysis, and cannot be directly imported into post-processing software such as Ensight, Paraview and ANSYS for processing. Purpose: In order to enhance the efficiency of data analysis of MCNP output, a coupling program between the MCNP and post-processing software is proposed and implemented in this paper. Methods: The Microsoft Visual Studio 2010 (VS2010) is taken as a development platform, the coupling program is developed using C/C++ programming language to perform numerical/logic operations and various kinds of data format conversion required by post-processing software such as Ensight, Paraview and ANSYS, etc. Results: The coupling program was tested via “while-box”method, logical operations of MCNP calculation results, and data format conversion of MCNP data file processed by this program are satisfied for the requirement of the post-processing software for visual analysis. Conclusion: It provides effective support tools that bridge the connection between MCNP and the post-processing software for practical engineering design.
Monte Carlo, Post-processing, Ensight, ANSYS, Paraview, MCNP
TL32
10.11889/j.0253-3219.2015.hjs.38.060601
No.11375191)、CFETR设计软件的集成及堆芯参数的优化(No.2014GB110000)资助
何泽鸿,男,1989年出生,中国科学技术大学核科学与技术学院研三,研究领域为核科学与核技术
叶民友,E-mail: yemy@ustc.edu.cn
2015-03-31,
2015-04-17