GithubHelp home page GithubHelp logo

openmc-dev / plotter Goto Github PK

View Code? Open in Web Editor NEW
44.0 17.0 17.0 3.37 MB

Native plotting GUI for model design and verification

License: MIT License

Python 100.00%
openmc particle-transport monte-carlo-simulation visualization geometry

plotter's People

Contributors

ai-pranto avatar billingsley-john avatar eepeterson avatar johvincau avatar kkiesling avatar landonjmitchell avatar paulromano avatar pshriwise avatar shimwell avatar steseg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plotter's Issues

Measurement tool

One thing that would be nice a mode in which a user could click and drag to get a measurement in the plot area. It would help a to ensure cells/components are sized correctly.

Plot source sites using `opnemc.lib.sample_exeternal_source`

As part of the latest NEA OpenMC workshop, we plotted source sites on top of the geometry and tally information. We did this using the openmc.Tracks class, but I don't see why we couldn't do the same here with the openmc.lib.sample_external_source feature.

It would provide an somewhat interactive to provide users some assurance that their source is defined correctly.

Support for cell instances

Now that OpenMC has a cell instance filter, it would be great if our plotter could tell you what instance of a cell you are looking at (in the status bar). This will require changing the API on the OpenMC side first, but once that's ready, it should be pretty straightforward to display the information in the plotter.

Migrating functionality to openmc repo and different approaches

Hi all

I've been exploring the landscape for plotting openmc materials, geometry and meshes.

I've got a few ideas about possible developments to the plotter that I wanted to share. and get peoples thoughts on.

  • πŸ›πŸ» When plotting a just a geometry we currently need to also load up materials. I've started trying to decouple the two with this PR but further PRs are needed if we want to remove this requirement.

  • πŸ›πŸ» When launching the plotter it loads up local xml files automatically. If we want to plot geometry or materials or meshtally we need openmc install and the openmc binary. For instance the plotter runs openmc in plot mode then loads up the resulting image. But there are other ways of finding the materials and geometry on a grid, using the openmc.Geometry.find() method I've written two functions that monkey patch openmc.Geometry to allow the materials or cells to be found on a grid and this grid becomes and image. These are not c++ based like the openmc plot but as there is no need to load nuclear data or run openmc the time to plot is comparable. Also the for loop could be parallelised if speed becomes an issue.

Proposal

Regardless of if we make use of the Geometry.find method I think it makes sense to migrate all data extraction functionality to openmc and then call it from the plotter. This will help keep the code in the plotter minimal and avoid duplication with openmc. If we do this then users have the option of using the plotter and the python API to make batch plots. This issue has come up on the forum and I've put in a PR for slicing regular meshes. I think there are 3 data extraction functions we need (cells, materials, mesh tally result). I think there are also some axis manipulation needed as well but that varies across the plotting tools (imshow is different to contour and plotly is different to mpl).

  • add slicing to the openmc.geometry class for materials and cells that uses openmc.geometry.find function
  • add slicing to the openmc openmc.RegularMesh class
  • make use of both functions here in the plotter and remove local versions

Questions

Is this totally going in the wrong direction?
Is the 🐍 python based find method robust enough to rely on?
Is it worth moving code to openmc so that it can be shared with API users?

Need call to openmc.capi.finalize upon exit

When the application exits, openmc.capi.finalize is never called which can (and, for me, often does) result in a segfault. Somewhere that needs to be called upon the application exiting.

Pip install via pypi

Hi all,

Just looking around the repo and noticed it is 100% python.

Therefore I think would be fairly straight forward to make a conda install and pip install on PyPi for this tool

What do you think, I am happy to help with this if the feature if it is of interest

Script mode

I've had a couple of requests from users now about being able to generate or re-generate images without opening the GUI. As a start it would be nice to be able to provide a saved view and regenerate an image by handing a flag and view file to the plotter entry point.

Trouble running openmc-plotter for the first time

Hi, I just installed the plotter using the following command in my openmc-env conda environment:
$ pip install openmc-plotter
I did not encounter any errors with the installation; however, when I tried to open the plotter with the following command:
$ openmc-plotter
I received the following error:

Traceback (most recent call last):
  File "/home/cdunn314/anaconda3/envs/openmc-env/bin/openmc-plotter", line 5, in <module>
    from openmc_plotter.__main__ import main
  File "/home/cdunn314/anaconda3/envs/openmc-env/lib/python3.10/site-packages/openmc_plotter/__main__.py", line 8, in <module>
    from PySide2 import QtCore, QtGui
ImportError: /lib/x86_64-linux-gnu/libgssapi_krb5.so.2: undefined symbol: krb5_ser_context_init, version krb5_3_MIT

I reinstalled PySide2, but I still encountered the same error when trying to run openmc-plotter. Does anyone know how to resolve this error?

Ability to reset to default view without resetting colors / other preferences

Sometimes I'm working with a model and I want to change the colors of certain materials / cells and move around in the model. Often, I just want to "zoom out" all the way back to the default view (ctrl+r), but when I do this, any color settings I've changed also get reset. It would be nice if there were an in-between option, or if resetting the view and resetting the color/other settings were two separate things.

Double click not working?

I just noticed that double-clicking doesn't seem to change the origin anymore. The updated coordinates show up in the text boxes for a moment while it is "Generating plot..." but the position never changes and then the coordinates displayed in the text boxes just get reset to what they were before.

Temp/Density Export

Just opened #34 and realized it wouldn't take much additional effort to export temperature and density information via the plotter too. Decided to add an issue so it isn't forgotten.

separate model settings from view settings

Right now, the state of the model view gets dumped into one large file plot_settings.pkl. It could be beneficial to separate information about the view and the model to save two different files. Basically, saving things about the view that are model independent (viewing plane, origin, plot size, whether to view by cell, mat, density, etc, possibly color, etc) as one file that can easily be reloaded and then save the information relevant to the model (mat ids, cell ids, etc) in a separate file. This would make it easier to check just the model for changes when reopening, but save some of the view settings so one doesn't have to redo those.

It's not clear how and where to exactly separate this information since right now it is all just part of the model object.

Overlap detection and search functionality

One feature mentioned by @makeclean is coloring of overlap regions. This shouldn't be too difficult to support (make sure overlap checking is always on in the plotter, add a new negative value to indicate an overlap region, color appropriately).

Another nice feature/tool to add to the plotter would be an overlap "detector" which would slice along a specified interval, stopping when an any overlapping regions are detected and displaying the slice it stopped on.

error when material density < 1

when I run openmc-plotter, if any material in my materials.xml file has a density < 1.0 g/cm3, I get

 ERROR: Need to specify a positive density on material [material_id]

I first noticed on a helium material (density on the order of 1e-4 g/cm3), but while debugging I noticed that I still get it even at 0.99 g/cm3, but not at 1.0 g/cm3. Not sure if this is by design perhaps.

installation issue with openmc-0.12-dev

Hello @pshriwise and @paulromano

I hope you are doing well. I tried installing the plotter using python3 setup.py build and then python3 setup.py install. build went OK but install gives error that openmc not found although when i use pip list command it shows both of them installed side by side and i am using openmc using ipython.
image

secondly with the recent changes (installation and others), i can't seem to run the plotter anyhow. I have used the python /path/to/openmc-plotter and other variants.

your help in this regard will be appreciated

Better way to check if plot settings are valid

Right now we get a lot of errors if the plot_settings.pkl file doesn't match the current model closely enough when starting the plotter. This happens often when building a model:

  1. Use plotter to view model
  2. Discover problem in model
  3. Close GUI (plot_settings.pkl is written)
  4. Model is extended or changed
  5. Re-load plotter and get a long list of errors about keys not found in the ID mapping

It would be really useful to have some kind of automated detection as to whether or not that file is still valid for the model. This will likely require some hashing of the XML files, which might be a useful feature to add to OpenMC itself.

Previous view present for first-time load

In #99 @kkiesling noted that a previous view appears in the Editmenu before any changes have been applied by the user.

