1 Introduction

Burnup calculations can be used to analyze changes in the nuclide composition in the depletion zone and play a very important role in reactor design and analysis. For the accelerator-driven subcritical system (ADS), the burnup calculation can study the effects of core assembly arrangement and different fuel composition designs on the transmutation of high-level waste nuclides. For example, the depletion calculation is important for studying the transmutation efficiency of minor actinides (MA) and long-life fission products (LLFP) in the accelerator-driven subcritical reactor system (ADS) [1].

Presently, Monte Carlo programs are widely used in reactor depletion calculations due to its powerful geometric modeling capabilities and improved parallel computing efficiency [2]. There are mainly two types of Monte Carlo burnup code systems. The first type is the external coupling transport code, such as MOCUP [3], MCBurn [4], MONTEBURNS [5], and ALEPH [6]. They usually couple general-purpose Monte Carlo transport codes, like MCNP or MCNPX, with the depletion code ORIGEN. The external coupling program is easy to implement. Thus, this type of coupled burnup calculation is widely used by many research institutions. The second type is the internal coupling transport code, such as Serpent [7], RMC [8], and JMCT [9]. They use built-in subroutines as internal depletion modules. In addition, some new methods for solving nuclide inventory equations, such as transmutation trajectory analysis (TTA) and the Chebyshev Rational Approximation Method (CRAM), are also applied in these Monte Carlo codes to improve the calculation accuracy of the nuclide inventory [10].

However, some of these Monte Carlo-based transport-burnup codes have defects when applied to the ADS depletion problem. In the ADS system, the energy of spallation neutrons can reach several hundred MeV to GeV [11]. There are few programs that can be used both to simulate proton spallation reactions and transport high-energy neutrons greater than 20 MeV. Currently, only the MCNPX [12] code can complete this task. The COUPLE program is a typical external coupling transport-depletion code [13], originally developed by the Institute of Nuclear and New Energy Technology (INET) at Tsinghua University. It couples the depletion code ORIGEN2.1 [14] with MCNPX. The accuracy of the program has been verified against many benchmarks. The COUPLE code has been updated to COUPLE3.0 to satisfy the project requirements of the China Initial Accelerator Driven System (CIADS). However, there are some aspects that need to be improved. For example, some defects in the burnup setting step and the generation of input files for the nuclide consumption calculation are apparent. Besides, the fact that most Monte Carlo codes are not open-source limits the further development and upgrade of coupled transport-burnup programs. Recently, a new neutron transport Monte Carlo program OpenMC [15] has been developed by the Computational Reactor Physics Group of Massachusetts Institute of Technology. The program has better parallel efficiency compared to other Monte Carlo programs. This situation motivates us to develop a new coupling transport-depletion code system. Therefore, based on the particle physics Monte Carlo simulation package FLUKA [16], Monte Carlo program OpenMC, and burnup code ORIGEN2, a new coupled depletion calculation code system IMPC-Burnup for ADS is developed.

In the IMCP-Burnup code system, FLUKA is used to simulate the spallation reaction for the proton beam and target material, which is a widely used Monte Carlo code for simulating the interaction and transport of hadrons, heavy ions, and electromagnetic particles from thermal neutron energies (100 eV) to cosmic ray energies (TeV) [17]. As opposed to other particle physics programs, such as Geant4, FLUKA builds the geometry and other transport options by filling the input card, which is convenient to implement external coupling. OpenMC can simulate 3D models based on second-order surfaces [18]. Continuous-energy cross-section data are in HDF5 format, which can be generated from ACE files used by the MCNP and Serpent programs. Moreover, OpenMC has a flexible transport energy limit, which is entirely dependent on the cross-section library. Thus, constructing a high-energy neutron cross-section library can be an alternative to handling the transport of high-energy particles in the future.

IMPC-Burnup, written in the Python language, transfers data between OpenMC and ORIGEN2 and controls the overall process of burnup calculation. The code contains an output processing and data drawing module to make it more user-friendly. The methodology is described in Sect. 2, including the solution to the Bateman equations, generation of one-group cross sections, treatment of neutrons with energies greater than 20 MeV, and coupling calculation schemes of the IMPC-Burnup code. The verification of the IMPC-Burnup code system is introduced in Sect. 3. Conclusions are provided in Sect. 4.

2 Methodology

There are two steps in the burnup calculation of the ADS system. First, the FLUKA program is used to simulate the spallation reaction and obtain the neutron source spectrum of the target zone. Then, the source file is provided to OpenMC, and IMPC-Burnup begins to execute according to the main input file. IMPC-Burnup can also be applied to the burnup analysis of other reactor types, in principle. The following subsections provide a more detailed description about the mechanism of IMPC-Burnup.

