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