Skip to content

Latest commit

 

History

History
144 lines (102 loc) · 5.54 KB

README.md

File metadata and controls

144 lines (102 loc) · 5.54 KB

N|Python

CI with install

PyPI

codecov

A minimal Python package that produces slice plots through h5m DAGMC geometry files

Installation

pip install dagmc_geometry_slice_plotter

Graphical User Interface Usage

Once installed you will be able to launch a browser based GUI from the terminal with the command ...

dagmc_geometry_slice_plotter

Python API Usage

These examples assume you have a h5m file called dagmc.h5m in the same folder that the Python script is being run from.

The plot_axis_slice method allows simple axis aligned plots to be made with minimal user effort.

Create a plot of a slice through the geometry perpendicular to the Z axis and default settings elsewhere. This will slice through the the center of the geometry as plane_origin has not been specified in this example.

from dagmc_geometry_slice_plotter import plot_axis_slice

plot = plot_axis_slice(
    dagmc_file_or_trimesh_object='dagmc.h5m',
    view_direction='z',
)

plot.show()

dagmc slice plot

Create a plot of a slice through the geometry perpendicular to the Z axis, offset by 200cm and with default settings elsewhere.

from dagmc_geometry_slice_plotter import plot_axis_slice

plot = plot_axis_slice(
    dagmc_file_or_trimesh_object='dagmc.h5m',
    plane_origin=[0, 0, 200],
    view_direction='z'
)

plot.show()

dagmc slice plot

The plot_slice function allows more control over the plot as it allows arbitrary plane normals so that off axis slices can be made and allows the plot to be rotated.

Create a plot of a slice through the geometry perpendicular to the Y axis, with a rotation of 45 degrees and with default settings elsewhere. Also saves the plot with a high resolution (DPI)

from dagmc_geometry_slice_plotter import plot_slice

plot = plot_slice(
    dagmc_file_or_trimesh_object='dagmc.h5m',
    plane_normal=[0, 1, 0],
    rotate_plot=45,
)

plot.savefig('example_3_slice.png', dpi=600)

dagmc slice plot

Saves a png image of a plot of a slice through the geometry perpendicular to the X axis and and with an offset in the x axis.

from dagmc_geometry_slice_plotter import plot_slice

plot = plot_slice(
    dagmc_file_or_trimesh_object='dagmc.h5m',
    plane_normal = [1, 0, 0],
    plane_origin=[10, 0, 0],
    rotate_plot=270,
)

plot.savefig('example_4_slice.png')

dagmc slice plot

DAGMC files can also be made using packages like cad_to_dagmc or stl_to_h5m. This example uses CadQuery to make an STL file then converts the STL file to a DAGMC h5m file and plots a slice through the geometry

Custom plots

You can also use the package to access the the coordinates and lines that make up the outline and then plot these lines with your own MatplotLib script or other plotting package.

This example makes use of low level functionality in the package to extract the coordinates and lines then plot them in MatPlotLib. This offers users full customization of how the plots appear and also allows the plots to be combined with other types of plots such as

from dagmc_geometry_slice_plotter import get_slice_coordinates
import matplotlib.pyplot as plt

data = get_slice_coordinates(
    dagmc_file_or_trimesh_object="dagmc.h5m",
    plane_origin=[0, 0, 200],
    plane_normal=[0, 0, 1],
)

plt.axes().set_aspect("equal")  # scales the x y axis 1:1

for xy in data:
    plt.plot(*xy, color="black", linewidth=1)

plt.savefig("example_7_slice.png")

Related packages

  • This package is used by the openmc_plot Python package which has a web deployed version at xsplot.com

  • This package can also be used together with the openmc_geometry_plot Python package to combine outline slice plots of DAGMC geometry with colored areas for materials or cells

  • This package can also be used together with the regular_mesh_plotter Python package to combine outline slice plots with regular mesh tally results and produce images like below.

paramak plot openmc regular mesh tally

paramak plot openmc regular mesh tally