mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 05:35:49 -04:00
Make energy_bins/rev_energy_bins match F90 impl.
This commit is contained in:
parent
f7c45a3fd1
commit
009e1548d5
3 changed files with 8 additions and 15 deletions
|
|
@ -99,11 +99,11 @@ void read_mg_cross_sections_header_c(hid_t file_id)
|
|||
read_attribute(file_id, "energy_groups", num_energy_groups);
|
||||
|
||||
ensure_exists(file_id, "group structure", true);
|
||||
read_attribute(file_id, "group structure", energy_bins);
|
||||
read_attribute(file_id, "group structure", rev_energy_bins);
|
||||
|
||||
// Create reverse energy bins
|
||||
std::copy(energy_bins.crbegin(), energy_bins.crend(),
|
||||
std::back_inserter(rev_energy_bins));
|
||||
// Reverse energy bins
|
||||
std::copy(rev_energy_bins.crbegin(), rev_energy_bins.crend(),
|
||||
std::back_inserter(energy_bins));
|
||||
|
||||
// Create average energies
|
||||
for (int i = 0; i < energy_bins.size() - 1; ++i) {
|
||||
|
|
|
|||
|
|
@ -292,8 +292,6 @@ void initialize_source()
|
|||
}
|
||||
}
|
||||
|
||||
extern "C" double* rev_energy_bins_ptr();
|
||||
|
||||
Bank sample_external_source()
|
||||
{
|
||||
// Set the random number generator to the source stream.
|
||||
|
|
@ -320,11 +318,8 @@ Bank sample_external_source()
|
|||
|
||||
// If running in MG, convert site % E to group
|
||||
if (!settings::run_CE) {
|
||||
// Get pointer to rev_energy_bins array on Fortran side
|
||||
double* rev_energy_bins = rev_energy_bins_ptr();
|
||||
|
||||
int n = num_energy_groups + 1;
|
||||
site.E = lower_bound_index(rev_energy_bins, rev_energy_bins + n, site.E);
|
||||
site.E = lower_bound_index(rev_energy_bins.begin(), rev_energy_bins.end(),
|
||||
site.E);
|
||||
site.E = num_energy_groups - site.E;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,9 +13,6 @@ namespace openmc {
|
|||
// EnergyFilter implementation
|
||||
//==============================================================================
|
||||
|
||||
// Used to grab the rev_energy_bins array defined in Fortran.
|
||||
extern "C" double* rev_energy_bins_ptr();
|
||||
|
||||
void
|
||||
EnergyFilter::from_xml(pugi::xml_node node)
|
||||
{
|
||||
|
|
@ -30,7 +27,6 @@ EnergyFilter::from_xml(pugi::xml_node node)
|
|||
if (!settings::run_CE) {
|
||||
if (n_bins_ == num_energy_groups) {
|
||||
matches_transport_groups_ = true;
|
||||
double* rev_energy_bins = rev_energy_bins_ptr();
|
||||
for (auto i = 0; i < n_bins_ + 1; i++) {
|
||||
if (rev_energy_bins[i] != bins_[i]) {
|
||||
matches_transport_groups_ = false;
|
||||
|
|
@ -80,6 +76,7 @@ std::string
|
|||
EnergyFilter::text_label(int bin) const
|
||||
{
|
||||
std::stringstream out;
|
||||
//TODO: off-by-one
|
||||
out << "Incoming Energy [" << bins_[bin-1] << ", " << bins_[bin] << ")";
|
||||
return out.str();
|
||||
}
|
||||
|
|
@ -110,6 +107,7 @@ std::string
|
|||
EnergyoutFilter::text_label(int bin) const
|
||||
{
|
||||
std::stringstream out;
|
||||
//TODO: off-by-one
|
||||
out << "Outgoing Energy [" << bins_[bin-1] << ", " << bins_[bin] << ")";
|
||||
return out.str();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue