neutron and gamma beam simulation using openmc and python

21
Neutron and gamma beam simulation using OpenMC and Python’s libraries for Machine Learning M.Eng. Norberto Sebasti´ an Schmidt [email protected] Neutron Physics Department - Bariloche Atomic Center Comisi´on Nacional de Energ´ ıa At´ omica (CNEA) - Argentina 3 rd Workshop of Spanish Users on Nuclear Data on “Machine Learning in Nuclear Science and Technology Applications” May 27, 2021 M.Eng. Norberto S. Schmidt May 27, 2021 1 / 15

Upload: others

Post on 07-Jun-2022

21 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Neutron and gamma beam simulation using OpenMC and Python

Neutron and gamma beam simulation using OpenMCand Python’s libraries for Machine Learning

M.Eng. Norberto Sebastian Schmidt

[email protected]

Neutron Physics Department - Bariloche Atomic Center

Comision Nacional de Energıa Atomica (CNEA) - Argentina

3rd Workshop of Spanish Users on Nuclear Data on“Machine Learning in Nuclear Science and Technology Applications”

May 27, 2021

M.Eng. Norberto S. Schmidt May 27, 2021 1 / 15

Page 2: Neutron and gamma beam simulation using OpenMC and Python

Acknowledgments

Acknowledgments

• To my Master of Nuclear Engineering thesis directors: Ph.D. Jose Ignacio MarquezDamian (ESS) and Ph.D. Javier Dawidowski (CNEA).

• To M.Eng. Ariel Marquez (CNEA), Ph.D. Jose Robledo (CONICET) and B.Eng.Mauricio Debarbora (INVAP), for their helping knowledge.

• To B.Eng. Zoe Prieto (IB) and B.Eng. Inti Abbate (IB), for continuing thedevelopment of this method.

M.Eng. Norberto S. Schmidt May 27, 2021 2 / 15

Page 3: Neutron and gamma beam simulation using OpenMC and Python

Summary

Summary

1 Motivation

2 OpenMC

3 Kernel density estimation

4 Results

5 Conclusions

M.Eng. Norberto S. Schmidt May 27, 2021 3 / 15

Page 4: Neutron and gamma beam simulation using OpenMC and Python

Motivation

Motivation

Reactor block

Water

Reactor pool

Shutter

Reactor core

Neutron beamextraction tube

Collimator

BNCT filter

ShieldingsDisk chopper

Concrete walls

Beam catcherHe3 detectors

Surrounding box

RA-6 Research Reactor - Time-of-flight spectrometry experimental facility

Beam duct no 5 • Design of a time-of-flight spectrometryfacility in the RA-6 Research Reactor.

• Necessity to estimate the neutroncurrent at the exit of the duct.

M.Eng. Norberto S. Schmidt May 27, 2021 4 / 15

Page 5: Neutron and gamma beam simulation using OpenMC and Python

OpenMC OpenMC transport code description

OpenMC transport code description

BNCT

Reactorcore Reactor

pool

Reactorblock

Neutron beamextraction tube

Beam duct no5

Collimator

Shutter

Tracks surface

RA-6 Research Reactor - OpenMC model

