diff --git a/src/cross_sections.cpp b/src/cross_sections.cpp index a7cbc0013f..3654d85e37 100644 --- a/src/cross_sections.cpp +++ b/src/cross_sections.cpp @@ -316,15 +316,6 @@ read_ce_cross_sections(const std::vector>& nuc_temps, mat->finalize(); } // materials - - // Set up logarithmic grid for nuclides - for (auto& nuc : data::nuclides) { - nuc->init_grid(); - } - int neutron = static_cast(Particle::Type::neutron); - simulation::log_spacing = std::log(data::energy_max[neutron] / - data::energy_min[neutron]) / settings::n_log_bins; - if (settings::photon_transport && settings::electron_treatment == ElectronTreatment::TTB) { // Determine if minimum/maximum energy for bremsstrahlung is greater/less // than the current minimum/maximum diff --git a/src/nuclide.cpp b/src/nuclide.cpp index d6dba840e6..fa65ef6df8 100644 --- a/src/nuclide.cpp +++ b/src/nuclide.cpp @@ -953,11 +953,8 @@ extern "C" int openmc_load_nuclide(const char* name) close_group(group); file_close(file_id); - // Initialize nuclide grid - const auto& nuc = data::nuclides.back(); - nuc->init_grid(); - // Read multipole file into the appropriate entry on the nuclides array + const auto& nuc = data::nuclides.back(); if (settings::temperature_multipole) read_multipole_data(nuc->i_nuclide_); // Read elemental data, if necessary diff --git a/src/simulation.cpp b/src/simulation.cpp index d3e0f48c71..fa497e5e0b 100644 --- a/src/simulation.cpp +++ b/src/simulation.cpp @@ -68,6 +68,14 @@ int openmc_simulation_init() // Skip if simulation has already been initialized if (simulation::initialized) return 0; + // Set up logarithmic grid for nuclides + for (auto& nuc : data::nuclides) { + nuc->init_grid(); + } + int neutron = static_cast(Particle::Type::neutron); + simulation::log_spacing = std::log(data::energy_max[neutron] / + data::energy_min[neutron]) / settings::n_log_bins; + // Determine how much work each process should do calculate_work();