The flow which causes this is:

  1. Model is loaded when initializing MainWindow
  2. PlotIndependent.masking is set to True for the initial current and active view.
  3. The GUI continues loading in MainWindow.loadGui and MainWindow.updateEditMenu is called
  4. (The crux) MainWindow.updateEditMenu calls the setChecked method of the masking check box to ensure it's state matches that of the view. If this call changes the state of that check box, then the callback method is going to trigger an applyChanges call and create a new view.

It seems to me that the default value of the masking check box in the color dialog doesn't match the view setting and results in the creation of a new view.

I verified this by adding this line in MainWindow.createMenuBar

self.maskingAction.setChecked(True)

before the item is connected to its callback method. This removed the superfluous previous view.

Because this mismatch in default value vs. widget state is subtle and likely to occur again, it might be good to consider a setting on the MainWindow class that disables the generation of new views until the GUI has finished loading.

feature request: user defined units

There are some super useful units built into the plotter

However in some cases it might be handy if the user can specify the units.

My use case is when using an EnergyFunctionFilter the code can't be sure what units the function (with the current lack of units in tallies)

In this case it would be useful if the user can assign units to make use of on the colorbar

This could potentially be part of adding a scaling factor #105 as one could have a scaling factor units as well.

feature request: mesh scaling options

Making use of this super plotter and I'm keen to be able to plot RegularMesh results with a custom scaling factor.

I am also keen to be able to plot with the RegularMesh result normalised by the voxel size.

I would be happy to put in a couple of PRs if the request sounds reasonable

Merge Conflicts

Merge conflicts occur betwwen

  1. check_statepoint
  2. mesh_yt
  3. reorganize_menus
    branches.

Upgrade PySide

We're stuck on PySide2 right now and due for an upgrade (perhaps to PySide6?)

Get colorbar data ranges from entire model instead of just the view

Right now when you plot something that requires a colorbar (ie color by temperature or density), the default behavior is to take the min and max data values for the colorbar from the current view. It would be beneficial to also have the option to color by the entire model data range instead of just the view. Currently, a user can manually set a custom data range, but that requires knowledge of the entire model already / can be tedious to change this.

A proposed solution is to add a check box to select a color bar based on the current view or the entire model.

The only obstacle to implementing this is that we currently only load data for the current view, so this full model data is not readily available with the current setup. While it may be possible to load the full model and determine this info, it may be slow/complex for large models. For this reason, I'd suggest the default behavior to still be to color based on view and only load this info if asked. Then we'd store the info to only have do this once per property.

Matplotlib figure canvas on high DPI monitor

One thing I've noticed is that the axis labels on the embedded matplotlib figure appear pretty small on my high DPI monitor (2560x1440 on a 14" screen). One way to fix the axis labels is:

from PySide2.QtCore import QCoreApplication, Qt
QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)

but this ends up screwing up the rest of the GUI (as well as the splash screen).

Ability to plot distributed cell tallies

Plotting tallies that use DistribcellFilter or CellInstanceFilter is quite onerous right now -- having the ability to plot such tallies would greatly improve the workflow for users.

"no Qt platform plugin could be initialised" - Can't run openmc-plotter

Hi, I'm having issues getting openmc-plotter to run. I was getting issues with pyside2, so i removed the environment I was using, and installed everything again. Openmc runs fine, but when I reinstalled openmc-plotter (using PIP), I get this error now.

"qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb."

Any help would be much appreciated, I'm pretty lost.

Cheers.

Additional mesh types

The plotter currently only supports visualization of MeshFilter results for a regular mesh. Addition of the following mesh types would be great at some point:

  • Rectilinear
  • Cylindrical
  • Spherical
  • Unstructured

Rectilinear is relatively low handing fruit, but the others are much more involved.

Generate plots.xml file for view

It would be really useful to be able to generate a plots.xml file from the plotter so views can be reproduced with the openmc executable.

Problem with openmc-plotter

