From 0adad96bf05a91b14fb6846f8347ecd4a9b0a366 Mon Sep 17 00:00:00 2001 From: Jingang Liang Date: Fri, 8 Feb 2019 12:02:51 -0800 Subject: [PATCH] fix capi: make sure capi.nuclides works after calling capi.load_nuclide --- src/nuclide.cpp | 7 +++++++ tests/unit_tests/test_capi.py | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/nuclide.cpp b/src/nuclide.cpp index b64a1681ab..ee1a35111f 100644 --- a/src/nuclide.cpp +++ b/src/nuclide.cpp @@ -893,6 +893,8 @@ void check_data_version(hid_t file_id) //============================================================================== extern "C" void extend_nuclides(); +extern "C" void nuclide_from_hdf5(hid_t group, const Nuclide* ptr, + const double* temps, int n, int n_nuclide); extern "C" int openmc_load_nuclide(const char* name) { @@ -917,6 +919,11 @@ extern "C" int openmc_load_nuclide(const char* name) int i_nuclide = data::nuclides.size(); data::nuclides.push_back(std::make_unique( group, temperature, i_nuclide)); + + // Read from Fortran too + nuclide_from_hdf5(group, data::nuclides.back().get(), + &temperature.front(), temperature.size(), i_nuclide + 1); + close_group(group); file_close(file_id); diff --git a/tests/unit_tests/test_capi.py b/tests/unit_tests/test_capi.py index e69d15a270..eb9a577a59 100644 --- a/tests/unit_tests/test_capi.py +++ b/tests/unit_tests/test_capi.py @@ -390,7 +390,11 @@ def test_restart(capi_init): def test_load_nuclide(capi_init): + # load multiple nuclides openmc.capi.load_nuclide('H3') + assert 'H3' in openmc.capi.nuclides openmc.capi.load_nuclide('Pu239') + assert 'Pu239' in openmc.capi.nuclides + # load non-existent nuclide with pytest.raises(exc.DataError): openmc.capi.load_nuclide('Pu3')