A Python package for extracting and plotting the locations, directions, energy distributions of OpenMC source particles.
Project description
A Python package for plotting the positions, directions or energy distributions of OpenMC sources.
Installation
pip install openmc_source_plotter
Features
The package simply extends the default openmc.Source
to provides additional functions that:
- extract the positions, directions and energy of particles
- visualise an
osp.SourceWithPlotting
with respect to:- direction
- energy
- position
Example plots
Below are some basic examples, for more examples see the examples folder for example usage scripts.
Plot of energy distribution of the source
import openmc
import openmc_source_plotter # extends openmc.Source with plotting functions
# initialises a new source object
my_source = openmc.Source()
# sets the energy distribution to a Muir distribution neutrons for DT fusion neutrons
my_source.energy = openmc.stats.Muir(e0=14080000.0, m_rat=5.0, kt=20000.0)
# plots the particle energy distribution
plot = my_source.plot_source_energy(n_samples=2000)
plot.show()
Plot of energy distribution of two sources
import openmc
import openmc_source_plotter # extends openmc.Source with plotting functions
# initialises a new source object
my_dt_source = openmc.Source()
# sets the energy distribution to a Muir distribution DT neutrons
my_dt_source.energy = openmc.stats.Muir(e0=14080000.0, m_rat=5.0, kt=20000.0)
# initialises a new source object
my_dd_source = openmc.Source()
# sets the energy distribution to a Muir distribution DD neutrons
my_dd_source.energy = openmc.stats.Muir(e0=2080000.0, m_rat=2.0, kt=20000.0)
# plots the particle energy distribution by building on the first plot
figure1 = my_dd_source.plot_source_energy(n_samples=10000)
figure2 = my_dt_source.plot_source_energy(figure=figure1, n_samples=10000)
figure2.show()
Plot direction of particles
import openmc
import openmc_source_plotter # extends openmc.Source with plotting functions
# initializes a new source object
my_source = openmc.Source()
# sets the direction to isotropic
my_source.angle = openmc.stats.Isotropic()
# plots the particle energy distribution
plot = my_source.plot_source_direction(n_samples=200)
plot.show()
Plot gamma spectrum of particles
import openmc
import openmc_source_plotter # adds plot_gamma_emission plot to materials
openmc.config["chain_file"] = "chain-endf.xml"
my_material = openmc.Material()
my_material.add_nuclide("Xe135", 1e-12)
my_material.add_nuclide("U235", 1)
my_material.add_nuclide("U238", 1)
my_material.add_nuclide("Co60", 1e-9)
my_material.volume = 1 # must be set so number of atoms can be found
# adds labels to the most active 3 gamma energies
plt = my_material.plot_gamma_emission(label_top=3)
plt.xscale("log") # modify axis from default settings
plt.savefig("gamma_spec.png")
Plot position of particles
import openmc
import openmc_source_plotter # extends openmc.Source with plotting functions
# initialises a new source object
my_source = openmc.Source()
# the distribution of radius is just a single value
radius = openmc.stats.Discrete([10], [1])
# the distribution of source z values is just a single value
z_values = openmc.stats.Discrete([0], [1])
# the distribution of source azimuthal angles
# values is a uniform distribution between 0 and 2 Pi
angle = openmc.stats.Uniform(a=0.0, b=2 * 3.14159265359)
# this makes the ring source using the three distributions and a radius
my_source.space = openmc.stats.CylindricalIndependent(
r=radius, phi=angle, z=z_values, origin=(0.0, 0.0, 0.0)
)
# plots the particle energy distribution
plot = my_source.plot_source_position()
plot.show()
Tokamak sources can also be plotted using the openmc-plasma-source package
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for openmc_source_plotter-0.6.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac2d317531fa55896470a620bc41d5f40fdcad25dace46d6ddd15e7abf805a7f |
|
MD5 | 8d322dff853b319c33f8d73482362f62 |
|
BLAKE2b-256 | f81dd65f1534b4bb68b01b2face7040a10cb8af7c823f6b3ead2f2d8aa7d65b9 |
Close
Hashes for openmc_source_plotter-0.6.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e47462e7b99ff1874cd8e070928242053a9f64c89285d4f46b853390bee783d |
|
MD5 | c2c031dcf6c33f872bbcb1a3f2363e79 |
|
BLAKE2b-256 | 75742de59cf86b8e585c14d5a6be82f135b13eb1646e268bd8c91fd56d0220b6 |