u238 = Isotope('U-238') # Create an artifical capture xs for hydrogen norm_const = 0.025 h1_capture_energies = numpy.logspace(-5., 7.5, 500); h1_capture_xs = numpy.sqrt(norm_const/h1_capture_energies) * 2.; h1.setCaptureXS(h1_capture_energies, h1_capture_xs) # Zero out the scatter, fission xs for U-238 energy = numpy.array([1E-7, 2e7]) # energy bounds xs = numpy.array([0.0]) # one group xs u238.setMultigroupElasticXS(energy, xs) u238.setMultigroupFissionXS(energy, xs) py_printf('INFO', 'Plotting microscopic cross-sections...') plotter.plotMicroXS(h1, ['capture', 'elastic', 'fission']) plotter.plotMicroXS(u238, ['capture', 'elastic', 'fission']) # Turn off thermal scattering for U-238 u238.neglectThermalScattering() ############################################################################### ############################## Create Materials ############################## ############################################################################### py_printf('INFO', 'Creating a fuel-moderator mixture material...') mix = Material('Fuel Moderator Mix') mix.setDensity(5., 'g/cc') mix.addIsotope(h1, 1.0) mix.addIsotope(u238, 1E-1)
############################################################################### ######################### Run Monte Carlo Simulation ######################### ############################################################################### # Run Monte Carlo simulation geometry.runMonteCarloSimulation(); ############################################################################### ############################ Process Output Data ############################# ############################################################################### py_printf('INFO', 'Plotting microscopic and macroscopic cross-sections...') plotter.plotMicroXS(u235, ['capture', 'elastic', 'fission']) plotter.plotMicroXS(u238, ['capture', 'elastic', 'fission']) plotter.plotMicroXS(h1, ['capture', 'elastic', 'absorption']) plotter.plotMicroXS(o16, ['capture', 'elastic', 'absorption']) plotter.plotMacroXS(fuel, ['capture', 'elastic', 'fission']) plotter.plotMacroXS(moderator, ['capture', 'elastic', 'fission']) py_printf('INFO', 'Computing group cross-sections...') elastic_xs = process.GroupXS(total_flux_xs, elastic_rate) capture_xs = process.GroupXS(total_flux_xs, capture_rate) fission_xs = process.GroupXS(total_flux_xs, fission_rate) absorb_xs = process.GroupXS(total_flux_xs, absorb_rate) transport_xs = process.GroupXS(total_flux_xs, transport_rate) diffusion_coeff = process.GroupXS(total_flux_xs, diffusion_rate) total_xs = process.GroupXS(total_flux_xs, total_rate)
TallyBank.registerTally(tot_fiss_rate) TallyBank.registerTally(tot_abs_rate) ############################################################################### ######################### Run Monte Carlo Simulation ######################### ############################################################################### # Run Monte Carlo simulation geometry.runMonteCarloSimulation() ############################################################################### ############################ Process Output Data ############################# ############################################################################### py_printf('INFO', 'Plotting microscopic and macroscopic cross-sections...') plotter.plotMicroXS(u235, ['capture', 'elastic', 'fission']) plotter.plotMicroXS(u238, ['capture', 'elastic', 'fission']) plotter.plotMicroXS(h1, ['capture', 'elastic', 'absorption']) plotter.plotMicroXS(o16, ['capture', 'elastic', 'absorption']) plotter.plotMacroXS(fuel, ['capture', 'elastic', 'fission']) plotter.plotMacroXS(moderator, ['capture', 'elastic', 'fission']) py_printf('INFO', 'Computing group cross-sections...') elastic_xs = process.GroupXS(total_flux_xs, elastic_rate) capture_xs = process.GroupXS(total_flux_xs, capture_rate) fission_xs = process.GroupXS(total_flux_xs, fission_rate) absorb_xs = process.GroupXS(total_flux_xs, absorb_rate) transport_xs = process.GroupXS(total_flux_xs, transport_rate) diffusion_coeff = process.GroupXS(total_flux_xs, diffusion_rate) total_xs = process.GroupXS(total_flux_xs, total_rate)