2.1 Solution to Bateman equation

The coupled program IMPC-Burnup uses ORIGEN2 to solve the Bateman equations. ORIGEN2 is a point depletion code. In general, the rate of change of nuclide i over time can be described by the non-homogeneous first-order ordinary differential equation, shown in equation [19]:

$$\frac{{{\text{d}}X_{i} }}{{{\text{d}}t}} = \sum\limits_{j = 1}^{N} {l_{ij} \lambda_{j} X_{j} +\Phi } \sum\limits_{k = 1}^{N} {f_{ik} \lambda \sigma_{k} X_{k} } - (\lambda_{i} +\Phi \sigma_{i} + \gamma_{i} )X_{i} + F_{i} ,\quad i = 1, \ldots ,N,$$

where \(X_{i}\) is the atomic density of nuclide i, \(\lambda_{i}\) is the radioactive decay constant of nuclide i, \(\Phi\) is the neutron flux averaged by space and energy, \(l_{ij}\) is the share of nuclide i generated by the decay of nuclide j, \(N\) is the number of nuclides, \(\sigma_{k}\) is the spectral-averaged neutron absorption cross section of nuclide k, \(f_{ik}\) is the share of nuclide i generated by other nuclei after absorbing neutrons, \(\gamma_{i}\) is the removal rate of nuclide i from the system, and \(F_{i}\) is the supplement rate of radionuclide i.

Taking into account changes in the number of N nuclides over time, N equations are listed. ORIGEN2 adopts a mixed numerical solution method. The kernel is the matrix exponential method. When the half-life of a nuclide is very long, the analytical solution of decay equations is used to solve the problem.

2.2 Calculation of one-group cross section and power distribution

The one-group microscopic cross sections are needed for the ORIGEN2 program and can be obtained by OpenMC. The reaction rate for any nuclide over the entire energy range and neutron flux should be considered in the neutron transport.

After the ORIGEN2 burnup calculation, thousands of nuclides will be generated. It is impossible to utilize all of them by updating the material.xml and tallies.xml input cards of OpenMC. This will consume much computer memory and time. Therefore, it is necessary to remove the unimportant nuclides and speed up the calculation.

Here, the nuclide screening mechanism of IMPC-Burnup is presented. The ratio between the sum of the macroscopic cross section of the first N nuclides and the total cross section will be calculated. The cut-off values are set. For some nuclides, the stability of the microscopic cross section will tend to slightly change during the operation of the reactor. This part of the nuclide will no longer update the xml input file when its cross section is stable, so the burnup calculation time can be reduced.

In addition, the power of the burnup zone is assigned according to the following formula:

$$P_{k} = P*\frac{{{\text{kappa}}\_{\text{fission}}_{k} }}{{\sum\nolimits_{k = 1}^{I} {{\text{kappa}}\_{\text{fission}}_{k} } }}$$

P is the total thermal power of the nuclear system. The parameter \({\text{kappa}}\_{\text{fission}}_{k}\) is the induced fission energy for a single neutron in the burnup zone k. Pk is the power of zone k.

2.3 Treatment of neutrons greater than 20 MeV

In the transport calculation of the spallation target and subcritical core of ADS, there is a certain share of neutrons with energies greater than 20 MeV. These high-energy neutrons will impact the transmutation efficiency of the nuclide, but these neutrons cannot be transported by most Monte Carlo programs, including OpenMC. Therefore, neutrons with energies greater than 20 MeV that leak from the target region to the core need to be processed or considered. The IMPC-Burnup program adopts two ways for processing high-energy neutrons. Method 1: remove the neutrons greater than 20 MeV. Method 2: treat the neutrons as if they contained energies of 19.9 MeV. In this case, the effect of high-energy neutrons on the physical calculation results is approximated by considering the transport of 19.9-MeV neutrons. This equivalent flux method is introduced in detail below.

Statistical quantities such as the nuclear reaction rate in transport process are related to the neutron flux, so the principle of the equivalent flux method is to ensure that the contribution of high-energy neutrons to the flux remains unchanged before and after converting to 19.9-MeV neutrons. From the basic definition of neutron flux, if the flux remains the same, the product of the number of neutrons and the neutron speed will remain constant, so the number of 19.9-MeV neutrons can be calculated using the following conversion formula:

$$n_{19.9} = n_{g20} \sqrt {\frac{{E_{g20} }}{{E_{19.9} }}} .$$

