1 Introduction

The accelerator-driven subcritical system (ADS) has been studied for the transmutation of minor actinides and long-lived fission products. An ADS has a harder neutron spectrum for high-level waste transmutation and a higher safety margin compared with fast reactors [1]. It consists of three parts: the accelerator, target, and subcritical reactor [2]. The neutronics analysis in the ADS target–reactor coupling calculation includes the simulation of the spallation reaction process of high-energy protons, the spallation neutron transport process in the target materials and structural materials, and the transport of neutrons in the subcritical reactor.

At present, the most widely used Monte Carlo program for calculation of the ADS is MCNPX [3], which was developed by Los Alamos National Laboratory. It can not only simulate the interaction between protons and the target material, but also simulate neutron transport at energies greater than 20 MeV by using a high-energy database and the built-in physical model for the calculation of the required data on the cross sections [4]. Thus, MCNPX can independently perform the neutronics calculations without coupling with another program. It offers a so-called one-step calculation method.

A two-step calculation method for ADSs can be realized by coupling the spallation reaction simulation program with the code for the neutron transport simulation in the subcritical core. First, the process of proton bombardment of the target is simulated by high-energy particle Monte Carlo transport codes such as NMTC/JAM [5], FLUKA [6], and Geant4 [7], and the distribution of the spallation neutron source terms is obtained. Then, a Monte Carlo or deterministic program is used to read the spallation neutron source and continue the neutron transport process.

This method is used for the EA-MC [8] packages developed by Kadi at CERN. They used FLUKA to simulate the spallation reaction process of protons and transfer the neutrons with energies below 20 MeV to the EA-MC program to continue transport in the core of a subcritical reactor, so the three-dimensional distribution of the neutron flux can be obtained. In addition, Neuhold in Italy coupled FLUKA and the CMCS program to design an experimental ADS device [9]. In other code systems such as ATRAS [10] and LAVENDER [11], neutrons with energies greater than 20 MeV were also ignored in the transport process in the core of a subcritical reactor, which can affect the flux and burnup calculation. However, the transport of high-energy neutrons in the second step of the two-step method can be realized for the development of the new open-source Monte Carlo code OpenMC [12] and high-energy neutron cross-section database JENDL4.0/HE, etc., in which the upper energy has a flexible limit, not a fixed energy limit such as the 20 MeV limit of Serpent, etc. Thus, if the energy of the ACE cross-section file can reach hundreds of megaelectron volts or gigaelectron volts, then the transport of high-energy neutrons can be achieved [13].

In this paper, a coupled calculation using FLUKA and OpenMC was developed for the target–reactor coupling calculation of an ADS. A high-energy ACE cross-section library produced by JENDL4.0/HE was used for neutron transport in OpenMC. The ADS benchmark was used to verify the work.

2 Calculation method and model

The target–reactor coupling calculation in ADS consists of simulation of the spallation reaction induced by protons and neutron transport in the subcritical reactor core. It can be achieved by coupling FLUKA and OpenMC. The overall calculation process is shown in Fig. 1. In the process, there are three key issues. The first is the recording of neutron source information, including the position of emission, angle (directional cosine), energy, and weight, by the user-defined FLUSCW program in FLUKA; the second is the use of the source conversion code to convert the FLUKA output neutron source information to the HDF5 format [14], in which OpenMC can read; and the third is the production of a high-energy neutron database in ACE format by NJOY2016 [15]. Finally, the neutron flux distribution in the core can be obtained by the fixed-source calculation of OpenMC.

Fig. 1
figure 1

Flowchart of coupled FLUKA–OpenMC calculation

2.1 Recording of spallation neutron source

FLUKA provides many options in the user card to meet most of the tally recording and variance reduction needs of the application. In most cases, users do not need to write their own program. However, in some special cases, a user-defined program is necessary, because the required information cannot always be obtained by applying a standard user option. Therefore, FLUKA provides a series of links for user-defined modules to meet users’ special needs [16].

To obtain the related information about the spallation neutrons, such as the energy, weight, location, and orientation, we need to specify the tally using the user-defined FLUSCW program provided by FLUKA. By specifying some logical definitions in the program (in this case, specifying the particles that cross from the target area to outside of the target), the variable information provided in FLUSCW is returned, including the type of particle, particle momentum/energy, particle position, and particle angle given by the direction cosines.

In order to call the user-defined module, the user first needs to compile it through the FFF script provided by FLUKA using the command $FLUPRO/flutil/ffffluscw.f.

This generates a fluscw.o file, in which the user needs to link to the FLUKA library through the lfuka script: $FLUPRO/flutil/lfuka -o myfluka -m flukafluscw.o.

