Using vector instead of unordered_set for user-specified distribcells.

This commit is contained in:
Patrick Shriwise 2021-08-10 08:06:54 -05:00
parent 88ec652760
commit e8788cc1bb
2 changed files with 7 additions and 4 deletions

View file

@ -7,7 +7,7 @@
#include <cstdint>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include "openmc/vector.h"
@ -69,7 +69,7 @@ int32_t find_root_universe();
//! filter.
//==============================================================================
void prepare_distribcell(const std::unordered_set<int32_t>* user_distribcells = nullptr);
void prepare_distribcell(const std::vector<int32_t>* user_distribcells = nullptr);
//==============================================================================
//! Recursively search through the geometry and count cell instances.

View file

@ -2,6 +2,7 @@
#include <algorithm> // for std::max
#include <sstream>
#include <unordered_set>
#include <fmt/core.h>
#include <pugixml.hpp>
@ -310,14 +311,16 @@ find_root_universe()
//==============================================================================
void
prepare_distribcell(const std::unordered_set<int32_t>* user_distribcells)
prepare_distribcell(const std::vector<int32_t>* user_distribcells)
{
write_message("Preparing distributed cell instances...", 5);
std::unordered_set<int32_t> distribcells;
// start with any cells manually specified via the C++ API
if (user_distribcells) distribcells = *user_distribcells;
if (user_distribcells) {
distribcells.insert(user_distribcells->begin(), user_distribcells->end());
}
// Find all cells listed in a DistribcellFilter or CellInstanceFilter
for (auto& filt : model::tally_filters) {