mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-26 21:25:36 -04:00
Namespace energy_min and energy_max
This commit is contained in:
parent
c301612ca2
commit
c9bd707f04
4 changed files with 15 additions and 7 deletions
|
|
@ -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<double, 2> energy_min;
|
||||
extern std::array<double, 2> energy_max;
|
||||
|
||||
} // namespace data
|
||||
|
||||
//===============================================================================
|
||||
//! Cached microscopic cross sections for a particular nuclide at the current
|
||||
//! energy
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -6,9 +6,13 @@ namespace openmc {
|
|||
// Global variables
|
||||
//==============================================================================
|
||||
|
||||
namespace data {
|
||||
|
||||
std::array<double, 2> energy_min {0.0, 0.0};
|
||||
std::array<double, 2> energy_max {INFTY, INFTY};
|
||||
|
||||
} // namespace data
|
||||
|
||||
//==============================================================================
|
||||
// Fortran compatibility functions
|
||||
//==============================================================================
|
||||
|
|
@ -16,8 +20,8 @@ std::array<double, 2> 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
|
||||
|
|
|
|||
|
|
@ -207,10 +207,10 @@ Bank SourceDistribution::sample() const
|
|||
auto energy_ptr = dynamic_cast<Discrete*>(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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue