def _get_depleter_decay():
    dt = depletr.nuclides.half_lives.ALPHA[pu239.name]
    depper = depletr.Depleter(power=1,
                              enrichment=0,
                              spectrum="thermal",
                              max_burnup=0)
    nuclides_names = depper.get_all_nuclide_names()
    nuclides_names += [
        depletr.nuclides.constants.DEADEND_ACTINIDE,
        depletr.nuclides.constants.FISSION_PRODUCT
    ]
    num = len(nuclides_names)
    indices = dict(zip(nuclides_names, range(num)))
    q0 = np.zeros(num)
    i_np239 = indices[np239.name]
    q0[i_np239] = 1
    i_pu238 = indices[pu238.name]
    q0[i_pu238] = 1
    qhist = depper.decay(q0, 1, [dt, 2 * dt])
    return indices, qhist
Exemple #2
0
# Questions 1-4

import depletr
import scipy as sp

SPECTRUM = "fast"
AVERAGE_KINF = {"thermal": 1.3169320996513936, "fast": 0.9892984136969714}
ELEMENTS = ("Pu", "Am", "Cm")
# found with quicksolve.py
MOX_AT = sp.array(
    [0, 0.03182388222963699, 0.03319650338671934, 0.03356631994343097])
DESCRIPTOR = ("Fresh      ", "Once-Burnt ", "Twice-Burnt", "Thrice-Burnt")
NSTEPS = 100

study = depletr.Depleter(power=35,
                         enrichment=5,
                         max_burnup=50,
                         spectrum=SPECTRUM)
all_nuclides = study.get_all_nuclides()
num_nuclides = len(all_nuclides)
cycle_wts = sp.zeros((num_nuclides + 2, len(MOX_AT)))

cout = None
for i, mox_frac in enumerate(MOX_AT):
    print(DESCRIPTOR[i], "Fuel")
    print("Mox fraction: {:6.3%}".format(mox_frac))
    if i == 0:
        # Fresh fuel
        cout = study.deplete_fresh(NSTEPS, plots=0)
    else:
        cin = study.reprocess(cout, ELEMENTS, mox_frac)
        print(100 * cin / cin.sum())
Exemple #3
0
import numpy as np
import depletr

POWER = 35      # W/g
ENRICHMENT = 5  # wt% U235
BURNUP = 60     # MW-d/kg-HM
DECAY_TIMES = np.logspace(-1, 4, 6) # Years
SPECTRA = ("thermal", "fast")
# For each spectrum:  Set `PLOT` to 0 for no plots,
# 1 for subplots on the same figure, or >1 for separate figures.
PLOT = 1

for spectrum in SPECTRA:
	print()
	header = "{} Reactor".format(spectrum.title())
	header += "\n" + "-"*len(header)
	print(header)
	
	study = depletr.Depleter(POWER, ENRICHMENT, max_burnup=BURNUP, spectrum=spectrum)
	print(">Depleting to {} MW-d/kg-HM:".format(BURNUP))
	spent_fuel = study.deplete_fresh(nsteps=1000, plots=PLOT)
	print("\n>Decaying in spent fuel pool for {} years".format(int(DECAY_TIMES.max())))
	times_in_seconds = DECAY_TIMES*depletr.nuclides.half_lives.YEAR
	respository = study.decay(spent_fuel, nsteps=1000, times=times_in_seconds)
	nuclide_names = study.get_all_nuclide_names()
	# new
	respository /= respository.sum()
	depletr.printer.print_decay_results(nuclide_names, DECAY_TIMES, respository)
	if PLOT:
		study.show()
Exemple #4
0
# 22.215, PSet02
#   by Travis Labossiere-Hickman (email: [email protected])
#
# Question 5

import depletr
from scipy.constants import N_A

AVG_MASS = 239
MEV_PER_FISSION = 200
MEV_PER_MWD = 5.39266E23
NHM = 1000*N_A/AVG_MASS
X = MEV_PER_FISSION/MEV_PER_MWD
BU = 0.15*NHM*X

ELEMENTS = ("Pu", "Am", "Cm")
NSTEPS = 500

# PWR with fresh fuel
thermal_deplet = depletr.Depleter(power=35, enrichment=5, max_burnup=50, spectrum="thermal")
cout = thermal_deplet.deplete_fresh(NSTEPS, plots=0, verbose=False)
# Fast reactor with once-burnt fuel
cin = thermal_deplet.reprocess(cout, ELEMENTS, mox_frac=0.3)
fast_deplet = depletr.Depleter(power=35, enrichment=-0.71, max_burnup=BU, spectrum="fast")
cout = fast_deplet.reload(cin, NSTEPS)

print(cout)