Finally, we can start the calculations using the -e myfluka command through the rfluka script: $FLUPRO/flutil/rfluka -N 0 -M 5 userinput.inp -e myfluka.

Here, $FLUPRO/flutil is the installation directory of the FLUKA executable script.

2.2 External source format of OpenMC and source conversion program

In the fixed-source calculation mode, two types of external source definition are provided by OpenMC: One specifies the source parameters (including the position, angle, and energy distribution), which are used for sampling from the distribution; the other specifies the location of the file that records the external source information.

Owing to the limitations of OpenMC source distribution sampling, in this paper, we consider the use of a given exogenous file to specify the external source so that it can accurately retain the information on the spallation neutron source.

In OpenMC, external neutron sources are recorded and read in the HDF5 format, which is a self-described format with multiple objects created by the National Supercomputing Center for exporting and distributing data. It can meet the needs of scientists in various fields in practical applications and has good self-narration, versatility, flexibility, extensibility, and cross-platform features. Its data structure in OpenMC is shown in Fig. 2. The external source file consists of two data sets. The first data set is a string indicating the type of HDF5 file; for external sources, the value is “source”. The second data set is a structured array that contains weights “wgt”, the direction cosine array “uvw”, the position array “xyz”, the energy E, the delayed neutron group, etc.

Fig. 2
figure 2

Schematic diagram of OpenMC external source in HDF5 format

The output file of the neutron source information calculated by FLUKA is in the TXT format, so conversion from the TXT format to the HDF5 format is necessary for the coupling calculation. The process consists of two steps. First, we need to transform the TXT file to binary format through a conversion code that can read each type of spallation neutron source information and write it to a binary file using the definition of the dynamic structure array. In the process, the user needs to ensure that the type of each parameter is consistent with the definition in OpenMC by referring to the definition of the source_bank structure array in the OpenMC source code. Further, the conversion of the energy unit GeV used in the FLUKA output file to the unit of MeV in the OpenMC input file should also be considered. Second, we need to use the Python script h5py provided by the OpenMC program to convert the binary file to HDF5 format.

2.3 High-energy neutron cross-section library

The energy of protons in an ADS often reaches hundreds of megaelectron volts to several gigaelectron volts, and the spallation neutron energy distributions often range from 10−5 eV to gigaelectron volts. The existing evaluation database is unable to meet the requirements for analysis of ADSs [17]. At present, the database for analysis of the subcritical reactor in an ADS is based on an existing nuclear reactor design database or an existing nuclear database that has been improved, in which the upper boundary of the neutron energy is generally set to 20 MeV, so the effect of neutrons above 20 MeV is not considered.

For MCNPX, when the particle energy exceeds the limit of the database, the program will use a physical model to simulate the high-energy nuclear reaction. However, the cross-section information needed for the OpenMC transport calculations is all derived from the nuclide database, so the neutron energy limit depends on the cross-section library used.

In order to consider the effect of the high-energy spallation neutrons on the coupling calculation, we produce a high-energy neutron cross-section library based on the JENDL4.0/HE [18] evaluation library, which is Japan’s high-energy evaluation library in ENDF6 format. It contains neutron nuclear reaction data for 130 nuclides with an energy limit of 200 MeV. The ENDF6-formatted database can be converted to the ACE format, which can be used by OpenMC, using NJOY2016, a computer code package for producing pointwise and multigroup cross sections and related quantities from evaluated nuclear data, and consists of a set of modules that perform distinct processing tasks. For example, the function of the RECONR module is to reconstruct pointwise cross sections from an ENDF file; the HEATR module generates pointwise heat production cross sections and radiation damage production cross sections; the ACER module is used to produce ACE-formatted libraries for the Monte Carlo code and so on [19]. Figure 3 shows the calculation flow of NJOY2016.

Fig. 3
figure 3

Flowchart of NJOY2016 processing of JENDL4.0/HE

In the NJOY2016 process, the temperature of the nuclides is set to 300 K; the other major parameters are listed in Table 1. The output result of NJOY2016 is an ACE-formatted cross-section file and an Xsdir file for the nuclides. Xsdir is the index file of the nuclide section library location used in the MCNPX program. In order for OpenMC to call the relevant data in the high-energy cross-section library, it is necessary to add the relevant nuclide information to the cross-section index file, cross_section.xml, which can be created by a Python script, openmc-xsdir-to-xml.py, provided by OpenMC.

Table 1 Parameters of NJOY2016 input