In the OpenMC external source files, neutrons with energies greater than 20 MeV can be converted to 19.9-MeV neutrons with a new particle weight. These neutrons will be transported in OpenMC, so the approximated result for high-energy neutron transport is obtained.

2.4 IMPC-Burnup coupling schemes

The IMPC-Burnup code is currently under development at the Institute of Modern Physics, Chinese Academy of Sciences (IMPCAS). The motivation for developing this coupled depletion code system is to solve the ADS burnup problem and inventory analysis for various nuclear applications. The IMPC-Burnup code contains seven folders and a main function file main.py. The structure of the program file is shown in Fig. 1. These folders can be divided into five types. The ORIGEN2 program and standard input files TAPE5.INP and TAPE9.INP are stored in the Data folder. The Docs folder contains the program description file and user manual. All the subroutine python files are placed in the Subroutine folder. The Inputs and Out folders are used to save the input and output files of the program. The main input file of IMPC-Burnup is contained in the Input folder, and it provides the overall operating parameters of the coupling program. All the output data and files are saved in the Out folder. The Origen2 and OpenMC folders belong to the last folder category. They contain the necessary files needed to execute these two procedures.

Fig. 1
figure 1

File structure of IMPC-Burnup

The program starts the burnup calculation when the “python main.py” command is entered in the terminal. First, IMPC-Burnup clears the OpenMC, Origen2, and Out folders and copies the files needed for the OpenMC calculation from the Inputs folder. Next, a series of folders Cell_i will be created in the Origen2 folder based on number of depletion zones. In addition, the files required for the burnup calculation for each burnup zone will be copied from the Inputs folder to Cell_i. After initialization, the burnup cycle calculation will begin based on the long and small depletion steps.

When the fuel consumption cycle begins, the program will first determine whether the current burnup step is greater than the total step j. If it is less than or equal to the total cycle number j, the burnup calculation continues; otherwise, the IMPC-Burnup program will end the calculation. For each burnup step, the OpenMC code is carried out first, and then, the one-group microscopic cross sections of nuclides in the depletion zone are generated, using the nuclide reaction rate and flux information. Then, the TAPE5.inp and TAPE9.inp files are updated for each burnup region. After running the ORIGEN2 code, the mass of the nuclides in the depletion zone can be obtained. By updating the material.xml and tallies.xml input cards of OpenMC with the nuclide mass results from ORIGEN2, the input files of OpenMC are produced for the next neutron transport cycle. The detailed flow chart of the IMPC-Burnup program is shown in Fig. 2.

Fig. 2
figure 2

Flowchart of IMPC-Burnup

3 Verification

3.1 OECD-NEA benchmark

The geometric model of the OECD-NEA benchmark is a fuel pin element of the pressurized water reactor (PWR) [20]. The experimental values of the major nuclides for the final burnup step are provided in the manual, so the benchmark can be used to verify IMPC-Burnup program. In addition, results of COUPLE3.0 are given as a reference. The geometric radial profile is shown in Fig. 3. The center region is the fuel zone, followed by the zirconium clad, gas gap, and coolant. Here, case A with a final burnup depth of 27.35 GWd/MTU is calculated. The initial mass of UO2 fuel is 2.5 kg. Nuclide composition in the initial state and the burnup process can be found in the benchmark manual. The benchmark is calculated with 100 total cycles, among which there are 20 inactive cycles and 80 active cycles, and 10,000 particles are simulated for each cycle. Table 1 provides the mass of the major nuclides at the end of the burnup process, calculated by the IMPC-Burnup code. The results are also compared to those from COUPLE3.0 and the experimental data values.

Fig. 3
figure 3

Radial profile of fuel pin cell (color online)

Table 1 Fuel component at the end of burnup process in case A, mg/g UO2

Considering the cumulative amount of actinides, there is a significant difference between the IMPC-Burnup results for 238Pu and the experimental values, while the differences between the remaining nuclides and their experimental values are within 10%. For fission product nuclides, deviations of the calculation results are mainly reflected in the nuclides 149Sm and 150Sm, and differences for other fission products are relatively small. In addition, the deviations of the actinides and fission product nuclides calculated by IMPC-Burnup and COUPLE3.0 are all within 8%, and the consistency between the two programs is better. Therefore, IMPC-Burnup is suitable for the burnup calculation of the fuel pin cell and critical reactor. The accuracy of IMPC-Burnup has been preliminary verified by the pin cell model of PWR.

3.2 IAEA-ADS benchmark

