mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-26 13:15:39 -04:00
old changes for delayed neutron feature
This commit is contained in:
parent
9d86274fcc
commit
e266bb15bf
6 changed files with 45 additions and 2 deletions
|
|
@ -32,6 +32,17 @@ standard deviation.
|
|||
|
||||
*Default*: false
|
||||
|
||||
-------------------------------------
|
||||
``<create_delayed_neutrons>`` Element
|
||||
-------------------------------------
|
||||
|
||||
The ``<create_delayed_neutrons>`` element indicates whether delayed neutrons
|
||||
are created in fission. If this element is set to "true", delayed neutrons
|
||||
will be created in fission events; otherwise only prompt neutrons will be
|
||||
created.
|
||||
|
||||
*Default*: true
|
||||
|
||||
-------------------------------------
|
||||
``<create_fission_neutrons>`` Element
|
||||
-------------------------------------
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ extern bool check_overlaps; //!< check overlaps in geometry?
|
|||
extern bool confidence_intervals; //!< use confidence intervals for results?
|
||||
extern bool
|
||||
create_fission_neutrons; //!< create fission neutrons (fixed source)?
|
||||
extern bool create_delayed_neutrons; //!< create delayed fission neutrons?
|
||||
extern "C" bool cmfd_run; //!< is a CMFD run?
|
||||
extern bool
|
||||
delayed_photon_scaling; //!< Scale fission photon yield to include delayed
|
||||
|
|
|
|||
|
|
@ -300,6 +300,7 @@ class Settings:
|
|||
VolumeCalculation, 'volume calculations')
|
||||
|
||||
self._create_fission_neutrons = None
|
||||
self._create_delayed_neutrons = None
|
||||
self._delayed_photon_scaling = None
|
||||
self._material_cell_offsets = None
|
||||
self._log_grid_bins = None
|
||||
|
|
@ -463,6 +464,10 @@ class Settings:
|
|||
def create_fission_neutrons(self) -> bool:
|
||||
return self._create_fission_neutrons
|
||||
|
||||
@property
|
||||
def create_delayed_neutrons(self) -> bool:
|
||||
return self._create_delayed_neutrons
|
||||
|
||||
@property
|
||||
def delayed_photon_scaling(self) -> bool:
|
||||
return self._delayed_photon_scaling
|
||||
|
|
@ -870,6 +875,12 @@ class Settings:
|
|||
create_fission_neutrons, bool)
|
||||
self._create_fission_neutrons = create_fission_neutrons
|
||||
|
||||
@create_delayed_neutrons.setter
|
||||
def create_delayed_neutrons(self, create_delayed_neutrons: bool):
|
||||
cv.check_type('Whether create only prompt neutrons',
|
||||
create_delayed_neutrons, bool)
|
||||
self._create_delayed_neutrons = create_delayed_neutrons
|
||||
|
||||
@delayed_photon_scaling.setter
|
||||
def delayed_photon_scaling(self, value: bool):
|
||||
cv.check_type('delayed photon scaling', value, bool)
|
||||
|
|
@ -1211,6 +1222,11 @@ class Settings:
|
|||
elem = ET.SubElement(root, "create_fission_neutrons")
|
||||
elem.text = str(self._create_fission_neutrons).lower()
|
||||
|
||||
def _create_create_delayed_neutrons_subelement(self, root):
|
||||
if self._create_delayed_neutrons is not None:
|
||||
elem = ET.SubElement(root, "create_delayed_neutrons")
|
||||
elem.text = str(self._create_delayed_neutrons).lower()
|
||||
|
||||
def _create_delayed_photon_scaling_subelement(self, root):
|
||||
if self._delayed_photon_scaling is not None:
|
||||
elem = ET.SubElement(root, "delayed_photon_scaling")
|
||||
|
|
@ -1536,6 +1552,11 @@ class Settings:
|
|||
if text is not None:
|
||||
self.create_fission_neutrons = text in ('true', '1')
|
||||
|
||||
def _create_delayed_neutrons_from_xml_element(self, root):
|
||||
text = get_text(root, 'create_delayed_neutrons')
|
||||
if text is not None:
|
||||
self.create_delayed_neutrons = text in ('true', '1')
|
||||
|
||||
def _delayed_photon_scaling_from_xml_element(self, root):
|
||||
text = get_text(root, 'delayed_photon_scaling')
|
||||
if text is not None:
|
||||
|
|
@ -1634,6 +1655,7 @@ class Settings:
|
|||
self._create_resonance_scattering_subelement(element)
|
||||
self._create_volume_calcs_subelement(element)
|
||||
self._create_create_fission_neutrons_subelement(element)
|
||||
self._create_create_delayed_neutrons_subelement(root_element)
|
||||
self._create_delayed_photon_scaling_subelement(element)
|
||||
self._create_event_based_subelement(element)
|
||||
self._create_max_particles_in_flight_subelement(element)
|
||||
|
|
@ -1726,6 +1748,7 @@ class Settings:
|
|||
settings._ufs_mesh_from_xml_element(elem, meshes)
|
||||
settings._resonance_scattering_from_xml_element(elem)
|
||||
settings._create_fission_neutrons_from_xml_element(elem)
|
||||
settings._create_delayed_neutrons_from_xml_element(root)
|
||||
settings._delayed_photon_scaling_from_xml_element(elem)
|
||||
settings._event_based_from_xml_element(elem)
|
||||
settings._max_particles_in_flight_from_xml_element(elem)
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ int openmc_finalize()
|
|||
settings::check_overlaps = false;
|
||||
settings::confidence_intervals = false;
|
||||
settings::create_fission_neutrons = true;
|
||||
settings::create_delayed_neutrons = true;
|
||||
settings::electron_treatment = ElectronTreatment::LED;
|
||||
settings::delayed_photon_scaling = true;
|
||||
settings::energy_cutoff = {0.0, 1000.0, 0.0, 0.0};
|
||||
|
|
|
|||
|
|
@ -519,7 +519,7 @@ double Nuclide::nu(double E, EmissionMode mode, int group) const
|
|||
case EmissionMode::prompt:
|
||||
return (*fission_rx_[0]->products_[0].yield_)(E);
|
||||
case EmissionMode::delayed:
|
||||
if (n_precursor_ > 0) {
|
||||
if (n_precursor_ > 0 && settings::create_delayed_neutrons) {
|
||||
auto rx = fission_rx_[0];
|
||||
if (group >= 1 && group < rx->products_.size()) {
|
||||
// If delayed group specified, determine yield immediately
|
||||
|
|
@ -544,7 +544,7 @@ double Nuclide::nu(double E, EmissionMode mode, int group) const
|
|||
return 0.0;
|
||||
}
|
||||
case EmissionMode::total:
|
||||
if (total_nu_) {
|
||||
if (total_nu_ && settings::create_delayed_neutrons) {
|
||||
return (*total_nu_)(E);
|
||||
} else {
|
||||
return (*fission_rx_[0]->products_[0].yield_)(E);
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ bool assume_separate {false};
|
|||
bool check_overlaps {false};
|
||||
bool cmfd_run {false};
|
||||
bool confidence_intervals {false};
|
||||
bool create_delayed_neutrons {true};
|
||||
bool create_fission_neutrons {true};
|
||||
bool delayed_photon_scaling {true};
|
||||
bool entropy_on {false};
|
||||
|
|
@ -872,6 +873,12 @@ void read_settings_xml(pugi::xml_node root)
|
|||
}
|
||||
}
|
||||
|
||||
// Check whether create delayed neutrons in fission
|
||||
if (check_for_node(root, "create_delayed_neutrons")) {
|
||||
create_delayed_neutrons =
|
||||
get_node_value_bool(root, "create_delayed_neutrons");
|
||||
}
|
||||
|
||||
// Check whether create fission sites
|
||||
if (run_mode == RunMode::FIXED_SOURCE) {
|
||||
if (check_for_node(root, "create_fission_neutrons")) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue