Packages to be Used Data PHGN590 J.A. McNeil

advertisement
PHGN590
Introduction to Nuclear Reactor Physics
J.A. McNeil
Modeling Neutron Diffusion in Reactors
(February 29, 2009)
Packages to be Used
Data
Cons = 8kB Ø 1.38066 µ 10 ^ -23 , Troom Ø 293.15, e -> 1.60219 µ 10 ^ -19, mn Ø 1.674929 µ 10 ^ -27<;
D2Odata = 8r Ø .001105, nd -> .03323, Ss -> .4519, Sg Ø 4.42 µ 10 ^ -5 , Sf Ø 0, n Ø 0<;
C12data = 8r Ø .00160, nd Ø .08023, Ss -> .3811, Sg Ø .0002728 , Sf Ø 0, n Ø 0<;
H* Thermal neutron values *L
Nadata = 8r Ø .00097, nd Ø .02541, Ss Ø .08131, Sg Ø .01347 , Sf Ø 0, n Ø 0<;
U235data = 8r Ø .01886, nd Ø .04833, Ss Ø .01588, Sg Ø 4.833, Sf -> 28.37, n Ø 2.42<;
U238data = 8r Ø .0191, nd Ø .04833, Ss Ø .4301, Sg Ø .13194, Sf -> 0, n Ø 0<;
Pu239data = 8r Ø .0196, nd Ø .04938, Ss Ø .3902, Sg Ø 13.27, Sf -> 36.66 , n Ø 2.98<;
H* Fast neutron values *L
Nadata = 8r Ø .00097, nd Ø .02541, Ss Ø .083853, Sg Ø .000020328 , Sf Ø 0, n Ø 0<;
U235data = 8r Ø .01886, nd Ø .04833, Ss Ø .328644, Sg Ø .0120825, Sf -> .06766, n Ø 2.6<;
U238data = 8r Ø .0191, nd Ø .04833, Ss Ø .33347, Sg Ø .007732, Sf -> .004591, n Ø 2.6<;
Pu239data = 8r Ø .0196, nd Ø .04938, Ss Ø .33578, Sg Ø .0128388, Sf -> .091353, n Ø 2.98<;
2
NeutronDiffusion.nb
Introduction
Nuclear energy arises from the splitting of large nuclei by neutrons which, in addition to releasing copius amounts of energy,
release more neutrons. These in turn can cause additional fissions leading to a sustained chain reaction, or in the case of a nuclear
weapon, an exponentially increasing cascade and explosion.
Fundamentally, a neutron interacting with a nucleus can undergo three fundamental scattering processes: 1) it can bounce off
(elastically or inelastically), 2) it can be absorbed by emitting a gamma, and 3) for fissile nuclei, it can be absorbed and then
induce fission which releases additional neutrons. In essence the control of nuclear energy comes down to controlling the
neutrons. The relative probabilities for any of these events are governed by the cross section. The rate for any process is the
neutron flux (number density times average speed) times the relevant cross section times the number density of target nuclei. For
convenience, these last two factors are usually multiplied together to give the "macroscopic cross section". Specifically, the rate
”
”
”
that neutrons are absorbed at location r is given by Sa j HrL,where j HrLis the neutron flux (number of neutrons per unit area
per unit time) and Sa is the macroscopic cross section for absorption. (For fissile materials the absorption cross section includes
both the gamma and fission processes.) Using Fick's law and the continuity equation, one arives at the governing equation for the
neutron flux,
”
1 ∂ j Ir, tM
”2
”
”
D “ j Ir, tM + Hn Sf - Sa L j Ir, tM = ê
,
∂t
v
where j is the neutron flux (neutron number density times average speed), D is the diffusion constant due to elastic scattering, n is
the average number of neutrons produced by a fission, Sa and Sf are the macroscopic cross sections for absorption and fission
respectively. The diffusion constant is related to the macroscopic scattering cross section by
D = 1 ê H3 HSa + Ss H1 - mLLL.
(This is an approximate expression.) Analysis of the problem can be simplified by introducing a parameter, k, which scales the
rate of neutron production. One can consider k to be adjusted to give a steady state time-independent neutron flux,
”2
”
D “ j HrL +
n Sf
k
”
- Sa j HrL = 0.
As will be explained later, k is the net neutron multiplication factor that determines if the reactor is critical (self-sustaining).
Define the "buckling" constant,
B2 =
1
n Sf
D
k
- Sa ,
and, solving for k find,
k=
n Sf
D B2 + Sa
,
In terms of the buckling constant, the steady-state diffusion equation can be written as an eigenvalue problem,
”2
”
”
“ j HrL = - B2 j HrL.
One strategy to investigate criticality of a reactor configuration is to solve the eigenvalue problem to obtain allowed values of the
buckling constant, B, for some reactor composition and geometry. The geometric information about the reactor is contained in B.
From Eq.(5) one can understand that the lowest buckling eigenvalue will dominate any cascade process since any larger eigenvalue necessarily yields a smaller neutron multiplication factor. Setting k = 1 for the lowest eigenvalue will determine the
geometry that will give a critical reactor for the given fuel/moderator mixture.
Maxwell velocity distribution
NeutronDiffusion.nb
Maxwell velocity distribution
ü Calculate the Maxwell velocity distribution and plot it for room temperature
Clear@MB, m, v, vavg, vrms, vpeakD
MB@v_, T_D =
mn
2 p kB T
3ë2
-
‰
mn v2
2 kB T
;
NormCheck = 4 p IntegrateBv2 MB@v, TD, 8v, 0, ¶<, Assumptions Ø :ReB
mn
kB T
Print@" Maxwell distribution normalization check = ", NormCheckD
F > 0>F;
vavg@T_D = SimplifyB4 p IntegrateBv3 MB@v, TD, 8v, 0, ¶<, Assumptions Ø :ReB
mn
kB T
vrms@T_D = . SimplifyB4 p IntegrateBv4 MB@v, TD, 8v, 0, ¶<, Assumptions Ø :ReB
F > 0>FF;
mn
kB T
F > 0>FF;
vpeak@T_D = v ê. FlattenASolveA∂v Iv2 MB@v, TDM ã 0, vEEP3T;
Print@" Vavg = ", vavg@TDD; Print@" Vrms = ", vrms@TDD; Print@" Vpeak = ", vpeak@TDD;
vmax = 3 vavg@Troom D ê. Cons;
horizaxis = Style@"v", FontFamily Ø "Tahoma", FontColor Ø Blue, FontWeight Ø Bold, FontSize Ø 12D;
vertaxis = Style@"P", FontFamily Ø "Tahoma", FontColor Ø Blue, FontWeight Ø Bold, FontSize Ø 12D;
plotname = Style@"Maxwell Veclocity Distribution",
FontFamily Ø "Tahoma", FontColor Ø Black, FontWeight Ø Bold, FontSize Ø 14D;
PlotA4 p v2 MB@v, Troom D ê. Cons, 8v, 0, vmax<, PlotStyle Ø 8Black, Thickness@0.01`D<, Frame Ø True,
GridLines Ø Automatic, PlotLabel Ø plotname, FrameLabel Ø 8horizaxis, vertaxis<,
ImageSize Ø 400, Background Ø LightOrange, PlotRange Ø AllE
3
NeutronDiffusion.nb
Maxwell distribution normalization check = 1
2
p
2
Vavg =
mn
T kB
Vrms =
T kB
3
Vpeak =
mn
2
T
kB
mn
Maxwell Veclocity Distribution
0.0003
P
4
0.0002
0.0001
0.0000
0
1000
2000
3000
4000
5000
6000
7000
v
Clear@A, v, vboost, vcm, EnD
vpeakvalue = 100 vpeak@Troom D ê. Cons; H* most probable speed in cmês *L
vrmsvalue = 100 vrms@Troom D ê. Cons ;H* rms speed in cmês *L
vavgvalue = 100 vavg@Troom D ê. Cons; H* average speed in cmês *L
vspeed = vavgvalue;
vboost@A_D = vspeed ê H1 + AL 80, 0, 1< ; H* speed between CM and lab frames *L
vcm@A_D = A vspeed ê H1 + AL ;
En = H kB Troom ê eL ê. Cons;
Print@" Thermal energy, kB T = ", En, " eV"D
Print@" Vavg = ", vavgvalue, " cmês"D; Print@" Vrms = ", vrmsvalue, " cmês"D;
Print@" Vpeak = ", vpeakvalue, " cmês"D;
H* v=2.2 10^5 cmês *L
Thermal energy, kB T = 0.0252617 eV
Vavg = 248 062. cmês
Vrms = 269 247. cmês
Vpeak = 219 839. cmês
NeutronDiffusion.nb
5
Task 1: Point Source
Task 1. Before tackling nuclear reactor models, let's just study simple neutron diffusion without any fission. Consider an infinite
volume of some material, say sodium to be specific, at room temperature with a thermal neutron point source at the origin that
emits S neutrons per second isotropically. The analytic solution for the steady state neutron flux is
j HrL =
S
‰-rêL
4pD
r
where D is the diffusion constant, L =
,
D ê Sa is called the diffusion length (refer to the class notes). Develop a Monte Carlo
simulation for this system and show that the flux follows this form, evaluate the diffusion length, and compare with the analytic
result. (One strategy is to launch a neutron from the origin in an arbitrary direction and track the trajectory until it is absorbed.
Assume that the neutron scatters isotropically from the nuclei of the moderating material. Keep track of the radius of the neutron
(suitably binned) for the purposes of constructing j, calculating the effective diffusion length at the end of the simulation, and
compare your Monte Carlo result with the analytic result, Eq.(7).)
ü Analytic results for mean free path and diffusion lengths
H* Use Sodium thermal neutron data *L
Avalue = 23;
data = 8r Ø .00097, nd Ø .02541, Ss Ø .08131, Sg Ø .01347 , Sf Ø 0, n Ø 0<;
H* Use Carbon thermal neutron data *L
Avalue = 12;
C12data = 8r Ø .00160, nd Ø .08023, Ss -> .3811, Sg Ø .0002728 , Sf Ø 0, n Ø 0<;
muavg@A_D = 2 ê H3 AL;
Sa = HSg + Sf L ê. data;
MFP = 1 ê Ss ê. data ê. Cons;
MFPabs = 1 ê Sa ê. data ê. Cons;
MFPtotal = 1 ê HSs + Sg + Sf L ê. data ê. Cons;
Diff = 1 ê HSa + Ss H1 - muavg@AvalueDLL ê 3 ê. data ê. Cons;
DAlt = Ss ê HSa + Ss H1 - muavg@AvalueDLL ^ 2 ê 3 ê. data ê. Cons;
L = Sqrt@Diff ê Sa D ê. data ê. Cons;
LAlt = Sqrt@DAlt ê Sa D ê. data ê. Cons;
AbsorptionLength = 1 ê Sa ê. data ê. Cons;
DiffTh = vspeed Diff;
H* Ss , Sa Ø cm^-1 *L
Print@" Mean Free Path HscatteringL = ", MFP, " cm"D
Print@" Mean Free Path HabsorptionL = ", MFPabs, " cm"D
Print@" Mean Free Path HtotalL = ", MFPtotal, " cm"D
Print@" Flux Diffusion constant: D = ", Diff, " cm,", " DHaltL = ", DAlt, " cm"D
Print@" Diffusion Length: L = ", L, " cm,", "
LHaltL = ", LAlt, " cm"D
Print@" Absorption MFP: = ", AbsorptionLength, " cm"D
Print@" Theoretical Density Diffusion constant = ", DiffTh, " cm^2ês"D
Mean Free Path HscatteringL = 12.2986 cm
Mean Free Path HabsorptionL = 74.239 cm
Mean Free Path HtotalL = 10.5507 cm
Flux Diffusion constant: D = 3.69292 cm,
Diffusion Length:
Absorption MFP:
L = 16.5577 cm,
DHaltL = 3.32664 cm
LHaltL = 15.7152 cm
= 74.239 cm
Theoretical Density Diffusion constant = 916 073. cm^2ês
ü Monte Carlo tracking of neutron paths
6
NeutronDiffusion.nb
Monte Carlo tracking of neutron paths
ü Track one neutron
dt = 5. µ 10 ^ -6; ds = 100 vavg@Troom D dt ê. Cons;
dPs = Ss ds ê. data;
dPa = HSg + Sf L ds ê. data;
Print@" For time step of ", dt, " sec, and average speed of, v = ",
vspeed, " cmês, distance per step = ", ds, " cm"D
Print@" The probability of scattering in one time step:"D
Print@" Pscatt = ", dPs, "
Pabs = ", dPaD
For time step of 5. µ 10-6 sec, and average speed of, v =
248 062. cmês, distance per step = 1.24031 cm
The probability of scattering in one time step:
Pscatt = 0.10085
Pabs = 0.016707
Clear@r, rlist, vectorsD
r = 80, 0, 0<; rlist = 8<; vcmvalue = vcm@AvalueD; voverAplus1 =
vspeed
1 + Avalue
;
ForB8vhat = 80, 0, 1<; r = 80, 0, 0<; iStep = 1; iStop = -1<, iStop < 0 && iStep < 103 , iStep ++,
:ran = RandomReal@D; IfBran < dPs, :vhatold = vhat; thcm = p RandomReal@D; phicm = 2 p RandomReal@D;
vlab = vcmvalue 8Sin@thcmD Cos@phicmD, Sin@thcmD Sin@phicmD, Cos@thcmD< + voverAplus1 vhat;
vlab
vhat =
; cos = vhat.vhatold; AppendTo@rlist, 8rP1T, rP2T<D>F;
vlab.vlab
If@dPs < ran < dPs + dPa, iStop = 1D; r = r + ds vhat; rmag =
r.r ;>F;
AppendTo@rlist, 8rP1T, rP2T<D;
rLen = Length@rlistD; vectors = Table@8rlistPiT, rlistPi + 1T - rlistPiT<, 8i, 1, rLen - 1<D;
If@rLen - 1 > 0, ListVectorFieldPlot@vectors, PlotRange Ø AllD, Print@" Absorbed on first step...try again"DD
ü
NeutronDiffusion.nb
ü Monte Carlo simulation
Nexp = number of "experiments"
Nneutrons= number of neutrons per experiment
dt = 5. 10 ^ -6; ds = vspeed dt;
dPs = Ss ds ê. data ê. Cons;
dPa = HSg + Sf L ds ê. data ê. Cons;
Print@" For time step of ", dt, " sec, and average speed of, v = ",
vspeed, " cmês, distance per step = ", ds, " cm"D
Print@" The probability of scattering in one time step:"D
Print@" Pscatt = ", dPs, "
Pabs = ", dPaD
For time step of 5. µ 10-6 sec, and average speed of, v =
248 062. cmês, distance per step = 1.24031 cm
The probability of scattering in one time step:
Pscatt = 0.10085
Pabs = 0.016707
7
8
NeutronDiffusion.nb
Clear@LenCosD
Nexp = 100; Nneutrons = 1000;
Rmax = 4 L; NRbins = 40; dR =
Rmax
NRbins
; NumDen = Table@0, 8i, 1, NRbins + 1<D;
vcmvalue = vcm@AvalueD; voverAplus1 =
vspeed
1 + Avalue
;
TimingBCosAvgTable = 8<; MFPAvgTable = 8<; RAvgTable = 8<; R2AvgTable = 8<; RAbsAvgTable = 8<;
NAbsAvgTable = 8<; DoBRtable = 8<; MFPtable = 8<; costable = 8<; Rabstable = 8<; nabstable = 8<;
DoBForB8vhat = 80, 0, 1<; r = 80, 0, 0<; NoScatt = 0; NoScattList = 8<; cossum = 0; nscatt = 0; iStep = 1; iStop = -1<,
iStop < 0 && iStep < 105 , iStep ++, :ran = RandomReal@D;
IfBran > dPs + dPa, NoScatt ++, IfBran < dPs, :vhatold = vhat; thcm = p RandomReal@D; phicm = 2 p RandomReal@D;
vlab = vcmvalue 8Sin@thcmD Cos@phicmD, Sin@thcmD Sin@phicmD, Cos@thcmD< + voverAplus1 vhat;
vlab
vhat =
; nscatt ++; cos = vhat.vhatold; cossum = cossum + cos;
vlab.vlab
AppendTo@NoScattList, NoScattD; NoScatt = 0>, AppendTo@NoScattList, NoScattD;
AppendTo@nabstable, iStepD; AppendTo@Rabstable, rmagD; iStop = 1FF; r = r + ds vhat; rmag =
rindex = FloorB
rmag
dR
F + 1; If@rindex > NRbins, NumDenPNRbins + 1T ++, NumDenPrindexT ++D;>F;
IfBnscatt > 0, AppendToBcostable,
cossum
nscatt
IfBLenNos > 0, AppendToBMFPtable, NB
FF; AppendToBRtable,
ds ⁄LenNos
NoScattListPiT
i=1
LenNos
⁄i=1
LenCos
LenCos = Length@costableD; AppendToBCosAvgTable, NB
r.r F; LenNos = Length@NoScattListD;
FFF;, 8j, 1, Nneutrons<F;
costablePiT
LenCos
FF;
LenMFP = Length@MFPtableD;
⁄i=1
LenMFP
AppendToBMFPAvgTable, NB
MFPtablePiT
LenMFP
FF;
LenR = Length@RtableD; AppendToBRAvgTable, NB
AppendToBR2AvgTable, NB
LenR
⁄i=1 RtablePiT2
LenR
LenR
⁄i=1 RtablePiT
LenR
FF;
FF;
LenRabs = Length@RabstableD;
⁄i=1
LenRabs
AppendToBRAbsAvgTable,
⁄i=1
RabstablePiT
LenRabs
LenNabs
AppendToBNAbsAvgTable,
8287.685, Null<
r.r ;
nabstablePiT
LenNabs
F; LenNabs = Length@nabstableD;
F;, 8iexp, 1, Nexp<F;F
NeutronDiffusion.nb
ü Calculate averages and deviations
H* Cosine Avergage *L
muavg@AvalueD;
LenCos = Length@CosAvgTableD;
CosAvg = N@Sum@CosAvgTable@@iDD, 8i, 1, LenCos<D ê LenCosD;
DelCos = Sqrt@Sum@HCosAvg - CosAvgTable@@iDDL ^ 2, 8i, 1, LenCos<D ê LenCosD;
H* Mean Free Path *L
LenMFP = Length@MFPAvgTableD;
MFPavg = N@Sum@MFPAvgTable@@iDD, 8i, 1, LenMFP<D ê LenMFPD;
DelMFP = Sqrt@Sum@HMFPAvgTable@@iDD - MFPavgL ^ 2, 8i, 1, LenMFP<D ê LenMFPD;
H* Average absorption radius *L
LenR = Length@RAvgTableD;
Ravg = N@Sum@RAvgTable@@iDD, 8i, 1, LenR<D ê LenRD;
R2avg = N@Sum@R2AvgTable@@iDD, 8i, 1, LenR<D ê LenRD;
DelR = Sqrt@Sum@HRAvgTable@@iDD - RavgL ^ 2, 8i, 1, LenR<D ê LenRD;
LenNabs = Length@NAbsAvgTableD; LenAbs = Length@RAbsAvgTableD;
If@LenNabs > 0,
8DisAbs = ds Sum@NAbsAvgTable@@iDD, 8i, 1, LenNabs<D ê LenNabs;
Rabsavg = Sum@RAbsAvgTable@@iDD, 8i, 1, LenAbs<D ê LenAbs;
DelRabs = Sqrt@Sum@HRabsavg - RAbsAvgTable@@iDDL ^ 2, 8i, 1, LenAbs<D ê LenAbsD< D;
Lifetime = dt Sum@NAbsAvgTable@@iDD, 8i, 1, LenNabs<D ê LenNabs;
H* Print Monte Carlo results *L
Print@" Avg of cosine of scattering angle = ",
CosAvg, " +ê- ", DelCos, " Analytic value = ", N@muavg@AvalueDDD
Print@" Mean Free Path: HMonte CarloL = ", MFPavg, " +ê- ",
DelMFP, " HAnalyticL = ", 1 ê HSg + Ss L ê. data, " cm"D
Print@" Average radius of the neutron distribution = ", Ravg,
" +ê- ", DelR, " cm
HanalyticL = ", 2 L, " cm"D
Print@" RMS radius = ", Sqrt@R2avgD, " cm HanalyticL = ", Sqrt@6D L, " cm"D
Print@" Lifetime = ", LifetimeD
Print@" Average total distance traveled before absorption = ", DisAbs, " cm"D
Print@" Average radius value at absorption = ", Rabsavg, " +ê_ ", DelRabs, " cm"D
PrintA" Flux diffusion constant DHfluxL = ", MFP ê 3, " +ê_ ", DelMFP ê 3, " cm-1 "E
PrintA" Density Diffusion Constant DHdensityL = ",
R2avg ê H6 LifetimeL, " cm2 ês
HAnalyticL = ", DiffTh, " cm2 ês"E
Avg of cosine of scattering angle = 0.0472911 +ê- 0.0134047
Mean Free Path: HMonte CarloL = 9.30533 +ê- 0.176019
Analytic value = 0.0555556
HAnalyticL = 10.5507 cm
Average radius of the neutron distribution = 30.7983 +ê- 0.853436 cm
RMS radius
= 39.114 cm
HanalyticL = 40.558 cm
HanalyticL = 33.1155 cm
Lifetime = 0.000298491
Average total distance traveled before absorption = 74.0442 cm
Average radius value at absorption = 30.7741 +ê_ 0.834495 cm
Flux diffusion constant DHfluxL = 4.09954 +ê_ 0.0586731 cm-1
Density Diffusion Constant DHdensityL = 854 246. cm2 ês
HAnalyticL = 916 073. cm2 ês
9
10
NeutronDiffusion.nb
ü Plot results
F, 8i, 1, NRbins<F;
Rmax
Hi dRL2
RPhiTable = Table@i dR PhiTablePiT, 8i, 3, NRbins<D;
LogRPhiTable = Table@Log@RPhiTablePiTD, 8i, 1, Length@RPhiTableD<D;
PhiFit@x_D = Fit@LogRPhiTable, 81, x<, xD;
Ravg
dR
LFit = ; LMC =
;
PhiFit@1D - PhiFit@0D
2
Print@" Diffusion Length
Monte Carlo
L = ", LMC, " cm"D
Print@"
Fit to simulation data
L = ", LFit, " cm"D
Print@"
Diffusion
L = ", L, " cm"D
Print@"
Diffusion-alt
L = ", LAlt, " cm"D
horizaxis = Style@"r HdR unitsL", FontFamily Ø "Tahoma", FontColor Ø Blue, FontWeight Ø Bold, FontSize Ø 12D;
vertaxis = Style@"Log @r jD", FontFamily Ø "Tahoma", FontColor Ø Blue, FontWeight Ø Bold, FontSize Ø 12D;
plotname = Style@"Fit to Log@r jD", FontFamily Ø "Tahoma", FontColor Ø Black, FontWeight Ø Bold, FontSize Ø 14D;
p1 = ListPlot@LogRPhiTable, DisplayFunction Ø Identity,
PlotStyle Ø 8RGBColor@1, 0, 0D, PointSize@0.02`D<, Frame Ø True, GridLines Ø Automatic, PlotLabel Ø plotname,
FrameLabel Ø 8horizaxis, vertaxis<, ImageSize Ø 400, Background Ø LightOrange, PlotRange Ø AllD;
p2 = Plot@PhiFit@xD, 8x, 0, NRbins<, DisplayFunction Ø Identity, PlotStyle Ø 8Blue, Thickness@0.005`D<,
Frame Ø True, GridLines Ø Automatic, PlotLabel Ø plotname, FrameLabel Ø 8horizaxis, vertaxis<,
ImageSize Ø 400, Background Ø LightOrange, PlotRange Ø AllD;
Show@p1, p2, DisplayFunction Ø $DisplayFunctionD
PhiTable = TableBIfBNumDenPiT ã 0,
1
,
NumDenPiT
2
Monte Carlo
L = 15.3992 cm
Fit to simulation data
L = 15.5973 cm
Diffusion
L = 16.5577 cm
Diffusion-alt
L = 15.7152 cm
Diffusion Length
Fit to Log@r jD
Log @r jD
10
9
8
7
6
0
10
r HdR unitsL
20
30
40
NeutronDiffusion.nb
norm = ‚ NumDenPiT; DenNormed = TableBNB
NRbins
NumDenPiT
i=1
norm
ShellVol@iR_D = dR3 4 p iR2 ; PhiMCTable = TableB: i -
Phi@x_D =
‰
x
LD
x
; norm = 4 p ‡ Phi@xD x2 „ x; Phi0@x_D =
¶
0
11
F, 8i, 1, NRbins<F;
1
2
dR,
Phi@xD
norm
DenNormedPiT
ShellVol@iD
>, 8i, 1, NRbins<F;
ê. LD Ø L;
dRF>, 8i, 1, NRbins<F;
2
2
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.02`D<, Frame Ø True, GridLines Ø Automatic, PlotLabel Ø plotname,
FrameLabel Ø 8horizaxis, vertaxis<, ImageSize Ø 400, Background Ø LightOrange, PlotRange Ø AllD;
p2 = ListPlot@PhiAnalyticTable, Joined Ø True, DisplayFunction Ø Identity,
PlotStyle Ø 8Blue, Thickness@0.004`D<, Frame Ø True, GridLines Ø Automatic, PlotLabel Ø plotname,
FrameLabel Ø 8horizaxis, vertaxis<, ImageSize Ø 400, Background Ø LightOrange, PlotRange Ø AllD;
Show@p1, p2, DisplayFunction Ø $DisplayFunctionD
PhiAnalyticTable = TableB: i -
1
dR, Phi0B i -
1
Task 2: Criticality for the infinite reactor
Task 2. Consider an infinite homogeneous mix of fissile 235 U (10% by weight) and sodium (90% by weight) at room temperature. (a) First find the composition average values for the macroscopic scattering, absorption, and fission cross sections. (b)
Develop a Monte Carlo simulation for this reactor to estimate the neutron multiplication factor, k¶ , and compare with the
expected analytic result,
k¶ =
n Sf
Sa
.
Track the neutron locations and plot the Monte Carlo modeled flux as a function of radius (suitably binned and normalized).
ü Calculate the macroscopic cross sections for the mixture (10% 235U, 99% Na) (by weight) and
analytic value of k¶ .
Clear@soln, massNa, nNa, massU, nU, VNa, VU, MixD
H* Thermal neutron values *L
Nadata = 8r Ø .00097, nd Ø .02541, Ss Ø .08131, Sg Ø .01347 , Sf Ø 0, n Ø 0<;
U235data = 8r Ø .01886, nd Ø .04833, Ss Ø .01588, Sg Ø 4.833, Sf -> 28.37, n Ø 2.42<;
VNa = 1 ë nd ê. Nadata; VU = 1 ë nd ê. U235data;
amu = 1.67 µ 10 ^ -27; rhoNa = r ê. Nadata; rhoU = r ê. U235data;
Mix = .1;
soln = Flatten@Solve@8nNa massNa Mix ã H1 - MixL massU nU, nNa VNa + nU VU == 1<, 8nNa, nU<DD;
NdenNa = HHnNa ê. solnL ê. 8VNa Ø massNa ê rhoNa, VU Ø massU ê rhoU<L ê. 8massU Ø 235 amu, massNa Ø 23 amu<;
NdenU = HHnU ê. solnL ê. 8VNa Ø massNa ê rhoNa, VU Ø massU ê rhoU<L ê. 8massU Ø 235 amu, massNa Ø 23 amu<;
H* check *L
NdenNa massNa ê HNdenU massUL ê. 8massU Ø 235 amu, massNa Ø 23 amu<;
Print@" Number density of Sodium = ", NdenNa, " H10^24êcm^3L"D
Print@" Number density of Uranium = ", NdenU , " H10^24êcm^3L"D
SigGMix = IINdenNa ë nd M Sg ê. NadataM + IINdenU ë nd M Sg ê. U235dataM;
SigSMix = IINdenNa ë nd M Ss ê. NadataM + IINdenU ë nd M Ss ê. U235dataM;
SigFMix = IINdenNa ë nd M Sf ê. NadataM + IINdenU ë nd M Sf ê. U235dataM;
NdenMix = NdenNa + NdenU;
rhoMix = HNdenNa 23 amu + NdenU 235 amuL;
etaMix = n ê. U235data;
data = 8r Ø rhoMix, nd Ø NdenMix, Ss Ø SigSMix, Sg Ø SigGMix, Sf Ø SigFMix, n Ø etaMix<
kinf = Hn Sf ê HSf + Sg LL ê. data;
Print@" k¶ HAnalyticL = ", kinfD
12
NeutronDiffusion.nb
Number density of Sodium
= 0.0252655
H10^24êcm^3L
Number density of Uranium = 0.000274755
H10^24êcm^3L
9r Ø 1.07828 µ 10-27 , nd Ø 0.0255403, Ss Ø 0.080938, Sg Ø 0.040869, Sf Ø 0.161283, n Ø 2.42=
k¶ HAnalyticL = 1.93075
ü Analytic diffusion properties
muavg@A_D = 2 ê H3 AL;
Avalue = 23;
Sa = HSg + Sf L ê. data;
MFP = 1 ê Ss ê. data;
MFPabs = 1 ê Sa ê. data;
MFPtotal = 1 ê HSs + Sg + Sf L ê. data;
Diff = 1 ê H 3 HSa + Ss H1 - muavg@AvalueDLLL ê. data;
L = Sqrt@Diff ê Sa D ê. data;
AbsorptionLength = 1 ê Sa ê. data;
DiffTh = v Diff;
H* Ss , Sa Ø cm^-1 *L
Print@" Mean Free Path HscatteringL = ", MFP, " cm"D
Print@" Mean Free Path HabsorptionL = ", MFPabs, " cm"D
Print@" Mean Free Path HtotalL = ", MFPtotal, " cm"D
Print@" Flux Diffusion constant: D = ", Diff, " cm"D
Print@" Diffusion Length: L = ", L, " cm"D
Print@" Absorption MFP: = ", AbsorptionLength, " cm"D
Print@" Theoretical Density Diffusion constant = ", DiffTh, " cm^2ês"D
Mean Free Path HscatteringL = 12.3551 cm
Mean Free Path HabsorptionL = 4.94677 cm
Mean Free Path HtotalL = 3.53245 cm
Flux Diffusion constant: D = 1.18732 cm
Diffusion Length:
Absorption MFP:
L = 2.42351 cm
= 4.94677 cm
Theoretical Density Diffusion constant = 294 529. cm^2ês
ü Monte Carlo calculation of" \!\Hk\_¶\L"
dt = 1. 10 ^ -6; ds = v dt ê. data ê. Cons;
dPs = Ss ds ê. data ê. Cons;
dPf = Sf ds ê. data ê. Cons;
dPg = Sg ds ê. data ê. Cons;
dPa = dPf + dPg;
Print@" For time step of ", dt, " sec, and average speed of, v = ",
v, " cmês, distance per step = ", ds, " cm"D
Print@" The probability of scattering in one time step:"D
Print@"
Scatter = ", dPs, " fission = ", dPf, "
capture =", dPgD
For time step of 1. µ 10-6 sec, and average speed of, v =
248 062. cmês, distance per step = 0.248062 cm
The probability of scattering in one time step:
Scatter = 0.0200776
fission = 0.0400082
capture =0.010138
NeutronDiffusion.nb
TimingBNneutrons = 20 000; Rtable = 8<; vcmvalue = vcm@AvalueD; voverAplus1 =
v
1 + Avalue
13
;
nfiss = 0; DoBForB8vhat = 80, 0, 1<; r = 80, 0, 0<; NoScatt = 0; iStep = 1; iStop = -1<,
iStop < 0 && iStep < 104 , iStep ++, :ran = RandomReal@D; IfBran > dPs + dPg + dPf, Null,
IfBran < dPs, :vhatold = vhat; thcm = p RandomReal@D; phicm = 2 p RandomReal@D; vlab =
vcmvalue 8Sin@thcmD Cos@phicmD, Sin@thcmD Sin@phicmD, Cos@thcmD< + voverAplus1 vhat; vhat =
vlab
vlab.vlab
If@ran < dPs + dPf, nfiss ++D; iStop = 1FF; r = r + ds vhat;>F; AppendToBRtable,
816.0877 Second, Null<
kinfMC = Hn nfiss ê NneutronsL ê. data;
Print@" k¶ HMonte CarloL = ", kinfMC, "
HAnalyticL = ", kinfD;
H* Average radius *L
LenR = Length@RtableD;
Ravg = N@Sum@Rtable@@iDD, 8i, 1, LenR<D ê LenRD;
ê
PrintA" Diffusion length HMC = Rê2L = ", Ravg ê 2, " cm
Analytic = ", L, " cm"E
k¶
HMonte CarloL = 1.93116
HAnalyticL = 1.93075
ê
Diffusion length HMC = Rê2L = 2.15267 cm
Analytic = 2.42351 cm
r.r F;, 8j, 1, Nneutrons<F;F
>,
Download