Calculation of burnup depth of fuel components

Hello everyone, I am currently calculating the burnup depth distribution of the components inside the core. I have calculated the nuclear density at the end of each component’s lifespan, but I don’t know how to convert it into burnup depth (MW/kg) and perform subsequent root analysis calculations. Should I divide the total energy released by the components by the mass change of the internal fuel? If so, how should the output energy of each component be calculated?

Hi ryp, welcome back to the community.
fuel burnup is generally defined as the total energy generated per initial heavy metal mass.
You can calculate total heavy metal mass by summing up all your heavy metal isotopes with get_mass. if you only use U-235 and U-238 in your fuel material, you can calculate it before the calculation starts.

U235initialmass = fuelmaterialname.get_mass(nuclide='U235', volume=fuelmaterialvolume)
U238initialmass = fuelmaterialname.get_mass(nuclide='U238', volume=fuelmaterialvolume)
totalHMmass = U235initialmass + U238initialmass 

this should be equal to the initial calculated mass from your depletion results if you want to check
depletion_results.get_mass(...)

then since you have the power as input, the total energy generated will equal power(MW) * total burnup time(d), so energy will have a unit of (MWd). After that, achieved burnup could be calculated by dividing energy with initial heavy metal mass, energy/initial HM mass (MWd/kg), that’s it.

if you want to check it, mathematically, you can get the burnup duration needed to achieve a specific burnup value.
let’s say you want to achieve 50MWd/kg, and you have an initial 10kg HM in your core, and your core power is 5MW, then you need to operate your core to 50MWd/kg * 10kg/5MW = 100 days.
to check it, you can run openmc depletion with timesteps unit of burnup.
let’s say you want to do 5 steps burnup, then 50MWd/kg could be achieved by 5 * 10MWd/kg

burnupsteps = [10, 10, 10, 10, 10] #MWd/kg
Integrator = openmc.deplete.PredictorIntegrator(Operator, burnupsteps, corepower, timestep_units='MWd/kg', solver= 'cram48') # burnup MWd/kg as input

you can compare the calculated time (math) to the time steps reported on depletion results, it should be consistent, I think.

Thank you very much for your answer. Good luck to you

Excuse me very much, I have another question. I need to calculate the burnup depth distribution of different components. I need to know the energy generated by each component in order to calculate the burnup depth of each component. How should the energy generated by this component be calculated?

Hi ryp, I think Daedalus has give you some suggestions for this question

Regarding energy generated at each fuel position, or power distribution, I think you can use the kappa fission score or fission q recoverable score in your tally. hence you will get the power distribution either radially or axially. You will find that the power distribution will be different on each burnup steps, so you can tally this score on each steps or on specific burnup steps that interest you.

About the burnup for various components, either heavy metal or non fuel components, you can do it by set the material to be a depletable material (it should be default for heavy metal), dont forget to set the material volume, and the burnup time integrator will handle the calculation. If you want the material to be reported as independent depletable material, i.e. if your fuel at the center region has the same composition as the fuel at the peripheral region of the core, as the power at the center was higher than the peripheral, then the burnup fraction at the center will be higher since the power is higher at the center. by making 2 or more separated fuel material (with same composition initially), your code will handle each material independently in burnup calculation.
Since you know the initial heavy metal mass, then you only need to know the energy (local power×time). Local power can be find from the power distribution (kappa fission or fission q recoverable), so you can find your local burnup.
Or if you want to use other burnup unit, i.e. %FIFA (Fission per initial fissile atom) or %FIMA (Fissile per initial heavy metal atom), then you can declare you burnup with other unit, i.e. %U-235 has been burned, so you can focus on the atomic density of fissile material, such as 10% U-235 atom has been burned, 20% and so on.