To test the accuracy of the IMPC-Burnup program for the ADS burnup calculation, a thorium subcritical reactor model proposed by IAEA is used [21]. The 1/4 geometry of the IAEA-ADS benchmark is shown in Fig. 4. The reactor model contains five regions. Areas #1 and #2 are fuel zones. 233U is the fuel nuclide, and 232Th is the fertile nuclide. Zone 3 is the breeder layer. Zone 4 and Zone 5 are the reflector and shield layers, respectively. Region 6 is the lead spallation target. Detailed material descriptions for each area are provided in the benchmark manual.

Fig. 4
figure 4

1/4 R-Z geometry sketch of IAEA-ADS

For the OpenMC neutron transport calculation, the ENDF/B-VII.0 cross-section library is used. The temperature of the fuel zone is set to 1200 K, while other zones are set to 600 K. The enrichment of 233U is adjusted so that the initial keff is 0.94. The subcritical core is operated for 2250 days, with a total thermal power of 1500 MW. OpenMC runs in fixed source mode to statistic reaction rate and flux. For the eigenvalue calculation, it has 20 inactive batches and 80 active batches, each with 5 × 104 particles. The spallation neutron source distribution is provided in the benchmark manual [21]. The burnup procedure is divided into 15 equally spaced time bins, as neutron transport is performed with intervals of 150 days to update the one-group microscopic cross sections. After that, the ORIGEN2 burnup calculations are executed. After all burnup steps are completed, the results of IMPC-Burnup for the IAEA-ADS benchmark can be obtained.

Here, the trend of the effective multiplication factor and neutron source strength during the burnup process is calculated and compared with other studies in Fig. 5. Values of other studies are given as Ref. [22]. In addition, the results from COUPLE3.0 are added. In Fig. 5a, the keff curves calculated by IMPC-Burnup and COUPLE3.0 are within the range of other studies, and they show good agreement with each other. Due to the difference of calculation programs and nuclear databases, there are some differences in those result curves, but they have the same variation trend. In the first 150 days of the burnup process, keff declines strongly due to the protactinium effect. After that, keff gradually rises with the proliferation of 232Th to fissile nuclide 233U. To obtain a constant thermal power of 1500 MW, an appropriate neutron source intensity must be calculated and selected for each burnup step. As shown in Fig. 5b, the increase in the source intensity is very strong due to the protactinium effect in the first burnup step. With the enhancement in the breeding ability for 232Th, the intensity gradually decreases. After about 900 days, the magnitude of the neutron source strength increases again due to the consumption of fissile nuclide. IMPC-Burnup’s results are among the scope of reference values. So, it is acceptable to use the IMPC-Burnup program for ADS burnup calculations.

Fig. 5
figure 5

Evolution of eigenvalue (a) and source strength (b) during burnup process (color online)

3.3 CIADS model

Through the verification of the IAEA-ADS benchmark, the validity of the coupled program IMPC-Burnup and its applicability for use in ADS problems are preliminarily verified. However, neutrons with energies greater than 20 MeV are abandoned in the reference neutron spectrum. The real spallation neutron has a wide spectrum from the low-energy region to the incident proton energy. This part of the neutron will affect the burnup calculation, so it needs to be considered in some way. In the IMPC-Burnup program, neutrons above 20 MeV are processed using one of the following two methods. Method 1: neutron above 20 MeV is discarded. Method 2: neutron above 20 MeV is converted to 19.9 MeV, according to the equivalent flux method, which calculates the weight of neutrons under another energy based on the flux formula, so the flux contribution remains constant. This processing method approximates for the effects of neutrons above 20 MeV. The method is described in detail in Sect. 2.3. In addition, the MCNPX code in COUPLE3.0 program can transport high-energy neutrons. Therefore, the results of COUPLE3.0 can be used as a reference to compare and judge the rationality of these two methods and explore the impact of neutrons above 20 MeV.

Here, a reference design model of the CIADS subcritical core is used for the IMPC-Burnup calculation. At first, the neutron leakage spectra of the target zone is calculated by the FLUKA code, and a python script converts the spallation source file to HDF5 format so that it can be read by OpenMC. Next, IMPC-Burnup begins the burnup cycle calculation. Finally, the nuclide accumulation in the burnup step can be obtained. Figure 6 is the spallation neutron energy spectrum calculated by FLUKA. The energy of the proton beam is 250 MeV, and the beam radius is 5 cm. The target material is an iron–tungsten–nickel alloy with a density of 9.42 g/cm3. In terms of the spallation neutron spectrum in Fig. 6, the energy of spallation neutron extends from the low-energy region to an energy nearly equal to the incident proton beam. So, the energy spectrum is widely distributed, and it will be used in the OpenMC transport calculation.