Hello! I try to start openmc-plotter, but have error -
Traceback (most recent call last):
File "signature_bootstrap.py", line 110, in bootstrap
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/posixpath.py", line 152, in dirname
p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType
SystemError: could not initialize part 2

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/ilya/anaconda3/envs/openmc-env1/bin/openmc-plotter", line 5, in
from openmc_plotter.main import main
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/site-packages/openmc_plotter/main.py", line 11, in
from .main_window import MainWindow, _openmcReload
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/site-packages/openmc_plotter/main_window.py", line 14, in
import openmc
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/site-packages/openmc/init.py", line 1, in
from openmc.arithmetic import *
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/site-packages/openmc/arithmetic.py", line 4, in
import numpy as np
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/site-packages/numpy/init.py", line 144, in
from . import core
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/site-packages/numpy/core/init.py", line 23, in
from . import multiarray
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/site-packages/numpy/core/multiarray.py", line 81, in
def empty_like(prototype, dtype=None, order=None, subok=None, shape=None):
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/site-packages/numpy/core/overrides.py", line 201, in decorator
return array_function_dispatch(
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/site-packages/numpy/core/overrides.py", line 178, in decorator
def public_api(*args, **kwargs):
File "/home/ilya/anaconda3/envs/openmc-env1/lib/python3.10/functools.py", line 52, in update_wrapper
value = getattr(wrapped, attr)
SystemError: <method-wrapper 'get' of getset_descriptor object at 0x7fb5dfaf79c0> returned a result with an exception set

And maybe we help me with other one. I dont understand, why i cant use openmcdiscussionforum. My name - ilyavitte. When I try to make some topic, i see message - permission denied. Why?

Display coordinates are sometimes off

The transform method from Matplotlib sometimes uses the bottom of the x-axis text as the bottom of the viewing area and other times uses the bottom of the plot region. It is unclear under what conditions this happens, I'll need to take a look at the documentation.

Dialog on startup

It would be nice to have a small dialog on startup that just indicates that the model is loading rather than only seeing console output.

Python 3.11 is not supported

Hello, everyone!
I am trying to launch openmc-plotter and get the following error:

TypeError: 'PySide2.QtCore.Qt.Alignment' object cannot be interpreted as an integer
/home/alx8kv/venvs/env/lib/python3.11/site-packages/openmc_plotter/__main__.py:52: RuntimeWarning: libshiboken: Overflow: Value <PySide2.QtCore.Qt.Alignment object at 0x7fe048710ef0> exceeds limits of type  [signed] "i" (4bytes).
  splash.showMessage("Loading Model...",
Traceback (most recent call last):
  File "/home/alx8kv/venvs/env/bin/openmc-plotter", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/alx8kv/venvs/env/lib/python3.11/site-packages/openmc_plotter/__main__.py", line 32, in main
    run_app(args)
  File "/home/alx8kv/venvs/env/lib/python3.11/site-packages/openmc_plotter/__main__.py", line 52, in run_app
    splash.showMessage("Loading Model...",
OverflowError

I use Debian in WSL2, if that has anything to do with that. Everything was installed with pip, rather than conda.
If I am missing something, could you. please, point me in the right direction?

New Active/Current View Paradigm

Now that we're using matplotlib as a viewing backend and generating images based on id/property maps, many of the view updates which used to require calls into OpenMC can now be done by modifying the data we're storing in place in the GUI.

While this creates an opportunity to make the GUI run more smoothly, it also blurs the lines between the "active view" (the updated, but unapplied view) and the "current view" (the view on screen) in the plotting model. Where before, any change to the current view would require plot regeneration we can now limit this to parameters being passed to the get_id_map/get_property_map function and do all other updates on the current set of data stored on the model. We now need to distinguish between these items to do it properly throughout the model, view, and controller. As part of this effort, I'm going to attempt to only enable the Apply Changes buttons when new id/property map generation is necessary to update the view to ensure this isn't being hit unnecessarily by users.

Material composition viewer

Analagous to #81, displaying material compositions in the context menu or status bar would be a really useful debugging capability.

Qt6 support

I just noticed that Qt 6 now exists, along with corresponding Python bindings PySide6 and PyQt6. Eventually we'll want to add support for this new version.

plotter does not open/launch in a conda environment - either duplicate Qt issues or just hangs

I created a new conda environment to install the plotter (two actually, see below) and both fail to launch the plotter (two different errors). In each case below, I mamba install openmc and pip install -e the plotter source.

First attempt: I created a new environment from the default conda base env

>> conda create --name test_plotter --clone base
>> mamba install -c conda-forge openmc
>> pip install -e .

The above install steps work. But then trying to launch the plotter (from the test/setup_test/ dir) gives this error:

>> openmc-plotter 
objc[23633]: Class RunLoopModeTracker is implemented in both /Users/kkiesling/opt/anaconda3/envs/test_plotter/lib/python3.9/site-packages/PySide2/Qt/lib/QtCore.framework/Versions/5/QtCore (0x1140ae288) and /Users/kkiesling/opt/anaconda3/envs/test_plotter/lib/libQt5Core.5.9.7.dylib (0x14420aa80). One of the two will be used. Which one is undefined.
QObject::moveToThread: Current thread (0x6000022b6f40) is not the object's thread (0x6000022bc050).
Cannot move to target thread (0x6000022b6f40)

You might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
qt.qpa.plugin: Could not load the Qt platform plugin "cocoa" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: cocoa, minimal, offscreen.

Abort trap: 6

Install/env info:

conda packages

>> conda list
# packages in environment at /Users/kkiesling/opt/anaconda3/envs/test_plotter:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0            py39hecd8cb5_0  
alabaster                 0.7.12             pyhd3eb1b0_0  
anaconda-client           1.9.0            py39hecd8cb5_0  
anaconda-project          0.10.1             pyhd3eb1b0_0  
anyio                     2.2.0            py39hecd8cb5_1  
appdirs                   1.4.4              pyhd3eb1b0_0  
applaunchservices         0.2.1              pyhd3eb1b0_0  
appnope                   0.1.2           py39hecd8cb5_1001  
appscript                 1.1.2            py39h9ed2024_0  
argh                      0.26.2           py39hecd8cb5_0  
argon2-cffi               20.1.0           py39h9ed2024_1  
arrow                     0.13.1           py39hecd8cb5_0  
asn1crypto                1.4.0                      py_0  
astroid                   2.6.6            py39hecd8cb5_0  
astropy                   4.3.1            py39hf9932de_0  
async_generator           1.10               pyhd3eb1b0_0  
atomicwrites              1.4.0                      py_0  
attrs                     21.2.0             pyhd3eb1b0_0  
autopep8                  1.5.7              pyhd3eb1b0_0  
babel                     2.9.1              pyhd3eb1b0_0  
backcall                  0.2.0              pyhd3eb1b0_0  
backports                 1.0                pyhd3eb1b0_2  
backports.functools_lru_cache 1.6.4              pyhd3eb1b0_0  
backports.shutil_get_terminal_size 1.0.0              pyhd3eb1b0_3  
backports.tempfile        1.0                pyhd3eb1b0_1  
backports.weakref         1.0.post1                  py_1  
beautifulsoup4            4.10.0             pyh06a4308_0  
binaryornot               0.4.4              pyhd3eb1b0_1  
bitarray                  2.3.0            py39h9ed2024_1  
bkcharts                  0.2              py39hecd8cb5_0  
black                     19.10b0                    py_0  
blas                      1.0                         mkl  
bleach                    4.0.0              pyhd3eb1b0_0  
blosc                     1.21.0               h2842e9f_0  
bokeh                     2.4.1            py39hecd8cb5_0  
boto                      2.49.0           py39hecd8cb5_0  
bottleneck                1.3.2            py39he3068b8_1  
brotli                    1.0.9                hb1e8313_2  
brotlipy                  0.7.0           py39h9ed2024_1003  
brunsli                   0.1                  h23ab428_0  
bzip2                     1.0.8                h1de35cc_0  
c-ares                    1.17.1               h9ed2024_0  
ca-certificates           2022.4.26            hecd8cb5_0  
cached-property           1.5.2                      py_0  
certifi                   2021.10.8        py39h6e9494a_2    conda-forge
cffi                      1.14.6           py39h2125817_0  
cfitsio                   4.1.0                h2c97ad1_0    conda-forge
chardet                   4.0.0           py39hecd8cb5_1003  
charls                    2.2.0                h23ab428_0  
charset-normalizer        2.0.4              pyhd3eb1b0_0  
click                     8.0.3              pyhd3eb1b0_0  
cloudpickle               2.0.0              pyhd3eb1b0_0  
clyent                    1.2.2            py39hecd8cb5_1  
colorama                  0.4.4              pyhd3eb1b0_0  
conda-content-trust       0.1.1              pyhd3eb1b0_0  
conda-pack                0.6.0              pyhd3eb1b0_0  
conda-package-handling    1.8.1            py39hca72f7f_0  
conda-repo-cli            1.0.4              pyhd3eb1b0_0  
conda-verify              3.4.2                      py_1  
contextlib2               0.6.0.post1        pyhd3eb1b0_0  
cookiecutter              1.7.2              pyhd3eb1b0_0  
cryptography              3.4.8            py39h2fd3fbb_0  
curl                      7.82.0               hca72f7f_0  
cycler                    0.10.0           py39hecd8cb5_0  
cython                    0.29.24          py39he9d5cce_0  
cytoolz                   0.11.0           py39h9ed2024_0  
daal4py                   2021.3.0         py39h01d92e1_0  
dagmc                     3.2.1           nompi_py39hb622291_108    conda-forge
dal                       2021.3.0           hecd8cb5_555  
dask                      2021.10.0          pyhd3eb1b0_0  
dask-core                 2021.10.0          pyhd3eb1b0_0  
dataclasses               0.8                pyh6d0b6a4_7  
debugpy                   1.4.1            py39h23ab428_0  
decorator                 5.1.0              pyhd3eb1b0_0  
defusedxml                0.7.1              pyhd3eb1b0_0  
diff-match-patch          20200713           pyhd3eb1b0_0  
distributed               2021.10.0        py39hecd8cb5_0  
docutils                  0.17.1           py39hecd8cb5_1  
eigen                     3.4.0                h940c156_0    conda-forge
entrypoints               0.3              py39hecd8cb5_0  
et_xmlfile                1.1.0            py39hecd8cb5_0  
fastcache                 1.1.0            py39h9ed2024_0  
filelock                  3.3.1              pyhd3eb1b0_1  
flake8                    3.9.2              pyhd3eb1b0_0  
flask                     1.1.2              pyhd3eb1b0_0  
fonttools                 4.25.0             pyhd3eb1b0_0  
freetype                  2.10.4               ha233b18_0  
fsspec                    2021.8.1           pyhd3eb1b0_0  
future                    0.18.2           py39hecd8cb5_1  
get_terminal_size         1.0.0                h7520d66_0  
gevent                    21.8.0           py39h9ed2024_1  
giflib                    5.2.1                haf1e3a3_0  
glob2                     0.7                pyhd3eb1b0_0  
gmp                       6.2.1                h23ab428_2  
gmpy2                     2.0.8            py39h4b98818_3  
greenlet                  1.1.1            py39h23ab428_0  
h5py                      3.6.0           nompi_py39hbc6cb89_100    conda-forge
hdf4                      4.2.15               hefd3b78_3    conda-forge
hdf5                      1.12.1          nompi_ha60fbc9_104    conda-forge
heapdict                  1.0.1              pyhd3eb1b0_0  
html5lib                  1.1                pyhd3eb1b0_0  
icu                       58.2                 h0a44026_3  
idna                      3.2                pyhd3eb1b0_0  
imagecodecs               2021.3.31        py39h5071892_0    conda-forge
imageio                   2.9.0              pyhd3eb1b0_0  
imagesize                 1.2.0              pyhd3eb1b0_0  
importlib-metadata        4.8.1            py39hecd8cb5_0  
importlib_metadata        4.8.1                hd3eb1b0_0  
inflection                0.5.1            py39hecd8cb5_0  
iniconfig                 1.1.1              pyhd3eb1b0_0  
intel-openmp              2021.4.0          hecd8cb5_3538  
intervaltree              3.1.0              pyhd3eb1b0_0  
ipykernel                 6.4.1            py39hecd8cb5_1  
ipython                   7.29.0           py39h01d92e1_0  
ipython_genutils          0.2.0              pyhd3eb1b0_1  
ipywidgets                7.6.5              pyhd3eb1b0_1  
isort                     5.9.3              pyhd3eb1b0_0  
itsdangerous              2.0.1              pyhd3eb1b0_0  
jbig                      2.1                  h4d881f8_0  
jdcal                     1.4.1              pyhd3eb1b0_0  
jedi                      0.18.0           py39hecd8cb5_1  
jinja2                    2.11.3             pyhd3eb1b0_0  
jinja2-time               0.2.0              pyhd3eb1b0_2  
joblib                    1.1.0              pyhd3eb1b0_0  
jpeg                      9d                   h9ed2024_0  
json5                     0.9.6              pyhd3eb1b0_0  
jsonschema                3.2.0              pyhd3eb1b0_2  
jupyter                   1.0.0            py39hecd8cb5_7  
jupyter_client            6.1.12             pyhd3eb1b0_0  
jupyter_console           6.4.0              pyhd3eb1b0_0  
jupyter_core              4.8.1            py39hecd8cb5_0  
jupyter_server            1.4.1            py39hecd8cb5_0  
jupyterlab                3.2.1              pyhd3eb1b0_1  
jupyterlab_pygments       0.1.2                      py_0  
jupyterlab_server         2.8.2              pyhd3eb1b0_0  
jupyterlab_widgets        1.0.0              pyhd3eb1b0_1  
jxrlib                    1.1                  haf1e3a3_2  
keyring                   23.1.0           py39hecd8cb5_0  
kiwisolver                1.3.1            py39h23ab428_0  
krb5                      1.19.2               hcd88c3b_0  
lazy-object-proxy         1.6.0            py39h9ed2024_0  
lcms2                     2.12                 hf1fd2bf_0  
lerc                      2.2.1                h046ec9c_0    conda-forge
libaec                    1.0.4                hb1e8313_1  
libarchive                3.4.2                haa3ed63_0  
libblas                   3.9.0              12_osx64_mkl    conda-forge
libcblas                  3.9.0              12_osx64_mkl    conda-forge
libcurl                   7.82.0               h6dfd666_0  
libcxx                    13.0.1               hc203e6f_0    conda-forge
libdeflate                1.7                  h35c211d_5    conda-forge
libedit                   3.1.20210910         hca72f7f_0  
libev                     4.33                 h9ed2024_1  
libffi                    3.3                  hb1e8313_2  
libgfortran               5.0.0           9_3_0_h6c81a4c_23    conda-forge
libgfortran5              9.3.0               h6c81a4c_23    conda-forge
libiconv                  1.16                 h1de35cc_0  
liblapack                 3.9.0              12_osx64_mkl    conda-forge
liblief                   0.10.1               h23ab428_1  
libllvm11                 11.1.0               h9b2ccf5_0  
libnetcdf                 4.8.1           nompi_h6609ca0_101    conda-forge
libnghttp2                1.46.0               ha29bfda_0  
libpng                    1.6.37               ha441bb4_0  
libsodium                 1.0.18               h1de35cc_0  
libsolv                   0.7.20               h8346a28_0  
libspatialindex           1.9.3                h23ab428_0  
libssh2                   1.9.0                ha12b0ac_1  
libtiff                   4.2.0                h87d7836_0  
libuv                     1.40.0               haf1e3a3_0  
libwebp                   1.2.0                hacca55c_0  
libwebp-base              1.2.0                h9ed2024_0  
libxml2                   2.9.12               hcdb78fc_0  
libxslt                   1.1.34               h83b36ba_0  
libzip                    1.8.0                h8b0c345_1    conda-forge
libzlib                   1.2.11            h6c3fc93_1014    conda-forge
libzopfli                 1.0.3                hb1e8313_0  
llvm-openmp               12.0.0               h0dcd299_1  
llvmlite                  0.37.0           py39he4411ff_1  
locket                    0.2.1            py39hecd8cb5_1  
lxml                      4.6.3            py39h26b266a_0  
lz4-c                     1.9.3                h23ab428_1  
lzo                       2.10                 haf1e3a3_2  
markupsafe                1.1.1            py39h9ed2024_0  
matplotlib                3.4.3            py39hecd8cb5_0  
matplotlib-base           3.4.3            py39h0a11d32_0  
matplotlib-inline         0.1.2              pyhd3eb1b0_2  
mccabe                    0.6.1            py39hecd8cb5_1  
metis                     5.1.0             h2e338ed_1006    conda-forge
mistune                   0.8.4           py39h9ed2024_1000  
mkl                       2021.4.0           hecd8cb5_637  
mkl-service               2.4.0            py39h9ed2024_0  
mkl_fft                   1.3.1            py39h4ab4a9b_0  
mkl_random                1.2.2            py39hb2f4e1b_0  
moab                      5.3.1           nompi_tempest_py39h3c1fb0f_5    conda-forge
mock                      4.0.3              pyhd3eb1b0_0  
more-itertools            8.10.0             pyhd3eb1b0_0  
mpc                       1.1.0                h6ef4df4_1  
mpfr                      4.0.2                h9066e36_1  
mpi                       1.0                       mpich  
mpich                     3.3.2                hd33e60e_4    conda-forge
mpmath                    1.2.1            py39hecd8cb5_0  
msgpack-python            1.0.2            py39hf7b0b51_1  
multipledispatch          0.6.0            py39hecd8cb5_0  
munkres                   1.1.4                      py_0  
mypy_extensions           0.4.3            py39hecd8cb5_0  
navigator-updater         0.2.1            py39hecd8cb5_0  
nbclassic                 0.2.6              pyhd3eb1b0_0  
nbclient                  0.5.3              pyhd3eb1b0_0  
nbconvert                 6.1.0            py39hecd8cb5_0  
nbformat                  5.1.3              pyhd3eb1b0_0  
ncurses                   6.3                  hca72f7f_1  
nest-asyncio              1.5.1              pyhd3eb1b0_0  
networkx                  2.6.3              pyhd3eb1b0_0  
nltk                      3.6.5              pyhd3eb1b0_0  
nose                      1.3.7           pyhd3eb1b0_1006  
notebook                  6.4.5            py39hecd8cb5_0  
numba                     0.54.1           py39hae1ba45_0  
numexpr                   2.7.3            py39h5873af2_1  
numpy                     1.20.3           py39h4b4dc7a_0  
numpy-base                1.20.3           py39he0bd621_0  
numpydoc                  1.1.0              pyhd3eb1b0_1  
olefile                   0.46               pyhd3eb1b0_0  
openjpeg                  2.4.0                h66ea3da_0  
openmc                    0.13.0          dagmc_py39h9c88ee2_101    conda-forge
openmc-plotter            0.2.0                     dev_0    <develop>
openpyxl                  3.0.9              pyhd3eb1b0_0  
openssl                   1.1.1o               hfe4f2af_0    conda-forge
packaging                 21.0               pyhd3eb1b0_0  
pandas                    1.3.4            py39h743cdd8_0  
pandocfilters             1.4.3            py39hecd8cb5_1  
parso                     0.8.2              pyhd3eb1b0_0  
partd                     1.2.0              pyhd3eb1b0_0  
path                      16.0.0           py39hecd8cb5_0  
path.py                   12.5.0               hd3eb1b0_0  
pathlib2                  2.3.6            py39hecd8cb5_2  
pathspec                  0.7.0                      py_0  
patsy                     0.5.2            py39hecd8cb5_0  
pep8                      1.7.1            py39hecd8cb5_0  
pexpect                   4.8.0              pyhd3eb1b0_3  
pickleshare               0.7.5           pyhd3eb1b0_1003  
pillow                    8.4.0            py39h98e4679_0  
pip                       21.2.4           py39hecd8cb5_0  
pkginfo                   1.7.1            py39hecd8cb5_0  
pluggy                    0.13.1           py39hecd8cb5_0  
ply                       3.11             py39hecd8cb5_0  
poyo                      0.5.0              pyhd3eb1b0_0  
prometheus_client         0.11.0             pyhd3eb1b0_0  
prompt-toolkit            3.0.20             pyhd3eb1b0_0  
prompt_toolkit            3.0.20               hd3eb1b0_0  
psutil                    5.8.0            py39h9ed2024_1  
ptyprocess                0.7.0              pyhd3eb1b0_2  
py                        1.10.0             pyhd3eb1b0_0  
py-lief                   0.10.1           py39h23ab428_1  
pycodestyle               2.7.0              pyhd3eb1b0_0  
pycosat                   0.6.3            py39h9ed2024_0  
pycparser                 2.20                       py_2  
pycurl                    7.44.1           py39hbcfaee0_1  
pydocstyle                6.1.1              pyhd3eb1b0_0  
pyerfa                    2.0.0            py39h9ed2024_0  
pyflakes                  2.3.1              pyhd3eb1b0_0  
pygments                  2.10.0             pyhd3eb1b0_0  
pyjwt                     2.1.0            py39hecd8cb5_0  
pylint                    2.9.6            py39hecd8cb5_1  
pyls-spyder               0.4.0              pyhd3eb1b0_0  
pyodbc                    4.0.31           py39h23ab428_0  
pyopenssl                 21.0.0             pyhd3eb1b0_1  
pyparsing                 3.0.4              pyhd3eb1b0_0  
pyqt                      5.9.2            py39h23ab428_6  
pyrsistent                0.18.0           py39hca72f7f_0  
pyside2                   5.15.2.1                 pypi_0    pypi
pysocks                   1.7.1            py39hecd8cb5_0  
pytables                  3.7.0            py39hfd850c7_0    conda-forge
pytest                    6.2.4            py39hecd8cb5_2  
python                    3.9.7                h88f2d9e_1  
python-dateutil           2.8.2              pyhd3eb1b0_0  
python-libarchive-c       2.9                pyhd3eb1b0_1  
python-lsp-black          1.0.0              pyhd3eb1b0_0  
python-lsp-jsonrpc        1.0.0              pyhd3eb1b0_0  
python-lsp-server         1.2.4              pyhd3eb1b0_0  
python-slugify            5.0.2              pyhd3eb1b0_0  
python.app                3                py39hca72f7f_0  
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.3             pyhd3eb1b0_0  
pywavelets                1.1.1            py39he3068b8_4  
pyyaml                    6.0              py39hca72f7f_1  
pyzmq                     22.2.1           py39h23ab428_1  
qdarkstyle                3.0.2              pyhd3eb1b0_0  
qstylizer                 0.1.10             pyhd3eb1b0_0  
qt                        5.9.7                h468cd18_1  
qtawesome                 1.0.2              pyhd3eb1b0_0  
qtconsole                 5.1.1              pyhd3eb1b0_0  
qtpy                      1.10.0             pyhd3eb1b0_0  
readline                  8.1                  h9ed2024_0  
regex                     2021.8.3         py39h9ed2024_0  
reproc                    14.2.4               he9d5cce_1  
reproc-cpp                14.2.4               he9d5cce_1  
requests                  2.26.0             pyhd3eb1b0_0  
ripgrep                   12.1.1                        0  
rope                      0.19.0             pyhd3eb1b0_0  
rtree                     0.9.7            py39hecd8cb5_1  
ruamel_yaml               0.15.100         py39h9ed2024_0  
scikit-image              0.18.3           py39hae1ba45_0  
scikit-learn              0.24.2           py39hb2f4e1b_0  
scikit-learn-intelex      2021.3.0         py39hecd8cb5_0  
scipy                     1.8.0            py39h056f1c0_1    conda-forge
seaborn                   0.11.2             pyhd3eb1b0_0  
send2trash                1.8.0              pyhd3eb1b0_1  
setuptools                58.0.4           py39hecd8cb5_0  
shiboken2                 5.15.2.1                 pypi_0    pypi
simplegeneric             0.8.1            py39hecd8cb5_2  
singledispatch            3.7.0           pyhd3eb1b0_1001  
sip                       4.19.13          py39h23ab428_0  
six                       1.16.0             pyhd3eb1b0_0  
snappy                    1.1.8                hb1e8313_0  
sniffio                   1.2.0            py39hecd8cb5_1  
snowballstemmer           2.1.0              pyhd3eb1b0_0  
sortedcollections         2.1.0              pyhd3eb1b0_0  
sortedcontainers          2.4.0              pyhd3eb1b0_0  
soupsieve                 2.2.1              pyhd3eb1b0_0  
sphinx                    4.2.0              pyhd3eb1b0_1  
sphinxcontrib             1.0              py39hecd8cb5_1  
sphinxcontrib-applehelp   1.0.2              pyhd3eb1b0_0  
sphinxcontrib-devhelp     1.0.2              pyhd3eb1b0_0  
sphinxcontrib-htmlhelp    2.0.0              pyhd3eb1b0_0  
sphinxcontrib-jsmath      1.0.1              pyhd3eb1b0_0  
sphinxcontrib-qthelp      1.0.3              pyhd3eb1b0_0  
sphinxcontrib-serializinghtml 1.1.5              pyhd3eb1b0_0  
sphinxcontrib-websupport  1.2.4                      py_0  
spyder                    5.1.5            py39hecd8cb5_1  
spyder-kernels            2.1.3            py39hecd8cb5_0  
sqlalchemy                1.4.22           py39h9ed2024_0  
sqlite                    3.36.0               hce871da_0  
statsmodels               0.12.2           py39h9ed2024_0  
sympy                     1.9              py39hecd8cb5_0  
tbb                       2021.4.0             haf03e11_0  
tbb4py                    2021.4.0         py39haf03e11_0  
tblib                     1.7.0              pyhd3eb1b0_0  
tempest-remap             2.1.1                hb577637_0    conda-forge
terminado                 0.9.4            py39hecd8cb5_0  
testpath                  0.5.0              pyhd3eb1b0_0  
text-unidecode            1.3                pyhd3eb1b0_0  
textdistance              4.2.1              pyhd3eb1b0_0  
threadpoolctl             2.2.0              pyh0d69192_0  
three-merge               0.1.1              pyhd3eb1b0_0  
tifffile                  2021.4.8           pyhd8ed1ab_0    conda-forge
tinycss                   0.4             pyhd3eb1b0_1002  
tk                        8.6.11               h7bc2e8c_0  
toml                      0.10.2             pyhd3eb1b0_0  
toolz                     0.11.1             pyhd3eb1b0_0  
tornado                   6.1              py39h9ed2024_0  
tqdm                      4.62.3             pyhd3eb1b0_1  
traitlets                 5.1.0              pyhd3eb1b0_0  
typed-ast                 1.4.3            py39h9ed2024_1  
typing_extensions         3.10.0.2           pyh06a4308_0  
tzdata                    2021e                hda174b7_0  
ujson                     4.0.2            py39h23ab428_0  
uncertainties             3.1.6              pyhd8ed1ab_0    conda-forge
unicodecsv                0.14.1           py39hecd8cb5_0  
unidecode                 1.2.0              pyhd3eb1b0_0  
unixodbc                  2.3.9                haf1e3a3_0  
urllib3                   1.26.7             pyhd3eb1b0_0  
watchdog                  2.1.3            py39hd5f6b7e_0  
wcwidth                   0.2.5              pyhd3eb1b0_0  
webencodings              0.5.1            py39hecd8cb5_1  
werkzeug                  2.0.2              pyhd3eb1b0_0  
wheel                     0.37.0             pyhd3eb1b0_1  
whichcraft                0.6.1              pyhd3eb1b0_0  
widgetsnbextension        3.5.1            py39hecd8cb5_0  
wrapt                     1.12.1           py39h9ed2024_1  
wurlitzer                 2.1.1            py39hecd8cb5_0  
xlrd                      2.0.1              pyhd3eb1b0_0  
xlsxwriter                3.0.1              pyhd3eb1b0_0  
xlwings                   0.24.9           py39hecd8cb5_0  
xlwt                      1.3.0            py39hecd8cb5_0  
xmltodict                 0.12.0             pyhd3eb1b0_0  
xz                        5.2.5                h1de35cc_0  
yaml                      0.2.5                haf1e3a3_0  
yapf                      0.31.0             pyhd3eb1b0_0  
zeromq                    4.3.4                h23ab428_0  
zfp                       0.5.5                h23ab428_6  
zict                      2.0.0              pyhd3eb1b0_0  
zipp                      3.6.0              pyhd3eb1b0_0  
zlib                      1.2.11            h6c3fc93_1014    conda-forge
zope                      1.0              py39hecd8cb5_1  
zope.event                4.5.0            py39hecd8cb5_0  
zope.interface            5.4.0            py39h9ed2024_0  
zstd                      1.4.9                h322a384_0  

pip packages

>> pip list
Package                            Version              Location
---------------------------------- -------------------- -------------------------------------
alabaster                          0.7.12
anaconda-client                    1.9.0
anaconda-project                   0.10.1
anyio                              2.2.0
appdirs                            1.4.4
applaunchservices                  0.2.1
appnope                            0.1.2
appscript                          1.1.2
argh                               0.26.2
argon2-cffi                        20.1.0
arrow                              0.13.1
asn1crypto                         1.4.0
astroid                            2.6.6
astropy                            4.3.1
async-generator                    1.10
atomicwrites                       1.4.0
attrs                              21.2.0
autopep8                           1.5.7
Babel                              2.9.1
backcall                           0.2.0
backports.functools-lru-cache      1.6.4
backports.shutil-get-terminal-size 1.0.0
backports.tempfile                 1.0
backports.weakref                  1.0.post1
beautifulsoup4                     4.10.0
binaryornot                        0.4.4
bitarray                           2.3.0
bkcharts                           0.2
black                              19.10b0
bleach                             4.0.0
bokeh                              2.4.1
boto                               2.49.0
Bottleneck                         1.3.2
brotlipy                           0.7.0
cached-property                    1.5.2
certifi                            2021.10.8
cffi                               1.14.6
chardet                            4.0.0
charset-normalizer                 2.0.4
click                              8.0.3
cloudpickle                        2.0.0
clyent                             1.2.2
colorama                           0.4.4
conda-content-trust                0+unknown
conda-pack                         0.6.0
conda-package-handling             1.8.1
conda-repo-cli                     1.0.4
conda-verify                       3.4.2
contextlib2                        0.6.0.post1
cookiecutter                       1.7.2
cryptography                       3.4.8
cycler                             0.10.0
Cython                             0.29.24
cytoolz                            0.11.0
daal4py                            2021.3.0
dask                               2021.10.0
debugpy                            1.4.1
decorator                          5.1.0
defusedxml                         0.7.1
diff-match-patch                   20200713
distributed                        2021.10.0
docutils                           0.17.1
entrypoints                        0.3
et-xmlfile                         1.1.0
fastcache                          1.1.0
filelock                           3.3.1
flake8                             3.9.2
Flask                              1.1.2
fonttools                          4.25.0
fsspec                             2021.8.1
future                             0.18.2
gevent                             21.8.0
glob2                              0.7
gmpy2                              2.0.8
greenlet                           1.1.1
h5py                               3.6.0
HeapDict                           1.0.1
html5lib                           1.1
idna                               3.2
imagecodecs                        2021.3.31
imageio                            2.9.0
imagesize                          1.2.0
importlib-metadata                 4.8.1
inflection                         0.5.1
iniconfig                          1.1.1
intervaltree                       3.1.0
ipykernel                          6.4.1
ipython                            7.29.0
ipython-genutils                   0.2.0
ipywidgets                         7.6.5
isort                              5.9.3
itsdangerous                       2.0.1
jdcal                              1.4.1
jedi                               0.18.0
Jinja2                             2.11.3
jinja2-time                        0.2.0
joblib                             1.1.0
json5                              0.9.6
jsonschema                         3.2.0
jupyter                            1.0.0
jupyter-client                     6.1.12
jupyter-console                    6.4.0
jupyter-core                       4.8.1
jupyter-server                     1.4.1
jupyterlab                         3.2.1
jupyterlab-pygments                0.1.2
jupyterlab-server                  2.8.2
jupyterlab-widgets                 1.0.0
keyring                            23.1.0
kiwisolver                         1.3.1
lazy-object-proxy                  1.6.0
libarchive-c                       2.9
llvmlite                           0.37.0
locket                             0.2.1
lxml                               4.6.3
MarkupSafe                         1.1.1
matplotlib                         3.4.3
matplotlib-inline                  0.1.2
mccabe                             0.6.1
mistune                            0.8.4
mkl-fft                            1.3.1
mkl-random                         1.2.2
mkl-service                        2.4.0
mock                               4.0.3
more-itertools                     8.10.0
mpmath                             1.2.1
msgpack                            1.0.2
multipledispatch                   0.6.0
munkres                            1.1.4
mypy-extensions                    0.4.3
navigator-updater                  0.2.1
nbclassic                          0.2.6
nbclient                           0.5.3
nbconvert                          6.1.0
nbformat                           5.1.3
nest-asyncio                       1.5.1
networkx                           2.6.3
nltk                               3.6.5
nose                               1.3.7
notebook                           6.4.5
numba                              0.54.1
numexpr                            2.7.3
numpy                              1.20.3
numpydoc                           1.1.0
olefile                            0.46
openmc                             0.13.0
openmc-plotter                     0.2.0                /Users/kkiesling/software/opt/plotter
openpyxl                           3.0.9
packaging                          21.0
pandas                             1.3.4
pandocfilters                      1.4.3
parso                              0.8.2
partd                              1.2.0
path                               16.0.0
pathlib2                           2.3.6
pathspec                           0.7.0
patsy                              0.5.2
pep8                               1.7.1
pexpect                            4.8.0
pickleshare                        0.7.5
Pillow                             8.4.0
pip                                21.2.4
pkginfo                            1.7.1
pluggy                             0.13.1
ply                                3.11
poyo                               0.5.0
prometheus-client                  0.11.0
prompt-toolkit                     3.0.20
psutil                             5.8.0
ptyprocess                         0.7.0
py                                 1.10.0
pycodestyle                        2.7.0
pycosat                            0.6.3
pycparser                          2.20
pycurl                             7.44.1
pydocstyle                         6.1.1
pyerfa                             2.0.0
pyflakes                           2.3.1
Pygments                           2.10.0
PyJWT                              2.1.0
pylint                             2.9.6
pyls-spyder                        0.4.0
pymoab                             5.3.1
pyodbc                             4.0.0-unsupported
pyOpenSSL                          21.0.0
pyparsing                          3.0.4
pyrsistent                         0.18.0
PySide2                            5.15.2.1
PySocks                            1.7.1
pytest                             6.2.4
python-dateutil                    2.8.2
python-lsp-black                   1.0.0
python-lsp-jsonrpc                 1.0.0
python-lsp-server                  1.2.4
python-slugify                     5.0.2
pytz                               2021.3
PyWavelets                         1.1.1
PyYAML                             6.0
pyzmq                              22.2.1
QDarkStyle                         3.0.2
qstylizer                          0.1.10
QtAwesome                          1.0.2
qtconsole                          5.1.1
QtPy                               1.10.0
regex                              2021.8.3
requests                           2.26.0
rope                               0.19.0
Rtree                              0.9.7
ruamel-yaml-conda                  0.15.100
scikit-image                       0.18.3
scikit-learn                       0.24.2
scikit-learn-intelex               2021.20210714.100439
scipy                              1.8.0
seaborn                            0.11.2
Send2Trash                         1.8.0
setuptools                         58.0.4
shiboken2                          5.15.2.1
simplegeneric                      0.8.1
singledispatch                     3.7.0
sip                                4.19.13
six                                1.16.0
sniffio                            1.2.0
snowballstemmer                    2.1.0
sortedcollections                  2.1.0
sortedcontainers                   2.4.0
soupsieve                          2.2.1
Sphinx                             4.2.0
sphinxcontrib-applehelp            1.0.2
sphinxcontrib-devhelp              1.0.2
sphinxcontrib-htmlhelp             2.0.0
sphinxcontrib-jsmath               1.0.1
sphinxcontrib-qthelp               1.0.3
sphinxcontrib-serializinghtml      1.1.5
sphinxcontrib-websupport           1.2.4
spyder                             5.1.5
spyder-kernels                     2.1.3
SQLAlchemy                         1.4.22
statsmodels                        0.12.2
sympy                              1.9
tables                             3.7.0
TBB                                0.2
tblib                              1.7.0
terminado                          0.9.4
testpath                           0.5.0
text-unidecode                     1.3
textdistance                       4.2.1
threadpoolctl                      2.2.0
three-merge                        0.1.1
tifffile                           2021.4.8
tinycss                            0.4
toml                               0.10.2
toolz                              0.11.1
tornado                            6.1
tqdm                               4.62.3
traitlets                          5.1.0
typed-ast                          1.4.3
typing-extensions                  3.10.0.2
ujson                              4.0.2
uncertainties                      3.1.6
unicodecsv                         0.14.1
Unidecode                          1.2.0
urllib3                            1.26.7
watchdog                           2.1.3
wcwidth                            0.2.5
webencodings                       0.5.1
Werkzeug                           2.0.2
wheel                              0.37.0
whichcraft                         0.6.1
widgetsnbextension                 3.5.1
wrapt                              1.12.1
wurlitzer                          2.1.1
xlrd                               2.0.1
XlsxWriter                         3.0.1
xlwings                            0.24.9
xlwt                               1.3.0
xmltodict                          0.12.0
yapf                               0.31.0
zict                               2.0.0
zipp                               3.6.0
zope.event                         4.5.0
zope.interface                     5.4.0

Second Attempt: create empty python-only conda env and install from there

>> conda create --name openmc-plotter-dev python --no-default-packages
>> conda install -c conda-forge mamba
>> mamba install -c conda-forge openmc
>> pip install -e .

Again, installs fine, but then launching the plotter doesn't work. It doesn't actually give any error or stop, it just hangs indefinitely and the doing ctrl + c over and over again doesn't do anything to kill the process.

env info

conda packages

>> conda list
# packages in environment at /Users/kkiesling/opt/anaconda3/envs/openmc-plotter-dev:
#
# Name                    Version                   Build  Channel
appnope                   0.1.3                    pypi_0    pypi
asttokens                 2.0.5                    pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
brotli                    1.0.9                h5eb16cf_7    conda-forge
brotli-bin                1.0.9                h5eb16cf_7    conda-forge
brotlipy                  0.7.0           py310h1961e1f_1004    conda-forge
bzip2                     1.0.8                h1de35cc_0  
c-ares                    1.18.1               h0d85af4_0    conda-forge
ca-certificates           2021.10.8            h033912b_0    conda-forge
cached-property           1.5.2                hd8ed1ab_1    conda-forge
cached_property           1.5.2              pyha770c72_1    conda-forge
certifi                   2021.10.8       py310h2ec42d9_2    conda-forge
cffi                      1.15.0          py310hc55c11b_1  
charset-normalizer        2.0.12             pyhd8ed1ab_0    conda-forge
colorama                  0.4.4              pyh9f0ad1d_0    conda-forge
conda                     4.12.0          py310h2ec42d9_0    conda-forge
conda-package-handling    1.8.1           py310h1961e1f_1    conda-forge
cryptography              36.0.2          py310hd6fa1ae_1    conda-forge
curl                      7.82.0               hca72f7f_0  
cycler                    0.11.0             pyhd8ed1ab_0    conda-forge
dagmc                     3.2.1           nompi_py39hb622291_108    conda-forge
decorator                 5.1.1                    pypi_0    pypi
eigen                     3.4.0                h940c156_0    conda-forge
executing                 0.8.3                    pypi_0    pypi
fonttools                 4.33.3          py310h6c45266_0    conda-forge
freetype                  2.10.4               h4cff582_1    conda-forge
future                    0.18.2          py310h2ec42d9_5    conda-forge
giflib                    5.2.1                hbcb3906_2    conda-forge
h5py                      3.6.0           nompi_py310h47026f8_100    conda-forge
hdf4                      4.2.15               hefd3b78_3    conda-forge
hdf5                      1.12.1          nompi_h2f0ef1a_100    conda-forge
icu                       68.2                 he49afe7_0    conda-forge
idna                      3.3                pyhd8ed1ab_0    conda-forge
ipython                   8.3.0                    pypi_0    pypi
jbig                      2.1               h0d85af4_2003    conda-forge
jedi                      0.18.1                   pypi_0    pypi
jpeg                      9e                   h5eb16cf_1    conda-forge
kiwisolver                1.4.2           py310h6be76da_1    conda-forge
krb5                      1.19.2               hcfbf3a7_3    conda-forge
lcms2                     2.12                 h577c468_0    conda-forge
lerc                      2.2.1                h046ec9c_0    conda-forge
libarchive                3.5.2                h2b60450_1    conda-forge
libblas                   3.9.0           14_osx64_openblas    conda-forge
libbrotlicommon           1.0.9                h5eb16cf_7    conda-forge
libbrotlidec              1.0.9                h5eb16cf_7    conda-forge
libbrotlienc              1.0.9                h5eb16cf_7    conda-forge
libcblas                  3.9.0           14_osx64_openblas    conda-forge
libcurl                   7.82.0               h6dfd666_0  
libcxx                    13.0.1               hc203e6f_0    conda-forge
libdeflate                1.7                  h35c211d_5    conda-forge
libedit                   3.1.20191231         h0678c8f_2    conda-forge
libev                     4.33                 haf1e3a3_1    conda-forge
libffi                    3.3                  hb1e8313_2  
libgfortran               5.0.0           9_3_0_h6c81a4c_23    conda-forge
libgfortran5              9.3.0               h6c81a4c_23    conda-forge
libiconv                  1.16                 haf1e3a3_0    conda-forge
liblapack                 3.9.0           14_osx64_openblas    conda-forge
libmamba                  0.21.2               h9ce2d19_0    conda-forge
libmambapy                0.21.2          py310hb14de0f_0    conda-forge
libnetcdf                 4.8.1           nompi_h6609ca0_101    conda-forge
libnghttp2                1.46.0               ha29bfda_0  
libopenblas               0.3.20          openmp_hb3cd9ec_0    conda-forge
libpng                    1.6.37               h7cec526_2    conda-forge
libsolv                   0.7.19               hcf210ce_5    conda-forge
libssh2                   1.10.0               h52ee1ee_2    conda-forge
libtiff                   4.3.0                h1167814_1    conda-forge
libwebp                   1.2.2                h28dabe5_0    conda-forge
libwebp-base              1.2.2                h0d85af4_1    conda-forge
libxml2                   2.9.12               h93ec3fd_0    conda-forge
libxslt                   1.1.33               h5739fc3_2    conda-forge
libzip                    1.8.0                h8b0c345_1    conda-forge
llvm-openmp               14.0.3               ha654fa7_0    conda-forge
lxml                      4.8.0           py310h1961e1f_2    conda-forge
lz4-c                     1.9.3                he49afe7_1    conda-forge
lzo                       2.10              haf1e3a3_1000    conda-forge
mamba                     0.21.2          py310h795411f_0    conda-forge
matplotlib-base           3.5.2           py310h4510841_0    conda-forge
matplotlib-inline         0.1.3                    pypi_0    pypi
metis                     5.1.0             h2e338ed_1006    conda-forge
moab                      5.3.1           nompi_tempest_py310h50ec82b_5    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
ncurses                   6.3                  hca72f7f_2  
numpy                     1.22.3          py310he1f95b8_2    conda-forge
openmc                    0.13.0          dagmc_py310hcb866d1_101    conda-forge
openmc-plotter            0.2.0                     dev_0    <develop>
openssl                   1.1.1o               hfe4f2af_0    conda-forge
packaging                 21.3               pyhd8ed1ab_0    conda-forge
pandas                    1.4.2           py310h514ec25_1    conda-forge
parso                     0.8.3                    pypi_0    pypi
pexpect                   4.8.0                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pillow                    9.0.1           py310hde71d04_0  
pip                       21.2.4          py310hecd8cb5_0  
prompt-toolkit            3.0.29                   pypi_0    pypi
ptyprocess                0.7.0                    pypi_0    pypi
pure-eval                 0.2.2                    pypi_0    pypi
pybind11-abi              4                    hd8ed1ab_3    conda-forge
pycosat                   0.6.3           py310h1961e1f_1010    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pygments                  2.12.0                   pypi_0    pypi
pymoab                    5.3.1                    pypi_0    pypi
pyopenssl                 22.0.0             pyhd8ed1ab_0    conda-forge
pyparsing                 3.0.8              pyhd8ed1ab_0    conda-forge
pyside2                   5.15.2.1                 pypi_0    pypi
pysocks                   1.7.1           py310h2ec42d9_5    conda-forge
python                    3.10.4               hdfd78df_0  
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python_abi                3.10                    2_cp310    conda-forge
pytz                      2022.1             pyhd8ed1ab_0    conda-forge
readline                  8.1.2                hca72f7f_1  
reproc                    14.2.3               h0d85af4_0    conda-forge
reproc-cpp                14.2.3               he49afe7_0    conda-forge
requests                  2.27.1             pyhd8ed1ab_0    conda-forge
ruamel_yaml               0.15.80         py310he24745e_1006    conda-forge
scipy                     1.8.0           py310h47774c9_1    conda-forge
setuptools                61.2.0          py310hecd8cb5_0  
shiboken2                 5.15.2.1                 pypi_0    pypi
six                       1.16.0             pyh6c4a22f_0    conda-forge
sqlite                    3.38.2               h707629a_0  
stack-data                0.2.0                    pypi_0    pypi
tempest-remap             2.1.1                hb577637_0    conda-forge
tk                        8.6.11               h7bc2e8c_0  
tqdm                      4.64.0             pyhd8ed1ab_0    conda-forge
traitlets                 5.1.1                    pypi_0    pypi
tzdata                    2022a                hda174b7_0  
uncertainties             3.1.6              pyhd8ed1ab_0    conda-forge
unicodedata2              14.0.0          py310h1961e1f_1    conda-forge
urllib3                   1.26.9             pyhd8ed1ab_0    conda-forge
wcwidth                   0.2.5                    pypi_0    pypi
wheel                     0.37.1             pyhd3eb1b0_0  
xz                        5.2.5                hca72f7f_1  
yaml                      0.2.5                h0d85af4_2    conda-forge
yaml-cpp                  0.6.3                hb1e8313_4    conda-forge
zlib                      1.2.12               h4dc903c_2  
zstd                      1.5.0                h582d3a0_0    conda-forge

pip packages

>> pip list
Package                Version   Location
---------------------- --------- -------------------------------------
appnope                0.1.3
asttokens              2.0.5
backcall               0.2.0
brotlipy               0.7.0
cached-property        1.5.2
certifi                2021.10.8
cffi                   1.15.0
charset-normalizer     2.0.12
colorama               0.4.4
conda                  4.12.0
conda-package-handling 1.8.1
cryptography           36.0.2
cycler                 0.11.0
decorator              5.1.1
executing              0.8.3
fonttools              4.33.3
future                 0.18.2
h5py                   3.6.0
idna                   3.3
ipython                8.3.0
jedi                   0.18.1
kiwisolver             1.4.2
libmambapy             0.21.2
lxml                   4.8.0
mamba                  0.21.2
matplotlib             3.5.2
matplotlib-inline      0.1.3
munkres                1.1.4
numpy                  1.22.3
openmc                 0.13.0
openmc-plotter         0.2.0     /Users/kkiesling/software/opt/plotter
packaging              21.3
pandas                 1.4.2
parso                  0.8.3
pexpect                4.8.0
pickleshare            0.7.5
Pillow                 9.0.1
pip                    21.2.4
prompt-toolkit         3.0.29
ptyprocess             0.7.0
pure-eval              0.2.2
pycosat                0.6.3
pycparser              2.21
Pygments               2.12.0
pymoab                 5.3.1
pyOpenSSL              22.0.0
pyparsing              3.0.8
PySide2                5.15.2.1
PySocks                1.7.1
python-dateutil        2.8.2
pytz                   2022.1
requests               2.27.1
ruamel-yaml-conda      0.15.80
scipy                  1.8.0
setuptools             61.2.0
shiboken2              5.15.2.1
six                    1.16.0
stack-data             0.2.0
tqdm                   4.64.0
traitlets              5.1.1
uncertainties          3.1.6
unicodedata2           14.0.0
urllib3                1.26.9
wcwidth                0.2.5
wheel                  0.37.1

Notes/thoughts:

In the first attempt, note that there are both Qt-related packages in both the conda list and pip list. I think that if it exists in the conda env already, we need to use that. But it's not clear to me if there is an easy way to detect that. I did try to uninstall things via pip or conda here, but that just led to more issues.

In the second attempt from an empty environment, I am not sure what is causing the hang up. Qt-related packages do not appear in either list, except that PySide2 is in both (though conda indicates its from pip, so it should be the same package in each).

Use of Geometry.from_xml

Before we were using Geometry.from_xml to get a bunch of information on cells and materials. Now that everything goes through libopenmc, there's almost no need for it. If I'm not mistaken, the only place we're actually using information from the Geometry object is to get the bounding box. Perhaps we should make that information available from C++/libopenmc itself. Given that we've discussed other uses of bounding boxes in C++, seems like that would be a useful addition there anyway.

An Error In Openmc Plotter

Hi,Everyone!
There is an error when I use the Openmc-Plotter through Ubuntu & Xming.Here is the error:

File β€œ/home/rookie/anaconda3/envs/openmc-env/lib/python3.10/site-packages/openmc_plotter/plotgui.py”, line 75, in getPlotCoords
transform = self.ax.transAxes.inverted()
AttributeError: β€˜PlotImage’ object has no attribute β€˜ax’. Did you mean: β€˜x’?
Traceback (most recent call last):
File β€œ/home/rookie/anaconda3/envs/openmc-env/lib/python3.10/site-packages/openmc_plotter/plotgui.py”, line 220, in mouseMoveEvent
xPlotPos, yPlotPos = self.getPlotCoords(event.pos())

If you have some advices, Please text it,Thank You!
Best Wishes!

Create conda-forge package for plotter

Several people have run into problems trying to install the plotter while using conda. It would be pretty easy for us to put together a conda-forge package for the plotter to avoid any issues with conflicting Qt installations, etc.

Batch mode for generating images

Along the lines of #83, it would be great to be able to generate images without having to open the GUI.

Something like

openmc-plotter -b my_view.pltvw

That results in my_view.png and/or

openmc-plotter -b plots.xml

that results in plot_1.png, plot_2.png, etc.

Fix GHA release upload action

We just released 0.2.0, but the github action that automatically uploads the package to PyPi didn't trigger. We'll want to update the trigger to published before the next release.

GUI Testing

At some point it would be good to implement some simple testing using a demo model via QTest which allows one to simulate mouse clicks, key presses etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.