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
# 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())
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()
# 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)