<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Energy Res.</journal-id>
<journal-title>Frontiers in Energy Research</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Energy Res.</abbrev-journal-title>
<issn pub-type="epub">2296-598X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1496523</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2024.1496523</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Energy Research</subject>
<subj-group>
<subject>Technology and Code</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Design and implementation of HDF5-format neutron nuclear database in RMC code</article-title>
<alt-title alt-title-type="left-running-head">Wang et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fenrg.2024.1496523">10.3389/fenrg.2024.1496523</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Wu</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/2838078/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Jia</surname>
<given-names>Conglong</given-names>
</name>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Liu</surname>
<given-names>Zhaoyuan</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Kan</given-names>
</name>
<role content-type="https://credit.niso.org/contributor-roles/project-administration/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
</contrib-group>
<aff>
<institution>Reactor Engineering Computational Analysis Laboratory</institution>, <institution>Department of Engineering Physics</institution>, <institution>Tsinghua University</institution>, <addr-line>Beijing</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2257432/overview">Gabriele Croci</ext-link>, University of Milano-Bicocca, Italy</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1082571/overview">Zhang Chunyu</ext-link>, Sun Yat-sen University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2294315/overview">Antonio Jim&#xe9;nez-Carrascosa</ext-link>, Paul Scherrer Institut (PSI), Switzerland</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Zhaoyuan Liu, <email>liuzy7@mail.tsinghua.edu.cn</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>31</day>
<month>10</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2024</year>
</pub-date>
<volume>12</volume>
<elocation-id>1496523</elocation-id>
<history>
<date date-type="received">
<day>14</day>
<month>09</month>
<year>2024</year>
</date>
<date date-type="accepted">
<day>23</day>
<month>10</month>
<year>2024</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2024 Wang, Jia, Liu and Wang.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Wang, Jia, Liu and Wang</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>This study developed a new structured nuclear database to improve the readability and extensibility of the ACE (A Compact ENDF) nuclear database, save disk space, reduce memory usage, and enhance the computational efficiency of the Reactor Monte Carlo (RMC) code. A Python package was developed to store nuclear data in HDF5 format. Compared to the ACE database, the HDF5-format database shows significant improvements: an 80% reduction in disk space for continuous energy neutron data and a 60% reduction for neutron thermal scattering data. The HDF5-format database was implemented in RMC&#x2019;s criticality calculation mode and validated through VERA benchmark problem 2B, demonstrating perfect agreement with the ACE results in <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and neutron flux counts. The Computational results indicate a 7.7% reduction in memory usage and a 20.1% improvement in computational efficiency with the HDF5-format database. Additional tests show that using the database at a single temperature point reduces memory usage by 5.4% and running time by 13.2%. At two temperature points, memory usage decreases by 35.2% and running time by 18.0%. The new data structure reduces temperature-independent redundant data and improves indexing efficiency, leading to greater savings with more temperature points. This development enhances performance of criticality calculation of RMC and addresses ACE database limitations.</p>
</abstract>
<kwd-group>
<kwd>nuclear database</kwd>
<kwd>RMC</kwd>
<kwd>HDF5</kwd>
<kwd>ACE</kwd>
<kwd>VERA</kwd>
</kwd-group>
<contract-num rid="cn001">12105150</contract-num>
<contract-sponsor id="cn001">National Natural Science Foundation of China-China Academy of General Technology Joint Fund for Basic Research<named-content content-type="fundref-id">10.13039/501100019492</named-content>
</contract-sponsor>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Nuclear Energy</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>With the rapid development of supercomputers and the refinement of Evaluated Nuclear Data Files (ENDF), the Monte Carlo (MC) method is increasingly being used for particle transport simulations and is considered the most accurate approach for solving particle transport problems. The high computational accuracy achieved by the Monte Carlo method can be attributed to its sophisticated geometric modeling capabilities and the use of a large number of particle histories. Additionally, the availability of sufficiently detailed nuclear databases plays a crucial role. Most Monte Carlo particle transport simulation software currently relies on the ACE nuclear data developed by Los Alamos National Laboratory (LANL). The ACE was initially designed for the MCNP (Monte Carlo N-Particle) code (<xref ref-type="bibr" rid="B5">Forster and Godfrey, 2006</xref>) developed by the U.S. Department of Energy. Subsequently, numerous MC programs such as Geant4 (<xref ref-type="bibr" rid="B1">Agostinelli et al., 2003</xref>), Fluka (<xref ref-type="bibr" rid="B2">Battistoni et al., 2016</xref>), Serpent (<xref ref-type="bibr" rid="B7">Lepp&#xe4;nen, 2013</xref>), and RMC (<xref ref-type="bibr" rid="B13">Wang et al., 2015</xref>) have also adopted the ACE for their nuclear databases.</p>
<p>The ACE nuclear database contains various data related to simulating nuclear reactions, including microscopic cross-sections for all possible reactions, secondary particle yields, angular and energy distributions, and so on. These data are typically derived from the ENDF evaluated nuclear data files (<xref ref-type="bibr" rid="B12">Trkov and Brown, 2018</xref>). However, ENDF data cannot be directly used in MC programs and must undergo processing to enable sampling of reaction channels and secondary particle distributions. The NJOY program (<xref ref-type="bibr" rid="B8">Macfarlane et al., 2017</xref>) is commonly used to process ENDF-formatted nuclear data into the ACE. In the ACE, the large amounts of nuclear reaction data and their index data are stored in three one-dimensional arrays (NXS, JXS, and XSS). MC programs require complex indexing based on the fixed ACE (<xref ref-type="bibr" rid="B4">Conlin and Romano, 2019</xref>; <xref ref-type="bibr" rid="B11">Sweezy et al., 2003</xref>) to access the various nuclear data stored within the database. Due to the large amount of data, it is impractical to review or extend the nuclear data. Taking the example of the ACE continuous-energy neutron nuclear database for 235U at 293.6K, which is processed from ENDF-B/VIII.0 and provided on the LANL nuclear data website, it contains as many as 76,027 main energy grid points, and the entire XSS array has a staggering 7,168,374 data points, making it practically legible and non-extensible. However, with the continuous development of Monte Carlo software capabilities, there is a growing need for nuclear data that is not available in existing ACE nuclear databases. For instance, energy release data for fine-grained energy deposition and covariance data for sensitivity and uncertainty analysis are required but not present in ACE nuclear data. As a consequence, the lack of extensibility in ACE nuclear database necessitates the creation of separate databases to incorporate the required additional nuclear data. This fragmentation and lack of centralization present challenges in effectively managing and organizing nuclear data resources.</p>
<p>To make it easier for researchers to understand the nuclear database, the Working Party on International Nuclear Data Evaluation Cooperation (WPEC) has proposed a new, simplified, and universally applicable nuclear data structure called General Nuclear Data Structure (GNDS) (<xref ref-type="bibr" rid="B9">Mattoon et al., 2012</xref>). The GNDS defines only the structure required for storing nuclear data and the types of data to be stored, without specifying how the data is stored in a file. The GNDS hierarchical structure can be stored in any format that supports nested data structures, such as XML, JSON, or HDF5. Inspired by the GNDS, Paul Romano et al. have developed a well-structured HDF5-format nuclear database based on ENDF and ACE and applied it to the OpenMC code (<xref ref-type="bibr" rid="B10">Romano and Harper, 2017</xref>). The HDF5-format nuclear database developed in this study features a more detailed hierarchical division of secondary particle energy and angle distributions, enhancing the overall readability of the data. Additionally, a thorough analysis of computational efficiency and memory usage is provided, with a comparison to the ACE database.</p>
<p>The objective of this study is to design and manufacture a nuclear database with a clear hierarchical structure that enables readability of any nuclear data, facilitates easy data extension, and is compatible with the RMC code to save memory and improve efficiency. In this study, a Python code package was developed to parse the ACE nuclear databases and written nuclear data into HDF5-format files according to the new data structure designed in this study. The manufacturing process of the HDF5-format nuclear database is described in <xref ref-type="sec" rid="s2-1">Section 2.1</xref>. <xref ref-type="sec" rid="s2-2">Sections 2.2</xref>, <xref ref-type="sec" rid="s2-3">2.3</xref> present the design of the new structures specifically tailored for continuous-energy neutron and thermal nuclear data, respectively. <xref ref-type="sec" rid="s3">Section 3</xref> provides a description of the application development of the HDF5-format nuclear database within the criticality calculation mode of RMC. <xref ref-type="sec" rid="s4">Section 4</xref> conducted tests and validations on the storage space requirements of the HDF5-format neutron nuclear database, as well as on the correctness, memory usage, and computational efficiency of the criticality calculations performed by RCM using the HDF5-format neutron nuclear database.</p>
</sec>
<sec id="s2">
<title>2 HDF5-format neutron nuclear database design and manufacture</title>
<p>This study presents a Python-based framework for constructing HDF5-format nuclear databases. The developed code package enables complete parsing of ACE nuclear databases, effectively translating ACE nuclear data into an in-memory hierarchy of Python objects. With this package, the generation of HDF5-format nuclear data files is facilitated, ensuring an identical hierarchical structure as the Python objects. The framework consists of the following two components: (1) Xsdir file parsing module: This module is responsible for extracting crucial parameters required for parsing ACE nuclear databases from the xsdir file. (2) ACE nuclear data parsing module: This module focuses on parsing the nuclear data within ACE nuclear databases and generating the HDF5-format nuclear database. It processes the data files, extracts the required information, and organizes it into HDF5-format files according to the designed hierarchical structure.</p>
<p>The subsequent sections will begin by presenting an overview of the comprehensive steps involved in constructing an HDF5-format nuclear database. Subsequently, the data structure of the HDF5-format continuous energy neutron and HDF5-format thermal neutron scattering nuclear databases will be elucidated based on the data structure of Python class objects.</p>
<sec id="s2-1">
<title>2.1 Manufacturing process</title>
<p>The ACE nuclear database consists of a database directory file called &#x201c;xsdir&#x201d; and various nuclear data files. Each nuclear data file may contain one or more nuclear data tables. The xsdir file contains crucial parameters for guiding the parsing of each nuclear data table. Each nuclear data table corresponds to a specific data table identifier in the xsdir file. Taking the example of the continuous-energy neutron ACE nuclear database processed from ENDF-B/VIII.0, provided by the LANL Nuclear Data website, the data table identifiers &#x201c;92235.00c&#x201d; and &#x201c;92235.01c&#x201d; represent the continuous-energy neutron nuclear data tables for 235U at temperatures of 293.6 K and 600 K, respectively.</p>
<p>The manufacturing flow of the HDF5-format nuclear database is illustrated in <xref ref-type="fig" rid="F1">Figure 1</xref>. First, the xsdir file is obtained by taking the user input of the xsdir file path. Within the <monospace>XSDIRparser</monospace> class, the <monospace>Parser</monospace>() function and the <monospace>Format</monospace>() function are constructed to parse and format the xsdir file into a nested dictionary called <monospace>XsdirContents</monospace> which contain the crucial parameters required for guiding the parsing of the ACE nuclear database. In the <monospace>XsdirContents</monospace>, the data table identifiers are represented by strings in the format &#x201c;ZAID.xxx&#x201d;. The parsing parameters include the atomic weight ratio (<monospace>AWR</monospace>) of the nuclide, the relative path (<monospace>Path</monospace>) to the data file containing the data table, the starting line (<monospace>StartLine</monospace>) of the nuclear data in the data file, the number of data points (<monospace>Number</monospace>), and the temperature parameter (<monospace>Temp</monospace>) for continuous-energy neutron and thermal nuclear databases. Next, the user-provided data table identifier string is used to retrieve the necessary parameters for parsing the specific data table from <monospace>XsdirContents</monospace>. If the user inputs &#x201c;all&#x201d; as the data table identifier string, a loop will be used to iterate through <monospace>XsdirContents</monospace>, retrieving the necessary parameters for parsing each data table. The obtained parameters are then passed to the <monospace>ACEParser</monospace> class. Within the <monospace>ACEParser</monospace> class, the <monospace>Parser</monospace>() function is constructed to read the data files of the ACE nuclear database and perform the parsing. The nuclear data from each data table is parsed and stored in a dictionary called <monospace>ACEContents</monospace>, where the data table identifier strings are used as keys, and the parsed nuclear data is stored in corresponding classes. Finally, the parsed nuclear data, organized in the designed structure formed during the parsing process, is efficiently stored in an HDF5-format file by recursively invoking the <monospace>ToHDF5</monospace>() function within each class.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>The manufacturing flow of the HDF5-format nuclear database.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g001.tif"/>
</fig>
<p>Due to the identical secondary particle data, precursor data, and average fission neutron data for continuous energy neutron nuclear data at different temperatures, it is sufficient to parse these data once for each nuclide at various temperatures. As a result, the Python package developed in this study exhibits high efficiency in manufacturing HDF5-format nuclear databases. The computational experiments were conducted on a computing platform featuring an AMD Ryzen 95,900 processor. It takes only 0.5 core-hours to generate a set of HDF5-format continuous energy neutron databases based on the ACE database provided by the Los Alamos Nuclear Data official website. The continuous energy neutron ACE database, based on ENDF-B/VIII.0, contains 3,897 data files and occupies 35.5 GB of storage.</p>
<p>
<xref ref-type="sec" rid="s2-2">Sections 2.2</xref>, <xref ref-type="sec" rid="s2-3">2.3</xref> present the hierarchical design of the continuous energy neutron ACE parser class and thermal neutron scattering ACE parser class, respectively. The design of these parser classes reflects the nuclear data structure of the HDF5-format neutron nuclear database.</p>
</sec>
<sec id="s2-2">
<title>2.2 Continuous energy neutron nuclear database</title>
<p>This subsection presents the hierarchical design of the continuous energy neutron ACE parser class, which reflects the data structure of the HDF5-format database. Additionally, it elucidates various efforts undertaken to conserve disk space.</p>
<sec id="s2-2-1">
<title>2.2.1 Design of the continuous energy neutron ACE parser class</title>
<p>In ACE nuclear database, all nuclear data are stored in <monospace>XSS</monospace> array, and need to use two integer arrays called <monospace>NXS</monospace> and <monospace>JXS</monospace> for data indexing. As shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, five main data blocks are designed based on the data contained in the continuous energy neutron ACE nuclear database, namely, <monospace>Energy</monospace>, <monospace>Reactions</monospace>, <monospace>Nu</monospace>, <monospace>Precursors</monospace>, and <monospace>ProbabilityTable</monospace>. The array Energy serves as a unidimensional repository for the main energy grid. The data blocks Nu, Precursors, ProbabilityTable, and Reactions individually encapsulate data pertaining to the average fission neutron number, delayed neutron precursor nuclei, unresolved region probability tables, and reaction channel details. Each of these data blocks is stored utilizing a Python class objects. Each class in the hierarchy generally corresponds to a group within the HDF5 file.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Top of continuous energy neutron ACE parser class hierarchy.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g002.tif"/>
</fig>
<p>The Reactions data block is encapsulated within the class <monospace>NeutronReaction</monospace>. Reactions block encompasses all reaction channel information for nuclear reactions. Each reaction channel includes reaction cross-sections, associated energy grids, and data on secondary particle products. The secondary particle product data block comprises yield data and distribution data for the secondary particles. The <monospace>NeutronReaction</monospace> class exhibits the highest level of reaction hierarchy, as illustrated in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Neutron reaction channel class hierarchy.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g003.tif"/>
</fig>
<p>The reaction product distribution data block incorporates angular and energy distributions. In addition to the elastic scattering neutrons, each reaction product has one or more energy distributions, which are represented by the abstract class <monospace>Law</monospace>. These distributions can be either angle uncorrelated or correlated, and they are named in Python code using the energy distribution law identifiers from the ACE nuclear database. If the energy distribution is angle correlated, then there will be no angular distribution data in distribution data, otherwise there will be angular distribution data. As depicted in <xref ref-type="fig" rid="F4">Figure 4</xref>, all distribution data have been fragmented. The purpose of this is to facilitate readers in easily locating any desired data within the massive amounts of distribution data. Using <monospace>Law61</monospace> as an example, the <monospace>Energy</monospace> list contains incident neutron energy points. Each incident neutron energy point has an associated angle-energy correlated distribution, with this data stored in the dictionary <monospace>AngErg</monospace>. The keys in <monospace>AngErg</monospace> are indices for the incident energy points, and the values are instances of the distribution data class corresponding to the incident energies. This class is named <monospace>AngErg61</monospace>. Within <monospace>AngErg61</monospace>, the <monospace>ErgOut</monospace> list holds outgoing energy points, and the <monospace>Interpolation</monospace> specifies the method for interpolating between these outgoing energy points. Each outgoing energy point is associated with a set of outgoing angle distribution data, stored in the dictionary <monospace>Mu</monospace>. The keys in Mu are indices for the outgoing energy points, and the values are instances of the angular distribution data class corresponding to outgoing energies. This class is named <monospace>Mu</monospace>, where the <monospace>Type</monospace> attribute denotes the type of angular distribution, which could be either tabular or isotropic. The <monospace>TabCosDistr</monospace> list contains outgoing angle cosine values along with their corresponding PDF (Probability Density Function) and CDF (Cumulative Distribution Function) values, and the Interpolation specifies the method for interpolating between these outgoing angle cosines. For detailed parameters of each law, please refer to the documentation provided in <xref ref-type="bibr" rid="B4">Conlin and Romano (2019)</xref> and <xref ref-type="bibr" rid="B11">Sweezy et al. (2003)</xref>, and exhaustive details are not reiterated herein for brevity.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Distribution class hierarchy.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g004.tif"/>
</fig>
</sec>
<sec id="s2-2-2">
<title>2.2.2 Processing for disk space saving</title>
<p>For continuous energy neutron databases spanning multiple temperatures, the sole distinctions lie in the main energy grid, probability tables, as well as cross-sections and energy grids within the reaction channels. All other dataset components remain invariant across different temperatures. Therefore, in HDF5-format nuclear database, the nuclear data at multiple temperatures do not need to be stored in separate instances as in the ACE. Rather, it suffices to store the main energy grid, probability tables, and reaction channel cross-sections and energy grids categorized by temperature, with the remaining data just storing in a singular instance. This will eliminate redundant nuclear data and significantly reduce data volume.</p>
<p>The energy grid corresponding to reaction channel cross-section data is derived by extracting a subset from the main energy grid. Consequently, in the HDF5-format nuclear database, it suffices to store the starting position (<monospace>ErgBeginPos</monospace> in <xref ref-type="fig" rid="F3">Figure 3</xref>) and the numbers of the energy grid (<monospace>ErgNum</monospace> in <xref ref-type="fig" rid="F3">Figure 3</xref>) corresponding to reaction channel cross-sections as attributes within the <monospace>Energy</monospace> data block under different temperature groups within the <monospace>Reaction</monospace> group. Notably, the <monospace>Energy</monospace> data block itself remains effectively empty.</p>
<p>Empirical research indicates that, in HDF5-format files, storing certain data as attributes rather than datasets can result in storage space savings (<xref ref-type="bibr" rid="B10">Romano and Harper, 2017</xref>). Therefore, some dispersed data, such as nuclide ZA identification (<monospace>ZAID</monospace> in <xref ref-type="fig" rid="F2">Figure 2</xref>), atomic weight ratio (<monospace>AWR</monospace> in <xref ref-type="fig" rid="F2">Figure 2</xref>), database temperature (<monospace>Temperature</monospace> in <xref ref-type="fig" rid="F2">Figure 2</xref>), reaction Q value (<monospace>Q</monospace> in <xref ref-type="fig" rid="F3">Figure 3</xref>), coordinate (<monospace>coordinate</monospace> in <xref ref-type="fig" rid="F3">Figure 3</xref>), and frequently occurring interpolation parameters like <monospace>breakpoints</monospace> and <monospace>interpolations</monospace>, will be stored as attributes within groups or datasets.</p>
</sec>
</sec>
<sec id="s2-3">
<title>2.3 Thermal neutron scattering nuclear database</title>
<p>This subsection presents the hierarchical design of the thermal neutron scattering ACE parser class, which reflects the data structure of the HDF5-format database. The hierarchy of the thermal neutron scattering ACE parsing class is significantly simpler than that of the continuous-energy neutron ACE parsing class, as depicted in <xref ref-type="fig" rid="F5">Figure 5</xref>.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Thermal neutron scattering ACE parser class hierarchy.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g005.tif"/>
</fig>
<p>Thermal neutron scattering reactions encompass incoherent inelastic scattering, coherent elastic scattering, and incoherent elastic scattering. The data within these reaction channels varies with different temperatures. Consequently, in the HDF5-format thermal nuclear database, the data for each reaction channel at multiple temperatures is stored separately under groups named after their respective temperatures. Consequently, unlike the continuous energy neutron HDF5-format nuclear database, the thermal HDF5-format nuclear database does not exhibit a significant reduction in terms of data volume. The reduction mainly involves excluding some index data in ACE files.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Implementation in the RMC criticality module</title>
<sec id="s3-1">
<title>3.1 Design of neutron nuclear data hierarchy in RMC</title>
<p>In the context of utilizing ACE nuclear databases within RMC code, the data retrieval process involves reading the ACE nuclear database data into three distinct one-dimensional arrays: <monospace>NXS</monospace>, <monospace>JXS</monospace>, and <monospace>XSS</monospace> in the class <monospace>Nuclide</monospace>. The <monospace>XSS</monospace> array serves as the repository for nuclear data utilized in particle transport. However, accessing specific data during the particle transport process involves a highly complex indexing procedure. This not only results in inefficient data indexing but also presents significant challenges for developers in terms of code maintenance and feature development. On the other hand, when the input card contains database identifiers for the same nuclide at different temperatures, using the ACE format nuclear database loads all the nuclear data for different temperatures into memory. However, for continuous energy neutron nuclear databases, the secondary particle data, average fission neutron numbers, and precursor data are independent of temperature. Therefore, using the ACE format nuclear database leads to data redundancy and wastage of memory.</p>
<p>In contrast, the adoption of the HDF5-format nuclear database brings a more direct and clear approach to RMC. Within RMC code, a underlying neutron nuclear data structure is constructed, as illustrated in <xref ref-type="fig" rid="F6">Figures 6</xref>&#x2013;<xref ref-type="fig" rid="F8">8</xref>, which aligns hierarchically with the structure of the HDF5-format nuclear database. This design not only allows developers to access all nuclear data within the code but also facilitates easy expansion of the nuclear data structure.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Top of nuclide class hierarchy for continuous energy neutron.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g006.tif"/>
</fig>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Secondary particle distribution class hierarchy for continuous energy neutron.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g007.tif"/>
</fig>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Nuclide class hierarchy for thermal neutron scattering.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g008.tif"/>
</fig>
<p>Considering on-the-fly cross-section processing capability in RMC code (e.g., on-the-fly thermal scattering temperature interpolation), neutron transport calculation efficiency, and consistency with computation results using ACE nuclear database, some special designs have been implemented, as described below.</p>
<sec id="s3-1-1">
<title>3.1.1 Temperature dependence</title>
<p>As shown in <xref ref-type="fig" rid="F6">Figures 6</xref>, <xref ref-type="fig" rid="F8">8</xref>, the <monospace>NucID</monospace> within the nuclear data class is a class object that stores isotope identifiers. For continuous energy neutron nuclear data, this class includes <monospace>NucSymbol</monospace>, <monospace>DatabaseVersion</monospace>, and <monospace>TMP</monospace>, representing the chemical symbol, database version, and temperature point of the database for the nuclide, respectively. For thermal neutron scattering nuclear data, the <monospace>NucID</monospace> contains <monospace>NucSymbol</monospace>, <monospace>DatabaseVersion</monospace>, and <monospace>TMP</monospace>. The <monospace>NucSymbol</monospace>, <monospace>DatabaseVersion</monospace>, and <monospace>TMP</monospace> in <monospace>NucID</monospace> are read from the material card in the RMC input file. <monospace>NucSymbol</monospace> and <monospace>DatabaseVersion</monospace> serve as unique identifiers for the databases. Whenever the same <monospace>NucSymbol</monospace> and <monospace>DatabaseVersion</monospace> appear in the material card, it is considered the same isotope, and all the Kelvin temperatures associated with that isotope in the material card are stored in the <monospace>TMP</monospace> vector. The RMC code retrieves the corresponding nuclear data from the database based on the <monospace>NucSymbol</monospace> and <monospace>DatabaseVersion</monospace>, and then reads the temperature-dependent data based on the Kelvin temperatures in the <monospace>TMP</monospace> vector. The corresponding MeV temperatures are also read from the database and stored in the <monospace>TMP</monospace> vector within the <monospace>Nuclide</monospace> class.</p>
<p>As evident from <xref ref-type="fig" rid="F6">Figure 6</xref>, the temperature-dependent nuclear data in the continuous energy neutron nuclear database includes main energy grid, cross-sections, and probability table. The data dimensions of main energy grid, cross-sections, and probability table correspond to the dimensions of the <monospace>TMP</monospace>. This correspondence ensures that the data for each temperature point in <monospace>TMP</monospace> can be directly accessed and associated with the respective main energy grid, microscopic cross-sections, and probability tables. As shown in the <monospace>Nuclide</monospace> class in <xref ref-type="fig" rid="F6">Figure 6</xref>, the <monospace>ProbabilityTable</monospace> is not designed as a vector. This is because only the probability table is different in the probability table data at different temperatures, while other data (e.g., <monospace>Interpolation</monospace>, <monospace>InelasticCompetitionFlag</monospace>, <monospace>OtherAbsorptionFlag</monospace>, <monospace>MultiplySmoothFlag</monospace> and <monospace>Energy</monospace> in <monospace>ProbabilityTable</monospace> class in <xref ref-type="fig" rid="F6">Figure 6</xref>) are the same. Therefore, in order to reduce redundant data in the database, the probability table in the <monospace>ProbabilityTable</monospace> class is designed to be a four-dimensional tensor corresponding to <monospace>TMP</monospace>. Apart from the main energy grid, reaction cross section, and probability table, other nuclear data are independent of temperature. Therefore, only one copy of these data is stored in memory, significantly reducing memory usage compared to the ACE database when utilizing nuclear data at different temperatures for the same nuclide.</p>
<p>The thermal neutron scattering data is predominantly temperature-dependent. Therefore, in the Nuclide class for thermal scattering, the inelastic scattering (<monospace>Inel</monospace>), coherent elastic scattering (<monospace>CohEla</monospace>), and incoherent elastic scattering (<monospace>IncohEla</monospace>) data are all designed as vectors corresponding to <monospace>TMP</monospace>, as shown in <xref ref-type="fig" rid="F8">Figure 8</xref>. To accurately calculate the thermal neutron scattering distribution, the RMC code has developed an on-the-fly thermal scattering temperature interpolation feature specifically for thermal neutron scattering data. For this purpose, in the <monospace>Nuclide</monospace> class for thermal scattering, the <monospace>OTFSabData</monospace> block is designed to store the thermal neutron scattering data at all temperatures, which is used for online temperature interpolation of thermal scattering.</p>
</sec>
<sec id="s3-1-2">
<title>3.1.2 Cross-section data structure design</title>
<p>Within the Nuclide class as shown in <xref ref-type="fig" rid="F6">Figure 6</xref>, the variables <monospace>TotXS</monospace>, <monospace>ElXS</monospace>, <monospace>InelXS</monospace>, <monospace>AbsXS</monospace>, <monospace>CapXS</monospace>, and <monospace>FisXS</monospace> represent the total cross-section, elastic scattering cross-section, cumulative cross-section of all neutron-producing reaction channels excluding elastic scattering and fission, neutron disappearance reaction cross-section, capture reaction cross-section, and fission cross-section, respectively. The <monospace>InelXS</monospace> is obtained by summing the neutron-producing reaction cross-sections during the database retrieval process and does not correspond to a specific reaction channel. The remaining five cross-sections correspond to specific reaction channels. However, due to their frequent usage in the RMC neutron transport process and to enhance data indexing efficiency, these cross-sections are directly stored in the <monospace>Nuclide</monospace> class instead of their corresponding <monospace>NeutronReaction</monospace> class.</p>
<p>To enhance the accuracy of resonance elastic scattering simulation in the epithermal energy region of heavy nucleus, RMC has developed the Doppler broadening rejection correction (DBRC) function (<xref ref-type="bibr" rid="B3">Brown, 2019</xref>). This feature requires the use of main energy grid and elastic scattering cross-sections of the continuous energy neutron nuclear database at 0 K. Therefore, in the <monospace>Nuclide</monospace> class, this study has designed the <monospace>MainEnergyGridOfDBRC</monospace> and <monospace>ElXSOfDBRC</monospace> vectors to store the main energy grid and elastic scattering cross-sections at 0 K, respectively. Unlike using ACE databases where all nuclear data are loaded into memory, this approach significantly reduces memory consumption.</p>
</sec>
<sec id="s3-1-3">
<title>3.1.3 Calculation consistency design</title>
<p>All data used for criticality calculations in the HDF5-format nuclear database are generated from the ACE nuclear database. Therefore, in order to verify the accuracy of the database construction and ensure the correctness of application development in the RMC code, it is required that the criticality calculation results using the HDF5-format nuclear database match exactly with the results obtained using the ACE nuclear database. To achieve this goal, two specific details should be noted: reaction channel types with secondary neutron emission but exclude elastic scattering and fission must be stored in <monospace>NeuProdReacTypeExcElFis</monospace> (As shown in the <monospace>Nuclide</monospace> class in <xref ref-type="fig" rid="F6">Figure 6</xref>) according to the sampling order in the ACE nuclear database to ensure consistency in reaction channel sampling order. In the same way, the secondary particle energy distributions should be stored in <monospace>ErgDistrs</monospace> following the sampling order in the ACE nuclear database to ensure consistency in the sampling of secondary particle energy distributions.</p>
</sec>
</sec>
<sec id="s3-2">
<title>3.2 Criticality calculation process with HDF5-format nuclear database</title>
<p>
<xref ref-type="fig" rid="F9">Figure 9</xref> shows the criticality calculation flow in RMC. The computational process for inactive cycles is identical to that of active cycles, except for the absence of count statistics. Therefore, the flow chart only depicts the computational process for active cycles.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Criticality calculation flow in RMC.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g009.tif"/>
</fig>
<p>During the initialization process, RMC constructs an index map from the material list to the nuclide list and reads the HDF5-format nuclear database. <xref ref-type="fig" rid="F10">Figure 10</xref> illustrates the index mapping from the material list to the nuclide list based on the HDF5-format nuclear database, while <xref ref-type="fig" rid="F11">Figure 11</xref> shows the index mapping from the material list to the nuclide list based on the ACE nuclear data. A comparison reveals that the nuclide list based on the ACE nuclear database may contain duplicate entries for the same nuclide, such as 92235.00c and 92235.01c, which differ only in the database temperature. However, 92235.00c and 92235.01c contain the same secondary particle data. Therefore, during the calculation process, two identical copies of secondary particle data for 235U will be stored in the memory, and the more temperature points there are, the more redundant data there will be. To eliminate this redundancy, the HDF5-format nuclear database in RMC integrates nuclear data for the same nuclide at different temperatures. Consequently, a temperature list is added for temperature-related data, and during the RMC initialization process, an index mapping from the material list to the nuclide temperature lists is constructed. Once the construction of the index mapping from the material list to the nuclide list is completed, the reading of the HDF5-format nuclear database begins. Simultaneously, the construction of the underlying nuclear data structure, as described in <xref ref-type="sec" rid="s2-2">Section 2.2</xref>, is performed. The database reading process is implemented by invoking the read functions within the c&#x2b;&#x2b; classes shown in <xref ref-type="fig" rid="F6">Figures 6</xref>&#x2013;<xref ref-type="fig" rid="F8">8</xref>.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Nuclide index mapping based on HDF5-format nuclear database in RMC.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g010.tif"/>
</fig>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Nuclide index mapping based on ACE nuclear database in RMC.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g011.tif"/>
</fig>
<p>Subsequently, for each neutron history, ray-tracing is executed along each track until a collision event occurs. During the ray-tracing process, the flight distance of particle is sampled based on the macroscopic total cross-section of the material particle located. Prior to each flight distance sampling, calculations of the macroscopic total cross-sections of all nuclides in the material are performed, and the <monospace>TotXS</monospace>, <monospace>ElXS</monospace>, <monospace>InelXS</monospace>, <monospace>AbsXS</monospace>, <monospace>CapXS</monospace>, and <monospace>FisXS</monospace> are all used to calculate the total cross-section and inelastic cross-section when using unresolved region probability table. Due to the typically large number of particle tracks per history, cross-section calculations are frequently executed during the ray-tracing process. Furthermore, on-the-fly cross-section processing technologies are employed to handle these cross-sections dynamically. Therefore, due to the higher frequency of these cross-section invocations, the cross-section design presented in <xref ref-type="sec" rid="s3-1-2">subsection 3.1.2</xref> becomes imperative.</p>
<p>After ray-tracing, processing of collision type sampling, forced fission, implicit capture, and neutron-producing reactions exclude elastic scattering and fission sampling are performed. During the generation of fission sources and sampling reaction type with neutron production, it is necessary to sample the energy and angular distributions of secondary neutrons. The sampling process no longer relies on the complex data indexing used in the ACE nuclear database. Instead, it involves invoking the <monospace>GetSecParAngDistr</monospace>() function and the <monospace>GetSecParErgDistr</monospace>() function within the <monospace>SecParDistr</monospace> class to retrieve the angular and energy distributions for secondary neutrons, respectively. Subsequently, the <monospace>GetMu</monospace>() function in the <monospace>AngDistr</monospace> class is invoked to determine the emission angle of the secondary neutron, and the <monospace>ReactByLaw</monospace>() function in the sampled energy distribution class object is used to calculate the emission energy of the secondary neutron.</p>
</sec>
</sec>
<sec sec-type="results" id="s4">
<title>4 Results</title>
<sec id="s4-1">
<title>4.1 Test of disk space occupancy of HDF5-format nuclear database</title>
<p>In this study, HDF5-format nuclear databases of continuous energy neutron and thermal neutron scattering nuclear databases are manufactured based on the ACE nuclear database based on ENDF-B/VIII.0, which is provided by LANL database website. Compared to the decimal format continuous energy neutron ACE nuclear database, the HDF5-format database achieved a significant 80% reduction in disk space requirements, while the thermal neutron scattering database demonstrated an equivalent 60% reduction. Furthermore, <xref ref-type="table" rid="T1">Table 1</xref>, <xref ref-type="table" rid="T2">Tables 2</xref>, <xref ref-type="table" rid="T3">3</xref> provide detailed listings of disk space savings for several isotopes and S<inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> nuclides.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Continuous energy neutron nuclear database disk occupancy comparison: HDF5 vs. ACE (decimal).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Isotopic symbol</th>
<th align="center">ACE (MB)</th>
<th align="center">HDF5 (MB)</th>
<th align="center">Disk space savings (%)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">
<sup>1</sup>H</td>
<td align="center">1.5</td>
<td align="center">0.6</td>
<td align="center">60.00</td>
</tr>
<tr>
<td align="center">
<sup>16</sup>O</td>
<td align="center">114.6</td>
<td align="center">10.7</td>
<td align="center">90.66</td>
</tr>
<tr>
<td align="center">
<sup>235</sup>U</td>
<td align="center">1,126.4</td>
<td align="center">274.5</td>
<td align="center">75.63</td>
</tr>
<tr>
<td align="center">
<sup>238</sup>U</td>
<td align="center">1,126.4</td>
<td align="center">181.8</td>
<td align="center">83.86</td>
</tr>
<tr>
<td align="center">
<sup>90</sup>Zr</td>
<td align="center">47.5</td>
<td align="center">10.7</td>
<td align="center">77.47</td>
</tr>
<tr>
<td align="center">
<sup>91</sup>Zr</td>
<td align="center">128.5</td>
<td align="center">22.1</td>
<td align="center">82.80</td>
</tr>
<tr>
<td align="center">
<sup>92</sup>Zr</td>
<td align="center">60.6</td>
<td align="center">12.8</td>
<td align="center">78.88</td>
</tr>
<tr>
<td align="center">
<sup>94</sup>Zr</td>
<td align="center">55.6</td>
<td align="center">13.0</td>
<td align="center">76.62</td>
</tr>
<tr>
<td align="center">
<sup>96</sup>Zr</td>
<td align="center">41.2</td>
<td align="center">7.6</td>
<td align="center">81.55</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Continuous energy neutron nuclear database disk occupancy comparison: HDF5 vs. ACE (binary).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Isotopic symbol</th>
<th align="center">ACE (MB)</th>
<th align="center">HDF5 (MB)</th>
<th align="center">Disk space savings (%)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">
<sup>1</sup>H</td>
<td align="center">0.6</td>
<td align="center">0.6</td>
<td align="center">0.00</td>
</tr>
<tr>
<td align="center">
<sup>16</sup>O</td>
<td align="center">45.4</td>
<td align="center">10.7</td>
<td align="center">76.43</td>
</tr>
<tr>
<td align="center">
<sup>235</sup>U</td>
<td align="center">431.4</td>
<td align="center">274.5</td>
<td align="center">36.37</td>
</tr>
<tr>
<td align="center">
<sup>238</sup>U</td>
<td align="center">418.3</td>
<td align="center">181.8</td>
<td align="center">56.54</td>
</tr>
<tr>
<td align="center">
<sup>90</sup>Zr</td>
<td align="center">18.8</td>
<td align="center">10.7</td>
<td align="center">43.09</td>
</tr>
<tr>
<td align="center">
<sup>91</sup>Zr</td>
<td align="center">51.0</td>
<td align="center">22.1</td>
<td align="center">56.67</td>
</tr>
<tr>
<td align="center">
<sup>92</sup>Zr</td>
<td align="center">23.7</td>
<td align="center">12.8</td>
<td align="center">45.99</td>
</tr>
<tr>
<td align="center">
<sup>94</sup>Zr</td>
<td align="center">22.0</td>
<td align="center">13.0</td>
<td align="center">40.90</td>
</tr>
<tr>
<td align="center">
<sup>96</sup>Zr</td>
<td align="center">16.3</td>
<td align="center">7.6</td>
<td align="center">53.37</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Thermal neutron scattering nuclear database disk occupancy comparison: HDF5 vs. ACE (decimal).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Sab isotopic symbol</th>
<th align="center">ACE (MB)</th>
<th align="center">HDF5 (MB)</th>
<th align="center">Disk space savings (%)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">h-h2o</td>
<td align="center">563.1</td>
<td align="center">226.5</td>
<td align="center">59.78</td>
</tr>
<tr>
<td align="center">zr-zrh</td>
<td align="center">190.1</td>
<td align="center">76.5</td>
<td align="center">59.76</td>
</tr>
<tr>
<td align="center">grph</td>
<td align="center">394.0</td>
<td align="center">157.7</td>
<td align="center">59.97</td>
</tr>
<tr>
<td align="center">be-beo</td>
<td align="center">339.3</td>
<td align="center">135.7</td>
<td align="center">60.01</td>
</tr>
<tr>
<td align="center">o-beo</td>
<td align="center">280.2</td>
<td align="center">112.4</td>
<td align="center">59.89</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Compared to the decimal format ACE nuclear database, the HDF5-format nuclear database significantly reduces the disk space. This is primarily benefit from the data compression capabilities of the HDF5-format file. Furthermore, the disk space savings for the HDF5-format continuous energy neutron nuclear database are much greater than the disk space savings for the HDF5-format thermal neutron scattering nuclear database. This is because, in the case of the continuous energy neutron database, the secondary particle production data at different temperatures of the same isotope is identical. Therefore, only one instance of particle production data is stored in the HDF5-format nuclear database, resulting in a significant reduction in redundant data. To demonstrate this, this study also compared the disk space usage of the binary continuous energy neutron ACE nuclear database with that of the HDF5-format nuclear database. Compared with the binary format continuous energy neutron ACE nuclear database, the HDF5-format database achieved a 50% reduction in disk space requirements.</p>
<p>For the thermal neutron scattering nuclear database, the secondary particle data for different temperatures is different. Thus, the disk space savings for the thermal neutron scattering HDF5-format nuclear database are mainly attributed to the data compression capabilities of the HDF5-format files, without the contribution of reducing redundant data.</p>
<p>
<xref ref-type="table" rid="T1">Tables 1</xref>, <xref ref-type="table" rid="T2">2</xref> indicate that the disk space savings for the continuous energy neutron database of 1H are comparatively lower than those of other isotopes. This is due to the fact that 1H has secondary particle production data only for elastic scattering and capture reaction channels. With a limited amount of secondary particle production data available, the disk space savings for 1H are reduced in comparison to other isotopes.</p>
</sec>
<sec id="s4-2">
<title>4.2 Verification of correctness and testing of efficiency</title>
<p>In this study, the assembly model for VERA benchmark problem 2B was modeled using RMC. The RMC geometry model is illustrated in <xref ref-type="fig" rid="F12">Figure 12</xref>, and the material parameters for the model can be found in reference (<xref ref-type="bibr" rid="B6">Godfrey, 2014</xref>). The temperature of all lattice cell is 600 K.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>RMC assembly model of the VERA benchmark problem 2B.</p>
</caption>
<graphic xlink:href="fenrg-12-1496523-g012.tif"/>
</fig>
<p>The criticality simulations of the assembly model of VERA benchmark problem 2B were conducted with ACE nuclear database and HDF5-format nuclear database. Neutron flux counts in the fuel, moderator, and cladding regions were compared. The functions of unresolved region probability table, on-the-fly thermal scattering temperature interpolation and DBRC were enabled in the calculation. The number of inactive cycles was set to 100, the number of active cycles was set to 400, and the number of histories per cycle was set to 10,000. As presented in <xref ref-type="table" rid="T4">Tables 4</xref>, <xref ref-type="table" rid="T5">5</xref>, the computational results of <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and tally scores were found to be completely consistent, demonstrating the accuracy of the HDF5-format nuclear database as well as the correctness of the criticality calculation process with HDF5-format nuclear database.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>
<inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> results for VERA benchmark problem 2B.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Nuclear database type</th>
<th align="center">Ave</th>
<th align="center">Std</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">ACE</td>
<td align="center">1.171789</td>
<td align="center">0.000315</td>
</tr>
<tr>
<td align="center">HDF5</td>
<td align="center">1.171789</td>
<td align="center">0.000315</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Neutron flux tally results for VERA benchmark problem 2B.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Region</th>
<th align="center">Ave-ACE (/<inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x22c6;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>)</th>
<th align="center">Re-ACE <inline-formula id="inf6">
<mml:math id="m6">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">Ave-HDF5 (/<inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x22c6;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>)</th>
<th align="center">Re-HDF5 <inline-formula id="inf8">
<mml:math id="m8">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Fuel</td>
<td align="center">14.155</td>
<td align="center">2.2278</td>
<td align="center">14.155</td>
<td align="center">2.2278</td>
</tr>
<tr>
<td align="center">Moderator in fuel pins</td>
<td align="center">4.2948</td>
<td align="center">2.2178</td>
<td align="center">4.2948</td>
<td align="center">2.2178</td>
</tr>
<tr>
<td align="center">Cladding in fuel pins</td>
<td align="center">23.574</td>
<td align="center">2.1075</td>
<td align="center">23.574</td>
<td align="center">2.1075</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The parallel computations were performed using both the ACE nuclear database and the HDF5-format nuclear database with 15 MPI processes on the same computing platform, and this experiment was repeated 5 times. As shown in <xref ref-type="table" rid="T6">Tables 6</xref>, <xref ref-type="table" rid="T7">7</xref>, the criticality calculations based on the HDF5-format nuclear database in RMC demonstrated a 20.1% improvement in computational efficiency compared to the criticality source calculations based on the ACE format nuclear database. Furthermore, it achieved a significant reduction in computer memory usage by 7.7%.</p>
<table-wrap id="T6" position="float">
<label>TABLE 6</label>
<caption>
<p>Running time for VERA benchmark problem 2B: HDF5 vs. ACE.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">ACE <inline-formula id="inf9">
<mml:math id="m9">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">HDF5 <inline-formula id="inf10">
<mml:math id="m10">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">Run time savings (%)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">152.9</td>
<td align="center">122.2</td>
<td align="center">20.1</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T7" position="float">
<label>TABLE 7</label>
<caption>
<p>Memory usage for VERA benchmark problem 2B: HDF5 vs. ACE.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">ACE (GByte)</th>
<th align="center">HDF5 (GByte)</th>
<th align="center">Memory savings (%)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">9.1</td>
<td align="center">8.4</td>
<td align="center">7.7</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>As described in <xref ref-type="sec" rid="s3-1-1">Section 3.1.1</xref> and <xref ref-type="sec" rid="s3-2">Section 3.2</xref>, the design of the continuous energy neutron nuclear data structure ensures that temperature-independent nuclear data for the same nuclide is stored only one copy in memory, which significantly reduce memory usage. To demonstrate this, two models were constructed based on the VERA benchmark problem 2B, labeled as case1 and case2. In case 1, the temperature of all fuel rods is set to 293.6 K. In case 2, the temperature of some fuel rods is set to 293.6 K, while the temperature of the other fuel rods is set to 600 K. Consequently, all nuclides in case 1 utilize the database at a single temperature point of 293.6 K, whereas all nuclides in case 2 utilize the database at two temperature points: 293.6 K and 600 K. The parallel computations were performed with 15 MPI processes on the same computing platform. In the calculation, the on-the-fly thermal scattering temperature interpolation and DBRC features were disabled. As shown in <xref ref-type="table" rid="T8">Table 8</xref>, the code running time with the HDF5 format nuclear database is significantly reduced. Moreover, the time savings are greater in case2 compared to case1. As shown in <xref ref-type="table" rid="T9">Table 9</xref>, the memory savings in case2 are more significant compared to case1, demonstrating that eliminating temperature-independent redundant data greatly reduces memory usage. For both case1 and case2, the code running time was compared using the ACE format database and the HDF5 format nuclear database. The calculation for each case was repeated 5 times.</p>
<table-wrap id="T8" position="float">
<label>TABLE 8</label>
<caption>
<p>Running time for case1 and case 2: HDF5 vs. ACE.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Cases</th>
<th align="center">ACE <inline-formula id="inf11">
<mml:math id="m11">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">HDF5 <inline-formula id="inf12">
<mml:math id="m12">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">Run time savings (%)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Case1</td>
<td align="center">129.7</td>
<td align="center">112.6</td>
<td align="center">13.2</td>
</tr>
<tr>
<td align="center">Case2</td>
<td align="center">148.3</td>
<td align="center">121.6</td>
<td align="center">18.0</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T9" position="float">
<label>TABLE 9</label>
<caption>
<p>Memory usage for case1 and case 2: HDF5 vs. ACE.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Cases</th>
<th align="center">ACE (GByte)</th>
<th align="center">HDF5 (GByte)</th>
<th align="center">Memory savings (%)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Case1</td>
<td align="center">5.6</td>
<td align="center">5.3</td>
<td align="center">5.4</td>
</tr>
<tr>
<td align="center">Case2</td>
<td align="center">10.8</td>
<td align="center">7.0</td>
<td align="center">35.2</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The above tests demonstrate that the new data structure design markedly enhances both program memory usage and efficiency. Furthermore, when utilizing databases at various temperature points for the same nuclide, the savings in memory and improvements in efficiency are notably enhanced.</p>
</sec>
</sec>
<sec id="s5">
<title>5 Summary</title>
<p>In this study, a newly structured neutron nuclear database was designed for implementation in Monte Carlo program RMC. Additionally, a Python code package was developed to parse ACE nuclear databases and manufacture HDF5-format nuclear databases based on the designed nuclear data structure. The resulting HDF5-format nuclear database demonstrates exceptional readability. Furthermore, by eliminating redundant data in ACE nuclear database and leveraging the compression characteristics of HDF5 files, a significant reduction in disk space usage is achieved compared to ACE nuclear databases. The thermal neutron scattering nuclear database exhibits a 60% reduction, and the continuous energy neutron nuclear database achieves an 80% reduction in disk space consumption.</p>
<p>A redesign of the underlying neutron nuclear data structure in RMC was conducted using the HDF5-format nuclear database. Additionally, application development was implemented for the criticality calculation module of RMC. Criticality simulations were performed on the assembly model of the VERA benchmark problem 2B using both the ACE nuclear database and the HDF5-format nuclear database. The computed values of <inline-formula id="inf13">
<mml:math id="m13">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and cell neutron flux tally were found to be entirely consistent, which confirms the accuracy of the HDF5-format nuclear database and the correctness of the application development in RMC. Additionally, the computational efficiency and memory usage of RMC criticality calculations were tested and compared using the ACE nuclear database and the HDF5-format nuclear database. The test results indicate that when using the database at a single temperature point, memory usage with the HDF5-format nuclear database is reduced by 5.4%, and the running time is reduced by 13.2%. When using the database at two temperature points, memory usage is reduced by 35.2% and running time by 18.0%. This demonstrates that the new data structure design reduces temperature-independent redundant nuclear data and improves data indexing efficiency. Consequently, the more temperature points used for the same nuclide, the greater the savings in memory and running time.</p>
<p>In summary, this study demonstrates that the HDF5-format nuclear data implemented in the Monte Carlo code RMC surpasses the ACE format nuclear database in terms of readability, extensibility, disk space utilization, computational efficiency, and memory usage.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>Publicly available datasets were analyzed in this study. This data can be found here: <ext-link ext-link-type="uri" xlink:href="https://nucleardata.lanl.gov/">https://nucleardata.lanl.gov/</ext-link>.</p>
</sec>
<sec sec-type="author-contributions" id="s7">
<title>Author contributions</title>
<p>WW: Conceptualization, Data curation, Methodology, Software, Validation, Visualization, Writing&#x2013;original draft. CJ: Validation, Writing&#x2013;review and editing. ZL: Funding acquisition, Writing&#x2013;review and editing. KW: Project administration, Supervision, Writing&#x2013;review and editing.</p>
</sec>
<sec sec-type="funding-information" id="s8">
<title>Funding</title>
<p>The author(s) declare that financial support was received for the research, authorship, and/or publication of this article. Supported by the National Natural Science Foundation of China (No. 12105150).</p>
</sec>
<ack>
<p>I would like to express my sincere gratitude to the Reactor Engineering Computational Analysis Laboratory for providing the research platform. I am deeply thankful to my advisor, KW, for his invaluable support throughout my research. My heartfelt appreciation also goes to CJ and ZL for their invaluable contributions and insightful guidance.</p>
</ack>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Agostinelli</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Allison</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Amako</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Apostolakis</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Araujo</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Arce</surname>
<given-names>P.</given-names>
</name>
<etal/>
</person-group> (<year>2003</year>). <article-title>Geant4&#x2014;a simulation toolkit</article-title>. <source>Nucl. Instrum. Methods Phys. Res. Sect. A Accel. Spectrom. Detect. Assoc. Equip.</source> <volume>506</volume>, <fpage>250</fpage>&#x2013;<lpage>303</lpage>. <pub-id pub-id-type="doi">10.1016/S0168-9002(03)01368-8</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Battistoni</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Bauer</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Boehlen</surname>
<given-names>T. T.</given-names>
</name>
<name>
<surname>Cerutti</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Chin</surname>
<given-names>M. P.</given-names>
</name>
<name>
<surname>Dos Santos Augusto</surname>
<given-names>R.</given-names>
</name>
<etal/>
</person-group> (<year>2016</year>). <article-title>The fluka code: an accurate simulation tool for particle therapy</article-title>. <source>Front. Oncol.</source> <volume>6</volume>, <fpage>116</fpage>. <pub-id pub-id-type="doi">10.3389/fonc.2016.00116</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Brown</surname>
<given-names>F. B.</given-names>
</name>
</person-group> (<year>2019</year>). <source>Doppler broadening resonance correction for free-gas scattering in MCNP6. 2</source>. <comment>Technical report</comment>. <publisher-loc>Los Alamos, NM (United States)</publisher-loc>: <publisher-name>Los Alamos National Laboratory</publisher-name>.</citation>
</ref>
<ref id="B4">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Conlin</surname>
<given-names>J. L.</given-names>
</name>
<name>
<surname>Romano</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2019</year>). <source>A compact endf (ace) format specification</source>. <publisher-loc>Los Alamos (NM)</publisher-loc>: <publisher-name>Los Alamos National Laboratory</publisher-name>.</citation>
</ref>
<ref id="B5">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Forster</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Godfrey</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2006</year>). &#x201c;<article-title>Mcnp-a general Monte Carlo code for neutron and photon transport</article-title>,&#x201d; in <conf-name>Monte-Carlo Methods and Applications in Neutronics, Photonics and Statistical Physics: Proceedings of the Joint Los Alamos National Laboratory-Commissariat &#xe0; l&#x2019;Energie Atomique Meeting</conf-name>, <conf-loc>Cadarache Castle, Provence, France</conf-loc>, <conf-date>April 22&#x2013;26, 1985</conf-date> (<publisher-name>Springer</publisher-name>), <fpage>33</fpage>&#x2013;<lpage>55</lpage>.</citation>
</ref>
<ref id="B6">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Godfrey</surname>
<given-names>A. T.</given-names>
</name>
</person-group> (<year>2014</year>). <source>VERA core physics benchmark progression problem specifications</source>. <comment>Technical report</comment>. <publisher-loc>Oak Ridge, TN (United States)</publisher-loc>: <publisher-name>Oak Ridge National Laboratory</publisher-name>.</citation>
</ref>
<ref id="B7">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Lepp&#xe4;nen</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2013</year>). <source>Serpent&#x2013;a continuous-energy Monte Carlo reactor physics burnup calculation code</source>. <publisher-loc>Finland</publisher-loc>: <publisher-name>VTT Technical Research Centre of Finland</publisher-name>.</citation>
</ref>
<ref id="B8">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Macfarlane</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Muir</surname>
<given-names>D. W.</given-names>
</name>
<name>
<surname>Boicourt</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Kahler III</surname>
<given-names>A. C.</given-names>
</name>
<name>
<surname>Conlin</surname>
<given-names>J. L.</given-names>
</name>
</person-group> (<year>2017</year>). <source>The NJOY nuclear data processing system, version 2016</source>. <comment>Technical report</comment>. <publisher-loc>Los Alamos, NM (United States)</publisher-loc>: <publisher-name>Los Alamos National Laboratory</publisher-name>. <pub-id pub-id-type="doi">10.2172/1338791</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mattoon</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Beck</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Patel</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Summers</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Hedstrom</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Brown</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Generalized nuclear data: a new structure (with supporting infrastructure) for handling nuclear data</article-title>. <source>Nucl. Data Sheets</source> <volume>113</volume>, <fpage>3145</fpage>&#x2013;<lpage>3171</lpage>. <pub-id pub-id-type="doi">10.1016/j.nds.2012.11.008</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Romano</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Harper</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Nuclear data processing capabilities in openmc</article-title>. <source>EPJ Web Conf.</source> <volume>146</volume>, <fpage>06011</fpage>. <pub-id pub-id-type="doi">10.1051/epjconf/201714606011</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Sweezy</surname>
<given-names>J. E.</given-names>
</name>
<name>
<surname>Booth</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Brown</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Bull</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Forster III</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Goorley</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2003</year>). <source>Mcnp a general Monte Carlo n-particle transport code, version 5</source>. <publisher-loc>Los Alamos, NM</publisher-loc>: <publisher-name>Los Alamos National Laboratory</publisher-name>.</citation>
</ref>
<ref id="B12">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Trkov</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Brown</surname>
<given-names>D. A.</given-names>
</name>
</person-group> (<year>2018</year>). <source>ENDF-6 formats manual: data formats and procedures for the evaluated nuclear data files</source>. <comment>Technical report</comment>. <publisher-loc>Upton, NY (United States)</publisher-loc>: <publisher-name>Brookhaven National Laboratory</publisher-name>. <pub-id pub-id-type="doi">10.2172/142511</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>She</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Qiu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2015</year>). <article-title>Rmc&#x2013;a Monte Carlo code for reactor core analysis</article-title>. <source>Ann. Nucl. Energy</source> <volume>82</volume>, <fpage>121</fpage>&#x2013;<lpage>129</lpage>. <pub-id pub-id-type="doi">10.1016/j.anucene.2014.08.048</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>