PHGN590 Introduction to Nuclear Reactor Physics Modeling Neutron Slowing in Reactors J. A. McNeil Physics Department Colorado School of Mines 2/2009 Task: Role of moderation In this task we explore the role of moderating (slowing) the neutrons. As can be seen from the data lists, for -1 235 U the macro- -1 scopic cross section for fission by a fast neutron is 0.068 cm , while that for a thermal (slow) neutron is 28.4 cm . A moderator is a material that slows the neutrons down without absorbing them. Graphite ( 12 C) is an excellent moderator. It has a macroscopic scattering cross section of 0.381cm-1 and an absorption cross section of 0.00027 cm-1 . The addition of a moderating material, like graphite, can alter the critical reactivity. Enrico Fermi used this to construct the first sustained chain reaction using natural uranium as the fuel. ü Analytic tasks (a) To illustrate this calculate k¶, Eq.(8), for natural Uranium (235U (.72% ) and 238U (99.28%)). Since Uranium is so much heavier than a neutron, elastic scattering does not slow the neutron down and the fast cross sections must be used.) H* Constants *L Cons = 8kB Ø 1.38066 µ 10 ^ -23 , Troom Ø 293.15, e -> 1.60219 µ 10 ^ -19, mn Ø 1.674929 µ 10 ^ -27<; H* Thermal neutron values *L U235Th = 8r Ø .01886, nd Ø .04833, Ss Ø .01588, Sg Ø 4.833, Sf -> 28.37, n Ø 2.42<; U238Th = 8r Ø .0191, nd Ø .04833, Ss Ø .4301, Sg Ø .13194, Sf -> 0, n Ø 0<; U235frac = .0072; SigSNatUTh = ; 2 Moderation.nb HU235frac Ss ê. U235ThL + HH1 - U235fracL Ss ê. U238ThL; SigGNatUTh = HU235frac Sg ê. U235ThL + HH1 - U235fracL Sg ê. U238ThL; SigFNatUTh = HU235frac Sf ê. U235ThL + HH1 - U235fracL Sf ê. U238ThL; kinfNatUTh = HHn U235frac Sf ê. U235ThL + Hn H1 - U235fracL Sf ê. U238ThLL ê HSigGNatUTh + SigFNatUThL; Print@" The thermal k-factor for an infinite body of natural uranium is ", kinfNatUThD; H* Fast neutron values *L C12data = 8r Ø .00160, nd Ø .08023, Ss -> .3811, Sg Ø .0002728 , Sf Ø 0, n Ø 0<; U235Fast = 8r Ø .01886, nd Ø .04833, Ss Ø .328644, Sg Ø .0120825, Sf -> .06766, n Ø 2.6<; U238Fast = 8r Ø .0191, nd Ø .04833, Ss Ø .33347, Sg Ø .007732, Sf -> .004591, n Ø 2.6<; SigSNatUFast = HU235frac Ss ê. U235FastL + HH1 - U235fracL Ss ê. U238FastL; SigGNatUFast = HU235frac Sg ê. U235FastL + HH1 - U235fracL Sg ê. U238FastL; SigFNatUFast = HU235frac Sf ê. U235FastL + HH1 - U235fracL Sf ê. U238FastL; kinfNatUFast = HHn U235frac Sf ê. U235FastL + Hn H1 - U235fracL Sf ê. U238FastLL ê HSigGNatUFast + SigFNatUFastL; Print@" The fast k-factor for an infinite body of natural uranium is ", kinfNatUFastD; The thermal k-factor for an infinite body of natural uranium is 1.33581 The fast k-factor for an infinite body of natural uranium is 1.02411 (b) The average energy of a neutron created in a fission event is about 2 MeV. What fraction of the neutron's energy is lost in an elastic collision with a 12C nucleus where the average of the cosine of the scattering angle is 32A ? (c) How many collisions does it take to slow the neutron down to thermal energy (~1 eV)? (b) The average energy of a neutron created in a fission event is about 2 MeV. What Moderation.nb fraction of the neutron's energy is lost in an elastic collision with a 12C nucleus where3 the average of the cosine of the scattering angle is 32A ? (c) How many collisions does it take to slow the neutron down to thermal energy (~1 eV)? H* ModFac is the moderation factor = fractional energy loss in an elastic scattering collision EF = Energy of the fast neutrons H2.5 MeVL ETh = Energy when thermal cross sections are applicable H1 eVL NumScatt = number of elastic scatterings EThêEF = ModFac^NumScatt --Ø NumScatt = Log@EThêEFDêLog@1-ModFacD *L Avalue = 12; EF = 2. µ 10 ^ 6; ETh = 1.; ModFac = N@2 Avalue ê H1 + AvalueL ^ 2D; NumScatt = Floor@Log@ETh ê EFD ê Log@1 - ModFacDD; Print@" For scattering from Carbon the fraction of neutron energy lost is ", ModFacD; Print@" Thus, ", NumScatt, " scatterings are required to bring the neutron to thermal energies"D; For scattering from Carbon the fraction of neutron energy lost is 0.142012 Thus, 94 scatterings are required to bring the neutron to thermal energies (d) Now mix in graphite so that the number densities fractions are x of 12C and (1-x) uranium (natural). Calculate the aggregate macroscopic cross sections for this mixture using the fast neutron values. From these, calculate the probability, p(x), that a neutron survives to reach thermal energies. Plot the survival probability as a function of x. (e) Now, that the neutrons are slowed down (with probability, p), recalculate the macroscopic cross sections for the x mixture using the thermal values and calculate the critical factor, k(x), given by n Sf n Sf k HxL = p + H1 - pL . Sa Thermal Sa Fast What is the optimal mixing fraction yielding the greatest value for k? 4 Moderation.nb What is the optimal mixing fraction yielding the greatest value for k? Clear@CmixD SigSMixFast = HCmix Ss ê. C12dataL + H1 - CmixL SigSNatUFast; SigGMixFast = HCmix Sg ê. C12dataL + H1 - CmixL SigGNatUFast; SigFMixFast = H1 - CmixL SigFNatUFast; Prob = SigSMixFast SigGMixFast + SigSMixFast + SigFMixFast H1 - ProbL n SigFMixFast NumScatt ; ê. U235Fast; SigGMixFast + SigFMixFast SigSMixTh = HCmix Ss ê. C12dataL + H1 - CmixL SigSNatUTh; SigGMixTh = HCmix Sg ê. C12dataL + H1 - CmixL SigGNatUTh; SigFMixTh = H1 - CmixL SigFNatUTh; Prob n SigFMixTh kMixTh = ê. U235Th; SigGMixTh + SigFMixTh kinfNatU = kMixTh + kMixFast; kMixFast = Plot@kinfNatU ê. Cmix Ø x, 8x, 0, 1<D CmixMax = Cmix ê. Flatten@FindRoot@∂Cmix kinfNatU, 8Cmix, 0.98`<DD; kCmix = kinfNatU ê. Cmix Ø CmixMax; kMixFast ê. Cmix Ø CmixMax; kMixTh ê. Cmix Ø CmixMax; 1 MFPFast = ê. SigSMixFast + SigGMixFast + SigFMixFast Cmix Ø CmixMax; 1 MFPTh = ê. SigSMixTh + SigGMixTh + SigFMixTh Cmix Ø CmixMax; 1 AbsLenFast = ê. Cmix Ø CmixMax; SigGMixFast + SigFMixFast Moderation.nb AbsLenTh = LFast = 1 SigGMixTh + SigFMixTh AbsLenFast MFPFast 3 ê. Cmix Ø CmixMax; ê. Cmix Ø CmixMax; ê. Cmix Ø CmixMax; 3 LMix = Prob LTh + H1 - ProbL LFast ê. Cmix Ø CmixMax; Print@" The probability of surviving to thermal speeds is ", Prob ê. Cmix Ø CmixMaxD Print@" The optimal mix of carbon is ", CmixMax, " yielding k = ", kCmixD Print@" Absorption lengths: AbsHFastL = ", AbsLenFast, " AbsHThermalL = ", AbsLenTh, " cm"D Print@" Mean Free Path lengths: MFPHFastL = ", MFPFast, " MFPHThermalL = ", MFPTh, " cm"D Print@" Diffusion lengths: LHFastL = ", LFast, " LHThermalL = ", LTh, " cm \!\H\*OverscriptBox@\HL\L, \H_\LD\L = ", LMixD AbsLenTh MFPTh LTh = 1.20 1.15 1.10 1.05 1.00 0.95 0.2 0.4 0.6 0.8 1.0 5 6 Moderation.nb The probability of surviving to thermal speeds is 0.834869 The optimal mix of carbon is 0.963601 yielding k = 1.20202 Absorption lengths: AbsHFastL = 1371.58 AbsHThermalL = 72.8205 cm Mean Free Path lengths: MFPHFastL = 2.63093 MFPHThermalL = 2.52202 cm Diffusion lengths: LHFastL = 34.6821 ê LHThermalL = 7.82421 cm L = 12.2593 ü Monte Carlo simulation (f) Develop a Monte Carlo simulation for this reactor configuration and calculate the neutron multiplication factor, k, for your optimal mix. Moderation.nb ü Set up the simulation by defining the time step in terms of the velocity and group cross sections Clear@vcm, vboost, dPs, dPg, dPf, dPa, dP, dt, vmagD H* This block can only be executed after the previous section *L Fastdata = 8r Ø 0.01886, nd Ø 0.04833, Ss Ø SigSMixFast, Sg Ø SigGMixFast, Sf Ø SigFMixFast, n Ø 2.6< ê. Cmix Ø CmixMax Thermaldata = 8r Ø 0.01886, nd Ø 0.04833, Ss Ø SigSMixTh, Sg Ø SigGMixTh, Sf Ø SigFMixTh, n Ø 2.42< ê. Cmix Ø CmixMax data = 8Fastdata, Thermaldata<; muavg@A_D = 2 ê H3 AL; Avalue = 12; vboost@vmag_D = vmag ê H1 + AvalueL ; H* boost velocity connecting CM and Lab frames *L vcm@vmag_D = Avalue vmag ê H1 + AvalueL ; H* velocity of neutron in CM frame *L EFast = 2.5 µ 10 ^ 6; vF = 100 Sqrt@2 He EFastL ê mnD ê. Cons; ETh = 1.0; vTh = 100 Sqrt@2 He EThL ê mnD ê. Cons; vroom = 100 vavg@TroomD ê. Cons; dtofv@v_, ig_D := 1 ê H10 v HSs + Sg + SfLL ê. data@@igDD; dtTh = dtofv@vTh, 2D; dtF = dtofv@vF, 1D; dsF = vF dtF; dsTh = vTh dtTh; dPsF = Ss dsF ê. Fastdata; dPsTh = Ss dsTh ê. Thermaldata; dPfF = Sf dsF ê. Fastdata; dPfTh = Sf dsTh ê. Thermaldata; dPgF = Sg dsF ê. Fastdata; dPgTh = Sg dsTh ê. Thermaldata; dPaF = dPfF + dPgF; dPaTh = dPfTh + dPgTh; dPF = dPsF + dPaF; dPTh = dPsTh + dPaTh; Print@" Fast time step = ", dtF, " sec, and average speed of, v = ", vF, " cmês, distance per step = ", dsF, " cm"D Print@" Thermal time step = ", dtTh, , vTh, 7 8 Moderation.nb " sec, and average speed of, v = ", vTh, " cmês, distance per step = ", dsTh, " cm"D Print@" The probabilities of each possible event in one time step:"D Print@" Fast values: scatter = ", dPsF, " fission = ", dPfF, " capture =", dPgFD; Print@" Thermal values: scatter = ", dPsTh, " fission = ", dPfTh, " capture =", dPgThD 8r Ø 0.01886, nd Ø 0.04833, Ss Ø 0.379365, Sg Ø 0.000545448, Sf Ø 0.000183637, n Ø 2.6< 8r Ø 0.01886, nd Ø 0.04833, Ss Ø 0.382775, Sg Ø 0.00629738, Sf Ø 0.00743502, n Ø 2.42< Fast time step = 1.203 µ 10-10 sec, and average speed of, v = 2.18697 µ 109 cmês, distance per step = 0.263093 cm Thermal time step = 1.82337 µ 10-7 sec, and average speed of, v = 1.38316 µ 106 cmês, distance per step = 0.252202 cm The probabilities of each possible event in one time step: Fast values: scatter = 0.0998082 fission = 0.0000483135 capture =0.000143503 Thermal values: scatter = 0.0965367 fission = 0.00187513 capture =0.00158821 Moderation.nb ü Run the simulation: Nexp = number of "experiments" Nneutron= number of neutrons per experiment TimingBRAbsAvgTable = 8<; kTable = 8<; NScattTable = 8<; ElossTable = 8<; Rmax = 4 LMix; NRbins = 40; Rmax dR = ; NumDen = Table@0, 8i, 1, NRbins + 1<D; NRbins SsGroup = 8Ss ê. dataP1T, Ss ê. dataP2T<; SgGroup = 8Sg ê. dataP1T, Sg ê. dataP2T<; SfGroup = 8Sf ê. dataP1T, Sf ê. dataP2T<; nGroup = 8n ê. dataP1T, n ê. dataP2T<; Nexp = 10; Nneutrons = 200; NThTotal = 0; 0. DoBNFiss = 0; RAbsTable = 8<; NScattToTh = 0; NTh = 0; NFastScattTotal = 0; Eloss = 0; DoBForB8ig = 1, v = 80, 0, vF<; vmag = vF; dt = dtofv@vmag, igD; r = 80, 0, 0<; iStep = 1; iStop = -1; NFastScatt = 0<, iStop < 0 && iStep < 105, iStep ++, :ran = RandomReal@D; ds = vmag dtofv@vmag, igD; dPs = ds SsGroupPigT; dPg = ds SgGroupPigT; dPf = ds SfGroupPigT; r = r + v dt; IfBran < dPs + dPg + dPfH* does it interact? *L, H*YES, it interacts*L:IfBran < dPs H* Is the interaction elastic? *L, H*YES, elastic *L:vmagsave = vmag; thcm = p RandomReal@D; phicm = 2 p RandomReal@D; v = vcm@vmagD 8Sin@thcmD Cos@phicmD, Sin@thcmD Sin@phicmD, Cos@thcmD< + vboost@vD; vmag = v.v ; IfBvmag § vTh H* Is the new speed thermal? *L, 9 10 Moderation.nb H* Is the new speed thermal? *L, H* yes, change to group 2, and keep speed constant from now on *L vTh v :ig = 2; v = >, H* no, accumulate vmag fractional energy loss *L:Eloss = Eloss + 1 - vmag2 ; NFastScatt ++>F;>, vmagsave2 H* NO, inelastic *L8iStop = 1; If@ran < dPs + dPfH* Was the inelastic event fission? *L, H* Yes, accumulate fission neutrons generated *LNFiss = NFiss + nGroupPigTH* no, do nothing *LD< FH* End elastic scattering IF *L >FH* End interaction IF *L; >FH* End For *L; If@ig ã 2, NScattToTh = NScattToTh + NFastScatt; NTh ++D; NFastScattTotal = NFastScattTotal + NFastScatt; rmag = r.r ; AppendTo@RAbsTable, rmagD; rmag rindex = FloorB F + 1; If@rindex > NRbins, dR NumDenPNRbins + 1T ++, NumDenPrindexT ++D;, NFiss 8j, 1, Nneutrons<F; AppendToBkTable, F; Nneutrons LenRabs = Length@RAbsTableD; AppendToBRAbsAvgTable, RAbsTablePiT ⁄Nneutrons i=1 Nneutrons NScattToTh AppendToBNScattTable, NB FF; NTh ; F; Moderation.nb AppendToBElossTable, NB Eloss NFastScattTotal FF; NThTotal = NThTotal + NTh;, 8iexp, 1, Nexp<F; ⁄iexp=1 ElossTablePiexpT Nexp ElossAvg = 8137.41, 0.141855< Nexp F 11 12 Moderation.nb ü Calculate averages and deviations and plot the flux density H* k Avergage *L Lenk = Length@kTableD; kAvg = N@Sum@kTable@@iDD, 8i, 1, Lenk<D ê LenkD; Delk = Sqrt@Sum@HkTable@@iDD - kAvgL ^ 2, 8i, 1, Lenk<D ê LenkD; H* Average absorption radius *L LenR = Length@RAbsAvgTableD; RAbsAvg = N@Sum@RAbsAvgTable@@iDD, 8i, 1, LenR<D ê LenRD; DRAbs = Sqrt@N@Sum@HRAbsAvgTable@@iDD ^ 2 - RAbsAvg ^ 2L, 8i, 1, LenR<D ê LenRDD; H* Average number of scatterings to reach thermal speed *L LenNScatt = Length@NScattTableD; NScattAvg = Sum@NScattTable@@iDD, 8i, 1, LenNScatt<D ê LenNScatt; ProbSurviveToThermal = N@NThTotal ê Nneutrons ê NexpD; H* Print Monte Carlo results *L Print@" Neutron multiplication constant kHMonte CarloL = ", kAvg, " +ê- ", Delk, " kHanalyticL = ", kCmixD Print@" Average radius value at absorption = ", RAbsAvg, " +ê_ ", DRAbs, " cm"D Print@" Average number of scatterings needed to reach thermal speeds = ", NScattAvgD Print@" Survival probability HMCL = ", ProbSurviveToThermal, " HanalyticL =", Prob ê. Cmix -> CmixMaxD Moderation.nb 13 Neutron multiplication constant kHMonte CarloL = 1.18256 +ê- 0.0921539 kHanalyticL = 1.20202 Average radius value at absorption = 8.88485 +ê_ 0.310202 cm Average number of scatterings needed to reach thermal speeds = 92.3824 Survival probability HMCL = 0.8345 HanalyticL =0.834869 norm = ‚ NumDenPiT; NRbins i=1 DenNormed = TableBNB NumDenPiT norm IShellVol@iR_D = dR3 4 p iR2;M PhiMCTable = TableB x Phi@x_D = ‰- LD x F, 8i, 1, NRbins<F; DenNormedPiT ShellVol@iD , 8i, 1, NRbins<F; ; Inorm = 4 p IntegrateAPhi@xD x2, 8x, 0, ¶<, Assumptions Ø Re@LDD > 0E;M ê. LD Ø LMix; ; PhiMax = norm Max@PhiMCTableD; PhiAnalyticTable = Table@Phi0@Hi - 0.5`L dRD, 8i, 1, NRbins<D; horizaxis = Style@"r HcmL", FontFamily Ø "Tahoma", FontColor Ø Blue, FontWeight Ø Bold, FontSize Ø 12D; vertaxis = Style@"j", FontFamily Ø "Tahoma", FontColor Ø Blue, FontWeight Ø Bold, FontSize Ø 12D; plotname = Style@"Neutron Flux", FontFamily Ø "Tahoma", FontColor Ø Black, FontWeight Ø Bold, FontSize Ø 14D; p1 = ListPlot@PhiMCTable, DisplayFunction Ø Identity, PlotStyle Ø 8RGBColor@1, 0, 0D, PointSize@0.015`D<, Frame Ø True, GridLines Ø Automatic, PlotLabel Ø plotname, FrameLabel Ø 8horizaxis, vertaxis<, , , Phi0@x_D = Phi@xD Moderation.nb plotname, FrameLabel Ø 8horizaxis, vertaxis<, ImageSize Ø 400, Background Ø LightOrange, PlotRange Ø 8-.01 PhiMax, 1.2 PhiMax<D; p2 = ListPlot@PhiAnalyticTable, Joined Ø True, DisplayFunction Ø Identity, PlotStyle Ø 8Black, Thickness@0.005`D<, Frame Ø True, GridLines Ø Automatic, PlotLabel Ø plotname, FrameLabel Ø 8horizaxis, vertaxis<, ImageSize Ø 400, Background Ø LightOrange, PlotRange Ø 8-.01 PhiMax, 1.2 PhiMax<D; Show@p1, p2, DisplayFunction Ø $DisplayFunctionD Neutron Flux 0.0005 0.0004 0.0003 j 14 0.0002 0.0001 0.0000 0 10 r HcmL 20 30 40