Some basic attributes are set in the cross_sections.xml file: <directory> specifies the file directory where the database is located; <filetype> specifies the file type of the cross-section library; <ace_table> specifies the index position of a nuclide, including “alias,” for the alias of the nuclide; “awr,” for the ratio of the nuclide mass to the neutron mass; “location,” for the position of the nuclide in the ACE file; “name,” for the nuclide name; “path,” for the nuclide cross-section library file name, “temperature,” for the nuclide temperature; and “zaid,” for the nuclide mark. Thus, OpenMC can obtain the required cross sections in the ACE-formatted library through the cross_sections.xml index file.

2.4 OECD–ADS benchmark model

After the high-energy cross-section database was produced, we calculated the OECD–ADS benchmark [20] to verify the correctness of FLUKA and OpenMC for the target–reactor coupling calculation. The OECD–ADS benchmark problem was proposed by the Organization for Economic Cooperation and Development (OECD) and used to verify the ADS core calculation procedures and nuclear database; the results contributed to this benchmark exercise by seven institutions were provided [21]. The geometry of the benchmark model consists of four parts: the lead and bismuth target, vacuum beam tube, uniform core area filled with fissile material, and steel reflective layer. The entire core is cylindrical; the specific RZ model is shown in Fig. 4. Further, the main parameters of the spallation target are given in Table 2.

Fig. 4
figure 4

(Color online) OECD–ADS benchmark model

Table 2 Parameters of spallation target

3 Results and discussion

FLUKA–OpenMC was used for the analysis according to the OECD–ADS model, and the results were compared with those calculated by MCNPX to verify the rationality of the coupling calculation. The cross sections are from the ENDF/B-VII.0 and JENDL4.0/HE high-energy libraries. The content includes the calculated spallation neutron spectrum and neutron flux density distribution.

3.1 Calculation and comparison of spallation neutron source term

For the ADS problem, FLUKA is used to simulate the spallation process of protons with the materials in the target zone. The information on spallation neutrons passing through the target surface into the core is recorded by the FLUSCW.f user-defined program, and neutron transport in the subcritical reactor core is carried out using OpenMC. The neutron information on the spallation source includes the outgoing neutron position (x, y, z), direction cosine (Tx, Ty, Tz), energy E (GeV), and weight W. MCNPX has a proton transport module and can output the specific surface neutron energy, weight, coordinate, direction cosine, and so on through the SSW recording card, so the neutron source information can be given.

Table 3 shows the spallation neutron information recorded by the two programs after 5 × 104 protons with 1 GeV bombarded the liquid lead–bismuth target in the OECD–ADS model. The neutron yield per proton calculated by FLUKA is approximately 7.62% higher than that of MCNPX, but the average energy is approximately 9% lower. For high-energy neutrons with energies above 20 MeV, FLUKA and MCNPX give shares of 3.37% and 3.34%, respectively. In order to observe the neutron spectrum visually, we count the neutrons in 126 energy groups up to 1 GeV. Figure 6 shows the energy spectra. Further, Fig. 5 provides a reference target volume-averaged spectrum calculated by the Paul Scherrer Institute using the code HETC. It can be seen that the normalized leakage neutron distributions calculated by FLUKA and MCNPX show good agreement and have a shape similar to that in Fig. 5. Because of the neutron moderating effect, the leakage spectrum in Fig. 6 is softer than the volume spectrum in Fig. 5. We still calculated the axial distribution of spallation neutrons in the incident direction of the protons; the result is shown in Fig. 7. It shows that the spallation neutrons leaking from the target wall are concentrated mainly in the area with a proton penetration depth of 20 cm. Overall, the FLUKA results for the neutron source term calculation are reasonable compared with those of MCNPX.

Table 3 Spallation neutron source terms
Fig. 5
figure 5

Normalized neutron spectrum in target volume zone for 1 GeV protons

Fig. 6
figure 6

(Color online) Normalized leakage neutron spectra for 1 GeV protons

Fig. 7
figure 7

(Color online) Axial distribution of spallation neutrons

3.2 Coupling calculation results

In order to evaluate the accuracy of OpenMC for core calculation, the MCNPX calculation was used as a reference to establish the target–reactor coupling calculation model of the OECD–ADS; the calculation results of other institutions from the benchmark manual were also used as a basic reference. The results of the keff calculation and the neutron flux distribution obtained by the fixed-source calculation were compared.

3.2.1 Calculation of start-up core k eff

In the calculation of the keff, each run of MCNPX and OpenMC has 10 inactive batches and 90 active batches, each with 1 × 105 particles. Table 4 shows the values of the keff calculated using different databases and programs. The maximum difference in the keff value is 0.1% if OpenMC and MCNPX use the same cross-section library. Further, the keff value calculated using the JENDL4.0/HE library is 0.4% and 0.5% larger than that calculated using ENDF/B-VII for OpenMC and MCNPX, respectively. The result is within the acceptable range. The maximum reference keff of 0.98554 is given by ANL using the ENDF/B-VI library, and the minimum one of 0.94546 is given by KAERI using JEF-2.2. The result in Table 4 is within the reference range, so the high-energy library produced from JENDL4.0/HE is reliable for keff calculation.

