Skip to main content

A Python package for extracting and plotting the locations, directions, energy distributions of OpenMC source particles.

Project description

CI with install

Upload Python Package

A Python package for plotting the positions, directions or energy distributions of OpenMC sources.

Installation

You will need to have OpenMC version 0.14.0 or newer installed first.

pip install openmc_source_plotter

Features

The package provides three plotting functions that can plot source data from openmc objects.

  • plot_source_energy
  • plot_source_position
  • plot_source_direction
  • plot_gamma_emission

Additionally the package provides a convienient method of sampling particles

  • sample_initial_particles

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

:link:Link to example script.

openmc particle source energy plot

Plot of energy distribution of two sources

:link:Link to example script.

openmc particle source energy plot

Plot direction of particles

:link:Link to example script.

openmc particle source direction plot

Plot position of particles

:link:Link to example script.

openmc particle source position plot

Plot labeled gamma lines from material

:link:Link to example script.

gamma spec with labels

Extract particle objects

A list of openmc.Particle objects can be obtained using model.sample_initial_particles() or openmc.SourceBase.sample_initial_particles()

import openmc
from openmc_source_plotter import sample_initial_particles

settings = openmc.Settings()
settings.particles = 1
settings.batches = 1
my_source = openmc.IndependentSource()
my_source.energy = openmc.stats.muir(e0=14080000.0, m_rat=5.0, kt=20000.0)
settings.source = my_source
materials = openmc.Materials()
sph = openmc.Sphere(r=100, boundary_type="vacuum")
cell = openmc.Cell(region=-sph)
geometry = openmc.Geometry([cell])

model = openmc.Model(geometry, materials, settings)

particles = sample_initial_particles(this=model, n_samples=10)

print(particles)
>>>[<SourceParticle: neutron at E=1.440285e+07 eV>, <SourceParticle: neutron at E=1.397691e+07 eV>, <SourceParticle: neutron at E=1.393681e+07 eV>, <SourceParticle: neutron at E=1.470896e+07 eV>, <SourceParticle: neutron at E=1.460563e+07 eV>, <SourceParticle: neutron at E=1.420684e+07 eV>, <SourceParticle: neutron at E=1.413932e+07 eV>, <SourceParticle: neutron at E=1.412428e+07 eV>, <SourceParticle: neutron at E=1.464779e+07 eV>, <SourceParticle: neutron at E=1.391648e+07 eV>]

print(particles[0].E)
>>>1.440285e+07

Related packages

Tokamak sources can also be plotted using the openmc-plasma-source package

openmc_source_plotter_openmc-plasma-source_tokamak

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openmc_source_plotter-0.7.0.tar.gz (38.1 kB view hashes)

Uploaded Source

Built Distribution

openmc_source_plotter-0.7.0-py3-none-any.whl (8.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page