Skip to content

Commit 7e65a1e

Browse files
committed
Harden event nuclide check. Make testing more explicit
1 parent 264d599 commit 7e65a1e

3 files changed

Lines changed: 11 additions & 5 deletions

File tree

include/openmc/nuclide.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ class Nuclide {
8484
double collapse_rate(int MT, double temperature, span<const double> energy,
8585
span<const double> flux) const;
8686

87+
//! Return the ZAID identifier for this nuclide.
88+
int zaid() const { return 10000 * Z_ + 10 * A_ + metastable_; }
89+
8790
//============================================================================
8891
// Data members
8992
std::string name_; //!< Name of nuclide, e.g. "U235"

src/collision_track.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,10 @@ void collision_track_record(Particle& particle)
202202
int cell_id = model::cells[cell_index]->id_;
203203
std::string nuclide {};
204204
int nuclide_id {-1};
205-
if (particle.type() != ParticleType::electron() && particle.type() != ParticleType::positron())
206-
{
205+
if (particle.event_nuclide() != NUCLIDE_NONE) {
207206
const auto* nuclide_ptr = data::nuclides[particle.event_nuclide()].get();
208207
nuclide = nuclide_ptr->name_;
209-
nuclide_id = 10000 * nuclide_ptr->Z_ + 10 * nuclide_ptr->A_ + nuclide_ptr->metastable_;
208+
nuclide_id = nuclide_ptr->zaid();
210209
}
211210
int universe_id = model::universes[particle.lowest_coord().universe()]->id_;
212211
double delta_E = particle.E_last() - particle.E();

tests/unit_tests/test_collision_track.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,11 @@ def test_photon_particles(run_in_tmpdir, model):
145145

146146
assert len(source) < 200
147147

148-
allowed_particles = set(openmc.ParticleType(p) for p in ['photon', 'electron'])
148+
allowed_particles = (openmc.ParticleType.PHOTON, openmc.ParticleType.ELECTRON)
149149

150150
for point in source:
151-
assert openmc.ParticleType(point['particle']) in allowed_particles
151+
particle_type = openmc.ParticleType(point['particle'])
152+
assert particle_type in allowed_particles
153+
154+
if particle_type == openmc.ParticleType.ELECTRON:
155+
assert point['nuclide_id'] == -1

0 commit comments

Comments
 (0)