Kinetics parameters using Iterated Fission Probability (#3133)

Co-authored-by: Paul Romano <paul.k.romano@gmail.com>
This commit is contained in:
Joffrey Dorville 2025-04-14 09:07:48 -05:00 committed by GitHub
parent c1a4d43da8
commit 47ca2916aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 1002 additions and 6 deletions

View file

@ -52,6 +52,7 @@ bool create_fission_neutrons {true};
bool delayed_photon_scaling {true};
bool entropy_on {false};
bool event_based {false};
bool ifp_on {false};
bool legendre_to_tabular {true};
bool material_cell_offsets {true};
bool output_summary {true};
@ -106,6 +107,8 @@ int max_particle_events {1000000};
ElectronTreatment electron_treatment {ElectronTreatment::TTB};
array<double, 4> energy_cutoff {0.0, 1000.0, 0.0, 0.0};
array<double, 4> time_cutoff {INFTY, INFTY, INFTY, INFTY};
int ifp_n_generation {-1};
IFPParameter ifp_parameter {IFPParameter::None};
int legendre_to_tabular_points {C_NONE};
int max_order {0};
int n_log_bins {8000};
@ -1059,6 +1062,20 @@ void read_settings_xml(pugi::xml_node root)
temperature_range[1] = range.at(1);
}
// Check for user value for the number of generation of the Iterated Fission
// Probability (IFP) method
if (check_for_node(root, "ifp_n_generation")) {
ifp_n_generation = std::stoi(get_node_value(root, "ifp_n_generation"));
if (ifp_n_generation <= 0) {
fatal_error("'ifp_n_generation' must be greater than 0.");
}
// Avoid tallying 0 if IFP logs are not complete when active cycles start
if (ifp_n_generation > n_inactive) {
fatal_error("'ifp_n_generation' must be lower than or equal to the "
"number of inactive cycles.");
}
}
// Check for tabular_legendre options
if (check_for_node(root, "tabular_legendre")) {
// Get pointer to tabular_legendre node