• Open-source (https://openmc.org/).

• Modeling the RA-6 Research Reactorfrom IEU-COMP-THERM-014 NEABenchmark.

• Modification to write the particles thatcross a given surface.

• Possibility to transform track files to.mcpl format.

• Use the same track files to simulate theparticles in different codes (McStas,PHITS, etc.).

M.Eng. Norberto S. Schmidt May 27, 2021 5 / 15

Page 6: Neutron and gamma beam simulation using OpenMC and Python

OpenMC RA-6 Research Reactor radiation simulation

RA-6 Research Reactor radiation simulation

−200 −100 0 100 200x [cm]

−300

−200

−100

0

100

y[c

m]

J+n = (3.86± 0.04)× 109 [n /(cm2 s)]

Nn = 11622

RA-6 Research Reactor - Neutron flux

109

109

10 10

1011

10 12

10 13

108

109

1010

1011

1012

1013

1014

φ(x,y

)[n

/(cm

²s)

]−200 −100 0 100 200

x [cm]

−300

−200

−100

0

100

y[c

m]

J+γ = (3.09± 0.01)× 1010 [γ/(cm2 s)]

Nγ = 64441

RA-6 Research Reactor - Photon flux

10

9

109

109

10 9

10 9

109

10

9

109

10

9

10 9

10 9

109

1010

1011

10

12

1013

108

109

1010

1011

1012

1013

1014

φ(x,y

)[γ

/(cm

²s)

]

Source particles: 1× 109 n, time elapsed: 3.6× 105 s = 4.2 d, CPU: i7 8700 with 12 threads.

M.Eng. Norberto S. Schmidt May 27, 2021 6 / 15

Page 7: Neutron and gamma beam simulation using OpenMC and Python

How to generate more particles?

Example of scikit-learn kernel density estimation.

https://scikit-learn.org/stable/auto_examples/neighbors/plot_digits_kde_sampling.htm

M.Eng. Norberto S. Schmidt May 27, 2021 7 / 15

Page 8: Neutron and gamma beam simulation using OpenMC and Python

How to generate more particles?

M.Eng. Norberto S. Schmidt May 27, 2021 7 / 15

Page 9: Neutron and gamma beam simulation using OpenMC and Python

Kernel density estimation Univariate kernel density estimation

Univariate kernel density estimation

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00u

0.0

0.5

1.0

1.5

2.0

2.5

p(u

)

Probability of u direction component

KDE (h = 0.01)

KDE (h = 0.06)

KDE (h = 0.28)

Histogram (101 bins)

Bayesian blocks

f(x, h) =1

N · hN∑i=1

K

(x−Xi

h

)

Gaussian univariate kernel function:

K(z) =e−(z2/2)

√2π

⇒ h = σ

M.Eng. Norberto S. Schmidt May 27, 2021 8 / 15

Page 10: Neutron and gamma beam simulation using OpenMC and Python

Kernel density estimation Multivariate kernel density estimation

Multivariate kernel density estimation

−5.0 −2.5 0.0 2.5 5.0x [cm]

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

u

Histogram (51× 51 bins)

0.00

0.05

0.10

0.15

0.20

0.25

0.30

p(x,u

)

−5.0 −2.5 0.0 2.5 5.0x [cm]

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

u

KDE (hx = hu = 0.09)

0.00

0.05

0.10

0.15

0.20

0.25

0.30

p(x,u

)

−5.0 −2.5 0.0 2.5 5.0x [cm]

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

u

KDE (hx = hu = 0.46)

0.00

0.05

0.10

0.15

0.20

0.25

0.30

p(x,u

)

−5.0 −2.5 0.0 2.5 5.0x [cm]

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

u

KDE (hx = 0.46, hu = 0.09)

0.00

0.05

0.10

0.15

0.20

0.25

0.30

p(x,u

)

Probability of x position coordinate and u direction component

f(x,H) =1

N · det (H)

N∑i=1

K(H−1(x−Xi)

)Gaussian multivariate kernel function:

K(z) =e−(zT z/2)

(2π)(dim(z)/2)

If H is diagonal:

f(x,H) =1

N

N∑i=1

dim(x)∏j=1

1

hjK

(xj −Xj,i

hj

)

M.Eng. Norberto S. Schmidt May 27, 2021 9 / 15

Page 11: Neutron and gamma beam simulation using OpenMC and Python

Kernel density estimation Best bandwidth selection

Best bandwidth selection

−5.0 −2.5 0.0 2.5 5.0x [cm]

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

u

Histogram (51× 51 bins)

0.00

0.05

0.10

0.15

0.20

0.25

0.30

p(x,u

)

−5.0 −2.5 0.0 2.5 5.0x [cm]

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

u

KDE, Silverman (hx = hu = 0.46)

0.00

0.05

0.10

0.15

0.20

0.25

0.30

p(x,u

)

−5.0 −2.5 0.0 2.5 5.0x [cm]

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

u

KDE, scikit-learn (hx = hu = 0.09)

0.00

0.05

0.10

0.15

0.20

0.25

0.30

p(x,u

)

−5.0 −2.5 0.0 2.5 5.0x [cm]

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

u

KDE, statsmodels (hx = 0.27, hu = 0.03)

0.00

0.05

0.10

0.15

0.20

0.25

0.30

p(x,u

)

Probability of x position coordinate and u direction component

Python’s libraries for KDE:

1 scipy: Scott’s and Silverman’s rules(depends only on dim(x) and N).

2 scikit-learn: grid searchcross-validation (same h for eachvariable).

3 statsmodels: operator cross-validation(different h for each variable).

M.Eng. Norberto S. Schmidt May 27, 2021 10 / 15

Page 12: Neutron and gamma beam simulation using OpenMC and Python

Results Sampling particles with KDE

Sampling particles with KDE

1 Run a OpenMC eigenvalue core calculation.

2 Write the variables r,Ω, E,wgt of the particlesthat cross certain surface in a file.

r = ~r = (x, y, z = z0) = (R, θ, z = z0)

Ω = Ω = (u, v, w) = (ρ = 1, ϕ, ϑ)

3 Compute the multivariate KDE usingstatsmodels CV bandwidth selection for eachvariable.

4 Write the sampled particles in a .h5 format file.

5 Run a OpenMC fixed source calculation.

x

y

z

r

Ω

u

v

w

ϑ

φ

Coordinates ilustration.

M.Eng. Norberto S. Schmidt May 27, 2021 11 / 15

Page 13: Neutron and gamma beam simulation using OpenMC and Python

Results Sampling particles with KDE

Sampling particles with KDE

−6 −4 −2 0 2 4 6x [cm]

0.00

0.02

0.04

0.06

0.08

0.10

p(x

)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

−6 −4 −2 0 2 4 6y [cm]

0.00

0.02

0.04

0.06

0.08

0.10

0.12

p(y)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

2 4 6 8 10ξ = log (E0/E)

0.0

0.2

0.4

0.6

0.8

1.0

p(ξ)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00u

0.0

0.5

1.0

1.5

2.0

2.5

p(u

)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00v

0.0

0.5

1.0

1.5

2.0

2.5

p(v)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0wgt

0

2

4

6

8

10

p(w

gt)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

Best bandwidth comparison for neutron variables (in original coordinates).

M.Eng. Norberto S. Schmidt May 27, 2021 11 / 15

Page 14: Neutron and gamma beam simulation using OpenMC and Python

Results Sampling particles with KDE

Sampling particles with KDE

−6 −4 −2 0 2 4 6x [cm]

0.00

0.02

0.04

0.06

0.08

0.10

p(x

)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

−6 −4 −2 0 2 4 6y [cm]

0.00

0.02

0.04

0.06

0.08

0.10

p(y)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

2 4 6 8 10E [MeV]

0.0

0.5

1.0

1.5

2.0

2.5

3.0

3.5

4.0

p(E

)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00u

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

p(u

)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00v

0.00

0.25

0.50

0.75

1.00

1.25

1.50

1.75

p(v)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0wgt

0

2

4

6

8

10

p(w

gt)

CV 1-D statsmodels

CV N-D statsmodels

CV 1-D scikit-learn

Histogram (51 bins)

Bayesian blocks

Best bandwidth comparison for photon variables (in original coordinates).

M.Eng. Norberto S. Schmidt May 27, 2021 11 / 15

Page 15: Neutron and gamma beam simulation using OpenMC and Python

Results Calculation of current distributions

Calculation of current distributions

0 2 4 6 8 10 12ξ = log (E0/E)

105

106

107

108

109

J(ξ

)[n

/(cm

2s)

]

Original

Sampled

Neutron current lethargy distribution J(ξ).

10−4 10−2 100 102 104 106

E [eV]

100

102

104

106

108

1010

J(E

)[n

/(cm

2s

eV)]

Original

Sampled

Neutron current energy distribution J(E).

M.Eng. Norberto S. Schmidt May 27, 2021 12 / 15

Page 16: Neutron and gamma beam simulation using OpenMC and Python

Results Calculation of current distributions

Calculation of current distributions

Total 0 eV - 0.5 eV 0.5 eV - 1 MeV 1 MeV - 20 MeV

Ori

gina

lSa

mpl

edC

ompa

riso

n

Neutron current spatial distribution J(x, y)

M.Eng. Norberto S. Schmidt May 27, 2021 12 / 15

Page 17: Neutron and gamma beam simulation using OpenMC and Python

Results Calculation of current distributions

Calculation of current distributions

−6 −4 −2 0 2 4 6x [cm]

−6

−4

−2

0

2

4

6

y[c

m]

~rC

~rU

~rD

~rL ~rR

0 45 90 135 180 225 270 315 360ϕ []

0.0

0.5

1.0

1.5

2.0

2.5

3.0

j(~r U,ϑ

0,ϕ

)[n

/(cm

2s)

]

×106

Original: Total

Sampled: Total

Original: 0 eV - 0.5 eV

Sampled: 0 eV - 0.5 eV

Original: 0.5 eV - 1 MeV

Sampled: 0.5 eV - 1 MeV

Original: 1 MeV - 20 MeV

Sampled: 1 MeV - 20 MeV

0 45 90 135 180 225 270 315 360ϕ []

0.0

0.5

1.0

1.5

2.0

2.5

3.0j(~r L,ϑ

0,ϕ

)[n

/(cm

2s)

]

×106

0 45 90 135 180 225 270 315 360ϕ []

0.0

0.5

1.0

1.5

2.0

2.5

3.0

j(~r C,ϑ

0,ϕ

)[n

/(cm

2s)

]

×106

0 45 90 135 180 225 270 315 360ϕ []

0.0

0.5

1.0

1.5

2.0

2.5

3.0

j(~r R,ϑ

0,ϕ

)[n

/(cm

2s)

]

×106

0 45 90 135 180 225 270 315 360ϕ []

0.0

0.5

1.0

1.5

2.0

2.5

3.0

j(~r D,ϑ

0,ϕ

)[n

/(cm

2s)

]

×106

Neutron current angular distribution j(ϕ)

Ω

u

v

w

ϑ

φ

M.Eng. Norberto S. Schmidt May 27, 2021 12 / 15

Page 18: Neutron and gamma beam simulation using OpenMC and Python

Results Comparison with the original tracks results

Comparison with the original tracks results

−100 −75 −50 −25 0 25 50 75 100x [cm]

−325

−300

−275

−250

−225

−200

−175

−150

−125

y[c

m]

Neutron flux with original particles10

9

10 10

104

105

106

107

108

109

1010

φ(x,y

)[n

/(cm

²s)

]−100 −75 −50 −25 0 25 50 75 100

x [cm]

−325

−300

−275

−250

−225

−200

−175

−150

−125

y[c

m]

Neutron flux with KDE sampled particles

10

6

10

6

10

6

106

10

7

10

7

10

810

9

104

105

106

107

108

109

1010

φ(x,y

)[n

/(cm

²s)

]

M.Eng. Norberto S. Schmidt May 27, 2021 13 / 15

Page 19: Neutron and gamma beam simulation using OpenMC and Python

Results Comparison with the original tracks results

Comparison with the original tracks results

−100 −75 −50 −25 0 25 50 75 100x [cm]

−325

−300

−275

−250

−225

−200

−175

−150

−125

y[c

m]

Photon flux with original particles

10

9

109

109

10 9

10 9

109

10

9

109

10

9

10 9

10 9

109

1010

104

105

106

107

108

109

1010

φ(x,y

)[γ

/(cm

²s)

]−100 −75 −50 −25 0 25 50 75 100

x [cm]

−325

−300

−275

−250

−225

−200

−175

−150

−125

y[c

m]

Photon flux with KDE sampled particles

10

6

10 6

10

6

107

10

8

10

9

104

105

106

107

108

109

1010

φ(x,y

)[γ

/(cm

²s)

]

M.Eng. Norberto S. Schmidt May 27, 2021 13 / 15

Page 20: Neutron and gamma beam simulation using OpenMC and Python

Conclusions

Conclusions

1 All this work was done using open source codes and free software tools.

2 A modification to write track files with OpenMC was generated.

3 New particles from these track files can be sampled using kernel density estimation.

4 Python has several libraries that estimate automatically the best bandwidth for theparticles’ variables.

5 Distributions of sampled particles with statsmodels resemble with originals.

M.Eng. Norberto S. Schmidt May 27, 2021 14 / 15

Page 21: Neutron and gamma beam simulation using OpenMC and Python

Thank you for your time.

Questions?

M.Eng. Norberto S. Schmidt May 27, 2021 15 / 15