diff --git a/include/openmc/nuclide.h b/include/openmc/nuclide.h index e3d43450d..db30a1a50 100644 --- a/include/openmc/nuclide.h +++ b/include/openmc/nuclide.h @@ -14,11 +14,15 @@ namespace openmc { // Global variables //============================================================================== +namespace data { + // Minimum/maximum transport energy for each particle type. Order corresponds to // that of the ParticleType enum extern std::array energy_min; extern std::array energy_max; +} // namespace data + //=============================================================================== //! Cached microscopic cross sections for a particular nuclide at the current //! energy diff --git a/src/finalize.cpp b/src/finalize.cpp index 7439e7bdb..5885470c1 100644 --- a/src/finalize.cpp +++ b/src/finalize.cpp @@ -75,8 +75,8 @@ int openmc_finalize() simulation::satisfy_triggers = false; simulation::total_gen = 0; - energy_max = {INFTY, INFTY}; - energy_min = {0.0, 0.0}; + data::energy_max = {INFTY, INFTY}; + data::energy_min = {0.0, 0.0}; n_tallies = 0; model::root_universe = -1; openmc_set_seed(DEFAULT_SEED); diff --git a/src/nuclide.cpp b/src/nuclide.cpp index 79e2289ae..18e7e5a7e 100644 --- a/src/nuclide.cpp +++ b/src/nuclide.cpp @@ -6,9 +6,13 @@ namespace openmc { // Global variables //============================================================================== +namespace data { + std::array energy_min {0.0, 0.0}; std::array energy_max {INFTY, INFTY}; +} // namespace data + //============================================================================== // Fortran compatibility functions //============================================================================== @@ -16,8 +20,8 @@ std::array energy_max {INFTY, INFTY}; extern "C" void set_particle_energy_bounds(int particle, double E_min, double E_max) { - energy_min[particle - 1] = E_min; - energy_max[particle - 1] = E_max; + data::energy_min[particle - 1] = E_min; + data::energy_max[particle - 1] = E_max; } } // namespace openmc diff --git a/src/source.cpp b/src/source.cpp index 80bafe945..1cb844ec9 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -207,10 +207,10 @@ Bank SourceDistribution::sample() const auto energy_ptr = dynamic_cast(energy_.get()); if (energy_ptr) { auto energies = xt::adapt(energy_ptr->x()); - if (xt::any(energies > energy_max[p-1])) { + if (xt::any(energies > data::energy_max[p-1])) { fatal_error("Source energy above range of energies of at least " "one cross section table"); - } else if (xt::any(energies < energy_min[p-1])) { + } else if (xt::any(energies < data::energy_min[p-1])) { fatal_error("Source energy below range of energies of at least " "one cross section table"); } @@ -221,7 +221,7 @@ Bank SourceDistribution::sample() const site.E = energy_->sample(); // Resample if energy falls outside minimum or maximum particle energy - if (site.E < energy_max[p-1] && site.E > energy_min[p-1]) break; + if (site.E < data::energy_max[p-1] && site.E > data::energy_min[p-1]) break; } // Set delayed group