OpenMC not finding multipole library

Hello all,

I am trying to implement temperature handling via the windowed multipole method, however OpenMC does not seem to recognize that I have specified a library for this, as it gives me the warning:

WARNING: Windowed multipole functionality is turned on, but no multipole
libraries were found. Set the <multipole_library> element in
settings.xml or the OPENMC_MULTIPOLE_LIBRARY environment variable.

I have attached a simple example along with it’s output. Note that I am specifying the library location as environment variable, in settings.xml and in materials.xml, neither of which seems to work.

The library file also exists at the specified location and as far as I can tell should be fine. Any idea what I’m missing?

IIn case it helps, I am running on a CentOS 7.6.1810, with OpenMC 0.10.0 and python 3.7.3.

Best regards
Lukas

(As as side note, declaring it in settings.xml results in

WARNING: Setting multipole_library in settings.xml has been deprecated. The
multipole_library is now set in materials.xml and the
multipole_library input to materials.xml and the
OPENMC_MULTIPOLE_LIBRARY environment variable will take precendent
over setting multipole_library in settings.xml.

, which probably means the “main” warning should be updated appropriately.)

minimal_wmp.py (1.47 KB)

minimaloutput.txt (31.5 KB)

Hi Lukas,

In the previous version of OpenMC, OPENMC_MULTIPOLE_LIBRARY pointed to the directory containing the windowed multipole HDF5 files. Give that a shot and see if it picks them up appropriately.

Best,
Paul

Hi Paul,

thanks a lot for the help, pointing to the directory does indeed make OpenMC pick up the files. However there still seems to be something wrong with actually reading them in, as it produces the error

Reading U234 from /home/lr359203/ENDF-VIII/U234.h5
Loading Multipole XS table: /home/lr359203/ENDF-VIII/wmp/092234.h5
ERROR: The group ‘/nuclide’ does not exist.

I’ve tried naively renaming the U234 group to ‘nuclide’ as well as inserting it as additional group above, below or parallel to the U234 group, none of which worked, instead giving

Reading U234 from /home/lr359203/ENDF-VIII/U234.h5
Loading Multipole XS table: /home/lr359203/ENDF-VIII/wmp/092234.h5
HDF5-DIAG: Error detected in HDF5 (1.10.4) thread 46969079348672:
#000: H5D.c line 292 in H5Dopen2(): unable to open dataset
major: Dataset
minor: Can’t open object
#001: H5Dint.c line 1205 in H5D__open_name(): not found
major: Dataset
minor: Object not found
#002: H5Gloc.c line 422 in H5G_loc_find(): can’t find object
major: Symbol table
minor: Object not found
#003: H5Gtraverse.c line 851 in H5G_traverse(): internal path traversal failed
major: Symbol table
minor: Object not found
#004: H5Gtraverse.c line 627 in H5G__traverse_real(): traversal operator failed
major: Symbol table
minor: Callback failed
#005: H5Gloc.c line 378 in H5G__loc_find_cb(): object ‘version’ doesn’t exist
major: Symbol table
minor: Object not found
HDF5-DIAG: Error detected in HDF5 (1.10.4) thread 46969079348672:
#000: H5D.c line 445 in H5Dget_type(): not a dataset
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.10.4) thread 46969079348672:
#000: H5T.c line 2131 in H5Tget_size(): not a datatype
major: Invalid arguments to routine
minor: Inappropriate type
ERROR: Character buffer is not long enough to read HDF5 string.
ERROR STOP

Could you tell me which exact structure it is looking for/what I need to change?

I’ve attached the specific file as well, though it’s just taken directly from the distributed library.

Best regards
Lukas

092234.h5 (34.9 KB)

Hi Lukas,

The format of the WMP libraries has also changed over time. I’m not sure which version of the MIT libraries you are using, but you might want to try one of the older releases where the data format matches what your version of OpenMC expects. You can find all the releases here:
https://github.com/mit-crpg/WMP_Library/releases

Best,
Paul

Hi Paul,

thanks again! As it turns out it is looking for the Library v0.2 (the format change happens between versions 1.0 and 1.1, and trying to use v1.0 actually gives an error message saying that v0.2 is expected). I’m still getting similar errors as I had with my renaming, though I suspect those are simply on the side of my HDF5. I’d guess it’s a problem of incompatible versions between what the data was made with and what I’m reading it with. I’ll try figuring that out myself, though if anyone has experience with something similar, or could tell me which hdf5 version the 0.2 version of the library was compiled with, I would certainly appreciate the help.

Best regards
Lukas

Huh, now I’m confused again, as it looks like it’s actually not version related but simply openmc looking for objects that aren’t present (in neither release of the wmp library). Honestly at this point updating to openmc 1.11 is probably the easier thing to do, so I’ll try that.

hdf5_error_output (15.3 KB)

I agree that your best bet is to update to version 0.11 of OpenMC, which should definitely work with the latest WMP library release.

I have updated to 0.11.0 now, and it does work correctly with the most recent version of the multipole database. Thanks for the help!

Best regards
Lukas