Fig. 6
figure 6

Normalized leakage neutron spectra for 250 MeV proton

A radial diagram of the core region is shown in Fig. 7. From inside to outside, new fluidized solid tungsten targets, hexagonal fuel assemblies, the shield assembly, and lead bismuth assemblies are placed separately. The fuel of the CIADS model is UO2, with an enrichment of 19.75%. The fuel element consists of a stainless steel cladding tube, active zone, upper and lower reflectors, gas chamber, and end plugs in the cladding tube. The assembly has a regular hexagonal shape and contains 61 fuel rods arranged in a triangular manner. Specific parameters of material and geometry for CIADS model are listed in Tables 2, 3. The fuel temperature is set to 1200 K, and the other material temperature is set to 600 K. In the IMPC-Burnup calculation process, OpenMC uses the fixed source mode to tally the flux and reaction rate. The reactor power is maintained at 8.3 MW in the entire 600 burnup days, and ORIGEN2 is performed after each step of the neutron transport calculation.

Fig. 7
figure 7

Radial slice of CIADS subcritical core (color online)

Table 2 Material composition parameters of CIADS
Table 3 Core geometry parameters of CIADS model

Figure 8 shows that the masses of 237Np and 239Pu gradually increase during the burnup process and are approximately linear with time. For 239Pu, the nuclide mass calculated by IMPC-Burnup using above two methods and COUPLE3.0 are basically the same. The high-energy neutron flux above 20 MeV has almost no effect on the mass of 239Pu in each burnup step. However, the mass differences of 237Np by using different methods are significant. Method 2 gives a much closer result than Method 1 when compared with COUPLE3.0, mainly because the effects of high-energy neutrons are considered. This means that Method 2 (equivalent flux method) applied to neutrons above 20 MeV is reasonable and reliable.

Fig. 8
figure 8

Mass change of 237Np (a) and 239Pu (b) during burnup time in Assembly #1

Tables 4 and  5 show the cumulative mass of some major nuclides in assembly #1 and #4 after running at full power for 600 days. The IMPC-Burnup code uses two methods to treat high-energy neutrons. The results from COUPLE3.0 are also provided. By comparing the results of IMPC-Burnup and COUPLE3.0, we can see that when IMPC-Burnup adopts Method 2 to handle neutrons above 20 MeV, the cumulative masses of all nuclides are basically the same as COUPLE3.0, with deviations within 3% for assemblies #1 and #4. So, Method 2 can improve the accuracy of the results, to some extent, compared with Method 1. For assembly #1, the relative deviations of nuclides 234U, 237Np, 238Pu, and 241Pu decrease significantly if Method 2 is used for the IMPC-Burnup calculation. For assembly #4, Method 2 gives more accurate results for 237Np, 240Pu, and 241Pu. The differences in the neutron energy spectrum between Method 1 and Method 2 should be considered as a reason for the improvement in results. In general, the treatment of neutrons above 20 MeV using Method 2 is more consistent with the COUPLE3.0 results and suitable for the ADS system.

Table 4 Nuclide Accumulation Mass in assembly #1/g
Table 5 Nuclide accumulation mass in assembly #4/g

4 Conclusion

A new coupled program IMPC-Burnup has been developed, which links the FLUKA, OpenMC, and ORIGEN2 codes to solve the depletion problem in the ADS system. FLUKA is used to calculate the spallation neutron source of the target zone, and OpenMC is used to calculate neutron transport in the subcritical reactor and prepare the one-group neutron cross sections for the burnup calculation. The Bateman equations are solved by ORIGEN2. The feasibility of IMPC-Burnup for the critical reactor has been tested based on the OECD-NEA benchmark, and the results are consistent with experimental values. In addition, the IAEA-ADS benchmark is used to preliminarily validate the accuracy of IMPC-Burnup for the ADS.

Additionally, the equivalent flux method has been proposed and applied to neutrons with energies above 20 MeV so that the influence of high-energy neutrons can be approximated in the depletion calculation. The CIADS model is employed to verify the accuracy. Results of nuclides mass show good agreement with COUPLE3.0, which proves that this method is suitable for processing high-energy neutrons. So, the IMPC-Burnup code can be used for solving ADS problems.

Due to the development of high-energy neutron cross-section databases, such as JENDL4.0/HE and MENDL-2, it has become possible to produce high-energy cross-section libraries for neutron transport-burnup calculations so that the contribution of neutrons above 20 MeV to the burnup calculation can be processed more reasonably in the future. Then, the IMPC-Burnup code system will give more accurate results.