Table 4 Comparison of keff values calculated by different databases and programs

3.2.2 Comparison of neutron flux distribution in the core

OpenMC reads the neutron source files in HDF5 format from the FLUKA calculation output and uses the fixed-source calculation function to obtain the neutron flux distribution produced by these spallation neutrons in the core. This section will compare the neutron flux distributions calculated by OpenMC and MCNPX using the ENDF/B-VII and JENDL4.0/HE databases with the results obtained by other institutions to evaluate the accuracy of the high-energy cross-section libraries and the FLUKA–OpenMC coupling method.

The normalized neutron flux spectra in the fuel region at R = 56 cm and Z = 100 cm are shown in Fig. 8. OpenMC and MCNPX are abbreviated as OC and MX, respectively; the ENDF/B-VII and JENDL4.0/HE libraries are abbreviated as EN70 and JL/HE, respectively, so that the combinations of Monte Carlo code and data library can be clearly identified. In the flux spectrum, OpenMC and MCNPX give approximately the same distribution when ENDF/B-VII and JENDL4.0/HE are used. Further, the SCK·CEN and RIT spectra are in good agreement with the OpenMC and MCNPX spectra, whereas the JAERI spectrum is softer than the others. The CIEMAT spectrum matches the other spectra well in the energy range above 1 keV, but the differences between the results become obvious in the lower-energy region below 1 keV. The differences between these spectra in some local regions may be due to the different data library and codes used in the calculation. Overall, the results of OpenMC are in agreement with the institutional reference spectra.

Fig. 8
figure 8

(Color online) Neutron flux spectra at R = 56 cm and Z = 100 cm

By mesh counting, the distribution of the neutron flux from 0 to 200 cm in the Z direction at R = 56 cm is calculated. As shown in Fig. 9, the axial distributions of the neutron flux obtained by the two procedures are similar when different cross-section libraries are used. In the fuel region around Z = 100 cm, RIT gives the maximum flux value, which is close to our results, whereas CIEMAT has a lower neutron flux than the others. In the reflector zone, the results of SCK·CEN, JAERI, CIEMAT, and RIT show no obvious difference. In summary, the result of OpenMC employing JENDL4.0/HE is credible in terms of the overall distribution.

Fig. 9
figure 9

(Color online) Axial flux distribution at R = 56 cm in core region

According to the calculation result for the keff and neutron flux distribution of the OECD–ADS model, the flux spectrum and axial distribution are reliable compared with other institutions’ results and the MCNPX results. Thus, use of the coupled FLUKA–OpenMC method and JENDL4.0/HE high-energy library is feasible for ADS target–reactor calculations.

4 Conclusion

Coupled calculations by FLUKA and OpenMC are used for neutronics analysis of the spallation target and subcritical reactor in an ADS. By using a source file conversion program, the spallation neutron information obtained by FLUKA is converted to HDF5 format and used by OpenMC to complete the neutron transport in the reactor. In order to consider the transport of high-energy neutrons, the NJOY2016 program is used to process the JENDL4.0/HE high-energy evaluation library to generate ACE-formatted cross sections for OpenMC and MCNPX.

Coupling calculations were carried out using ENDF/B-VII and JENDL4.0/HE, and the results, such as the spallation neutron spectrum distribution, effective multiplication factor, and neutron flux distribution in the core, are compared with those calculated by MCNPX and other institutions.

The results showed that, for the spallation neutron source, the results calculated by FLUKA and those of MCNPX are in good agreement. For the effective neutron multiplication factor (keff), the maximum difference between those calculated by OpenMC and MCNPX is approximately 0.1% when the same database is used, and the keff is also within a reasonable range compared with benchmark values. The calculated distributions of the neutron flux are approximately the same. It is proven that the coupled FLUKA–OpenMC calculation is suitable for the calculation and analysis of ADSs. Further, the JENDL4.0/HE high-energy library gives similar results for the keff and neutron flux calculations, so the JENDL4.0/HE database is also reliable.

Because the JENDL4.0/HE database contains only 130 nuclides for the ADS model calculation, it cannot meet the requirements for actual ADS analysis. Next, we need to combine other cross-section evaluation libraries such as TENDL to make a more comprehensive high-energy database for ADS calculation. Moreover, the FLUKA–OpenMC coupling method should also be applied to the study and design of practical ADSs to further validate the feasibility.