From 433e6a4dfd5dc77a9b1e9aca3d8e0c211bec2282 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 12 Jun 2019 22:59:55 -0500 Subject: [PATCH] Fix bug in openmc_material_add_nuclide --- src/material.cpp | 2 +- tests/unit_tests/test_capi.py | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/material.cpp b/src/material.cpp index ec76eb988..5667821fb 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -1169,7 +1169,7 @@ openmc_material_add_nuclide(int32_t index, const char* name, double density) // Create copy of atom_density_ array with one extra entry xt::xtensor atom_density = xt::zeros({n}); xt::view(atom_density, xt::range(0, n-1)) = m->atom_density_; - atom_density(n) = density; + atom_density(n-1) = density; m->atom_density_ = atom_density; m->density_ += density; diff --git a/tests/unit_tests/test_capi.py b/tests/unit_tests/test_capi.py index 17219c82e..53ad09e90 100644 --- a/tests/unit_tests/test_capi.py +++ b/tests/unit_tests/test_capi.py @@ -124,6 +124,13 @@ def test_material(capi_init): assert m.density == pytest.approx(0.1) +def test_material_add_nuclide(capi_init): + m = openmc.capi.materials[3] + m.add_nuclide('Xe135', 1e-12) + assert m.nuclides[-1] == 'Xe135' + assert m.densities[-1] == 1e-12 + + def test_new_material(capi_init): with pytest.raises(exc.AllocationError): openmc.capi.Material(1) @@ -135,7 +142,7 @@ def test_new_material(capi_init): def test_nuclide_mapping(capi_init): nucs = openmc.capi.nuclides assert isinstance(nucs, Mapping) - assert len(nucs) == 12 + assert len(nucs) == 13 for name, nuc in nucs.items(): assert isinstance(nuc, openmc.capi.Nuclide) assert name == nuc.name