From 4100e97b00a491fc4c1d40c22a4df8f858c336e9 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 18 Jan 2017 09:10:37 -0500 Subject: [PATCH 1/4] Introduced new openmc.data.atomic_weight(...) method --- openmc/data/data.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/openmc/data/data.py b/openmc/data/data.py index 92be7cadee..728b5b96ff 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -179,6 +179,32 @@ def atomic_mass(isotope): return _ATOMIC_MASS.get(isotope.lower()) + +def atomic_weight(element): + """Return atomic weight of an element in atomic mass units. + + Computes an average of the atomic mass of each of element's naturally + occurring isotopes weighted by their relative abundance. + + Parameters + ---------- + element : str + Name of element, e.g. 'H', 'U' + + Returns + ------- + float or None + Atomic weight of element in atomic mass units. If the element listed does + not exist, None is returned. + + """ + weight = 0. + for nuclide, abundance in NATURAL_ABUNDANCE.items(): + if re.match(element, nuclide): + weight += atomic_mass(nuclide) * abundance + return None if weight == 0. else weight + + # The value of the Boltzman constant in units of eV / K # Values here are from the Committee on Data for Science and Technology # (CODATA) 2010 recommendation (doi:10.1103/RevModPhys.84.1527). From 51b005ca67eb5c2bace81c8af7b52951ff82d3e6 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 20 Jan 2017 10:37:37 -0600 Subject: [PATCH 2/4] Write cross section warnings only from master. --- src/nuclide_header.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index a329b5bccc..bf6a9b4892 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -242,7 +242,7 @@ module nuclide_header ! If only one temperature is available, revert to nearest temperature if (size(temps_available) == 1 .and. & - method == TEMPERATURE_INTERPOLATION) then + method == TEMPERATURE_INTERPOLATION .and. master) then call warning("Cross sections for " // trim(this % name) // " are only & &available at one temperature. Reverting to nearest temperature & &method.") @@ -364,7 +364,7 @@ module nuclide_header call close_group(urr_group) ! Check for negative values - if (any(this % urr_data(i) % prob < ZERO)) then + if (any(this % urr_data(i) % prob < ZERO) .and. master) then call warning("Negative value(s) found on probability table & &for nuclide " // this % name // " at " // trim(temp_str)) end if From f5c32755085b5cd593aa79e8a4590ab380ab869c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 18 Jan 2017 07:45:05 -0600 Subject: [PATCH 3/4] Add some recent publications --- docs/source/publications.rst | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/docs/source/publications.rst b/docs/source/publications.rst index 097cd43d0a..9536208639 100644 --- a/docs/source/publications.rst +++ b/docs/source/publications.rst @@ -53,6 +53,12 @@ Benchmarking Coupling and Multi-physics -------------------------- +- Matthew Ellis, Derek Gaston, Benoit Forget, and Kord Smith, "Preliminary + Coupling of the Monte Carlo Code OpenMC and the Multiphysics Object-Oriented + Simulation Environment for Analyzing Doppler Feedback in Monte Carlo + Simulations," *Nucl. Sci. Eng.*, **185**, xxx-xxx + (2017). ``_ + - Matthew Ellis, Benoit Forget, Kord Smith, and Derek Gaston, "Continuous Temperature Representation in Coupled OpenMC/MOOSE Simulations," *Proc. PHYSOR 2016*, Sun Valley, Idaho, May 1-5, 2016. @@ -78,9 +84,13 @@ Coupling and Multi-physics Estimate Dominance Ratio and Adjoint," *Trans. Am. Nucl. Soc.*, **109**, 1389-1392 (2013). --------- -Geometry --------- +-------------------------- +Geometry and Visualization +-------------------------- + +- Logan Abel, William Boyd, Benoit Forget, and Kord Smith, "Interactive + Visualization of Multi-Group Cross Sections on High-Fidelity Spatial Meshes," + *Trans. Am. Nucl. Soc.*, **114**, 391-394 (2016). - Derek M. Lax, "Memory efficient indexing algorithm for physical properties in OpenMC," S. M. Thesis, Massachusetts Institute of Technology @@ -94,6 +104,15 @@ Geometry Miscellaneous ------------- +- Timothy P. Burke, Brian C. Kiedrowski, William R. Martin, and + Forrest B. Brown, "GPU Acceleration of Kernel Density Estimators in Monte + Carlo Neutron Transport Simulations," *Trans. Am. Nucl. Soc.*, **115**, + 531-534 (2016). + +- Timothy P. Burke, Brian C. Kiedrowski, and William R. Martin, "Cylindrical + Kernel Density Estimators for Monte Carlo Neutron Transport Reactor Physics + Problems," *Trans. Am. Nucl. Soc.*, **115**, 563-566 (2016). + - Yunzhao Li, Qingming He, Liangzhi Cao, Hongchun Wu, and Tiejun Zu, "Resonance Elastic Scattering and Interference Effects Treatments in Subgroup Method," *Nucl. Eng. Tech.*, **48**, 339-350 @@ -174,6 +193,10 @@ Doppler Broadening Nuclear Data ------------ +- Vivian Y. Tran, Jonathan A. Walsh, and Benoit Forget, "Treatments for Neutron + Resonance Elastic Scattering Using the Multipole Formalism in Monte Carlo + Codes," *Trans. Am. Nucl. Soc.*, **115**, 1133-1137 (2016). + - Paul K. Romano and Sterling M. Harper, "Nuclear data processing capabilities in OpenMC", *Proc. Nuclear Data*, Sep. 11-16, 2016. @@ -292,6 +315,10 @@ Parallelism Depletion --------- +- Matthew S. Ellis, Colin Josey, Benoit Forget, and Kord Smith, "Spatially + Continuous Depletion Algorithm for Monte Carlo Simulations," + *Trans. Am. Nucl. Soc.*, **115**, 1221-1224 (2016). + - Anas Gul, K. S. Chaudri, R. Khan, and M. Azeen, "Development and verification of LOOP: A Linkage of ORIGEN2.2 and OpenMC," *Ann. Nucl. Energy*, **99**, 321--327 (2017). ``_ From 7900ad925afd4932aaf19ce7cddd4d9e6e4e9642 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 20 Jan 2017 13:21:06 -0500 Subject: [PATCH 4/4] Updated regex to cross reference nuclides with elements --- openmc/data/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/data/data.py b/openmc/data/data.py index 728b5b96ff..9759411abd 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -200,7 +200,7 @@ def atomic_weight(element): """ weight = 0. for nuclide, abundance in NATURAL_ABUNDANCE.items(): - if re.match(element, nuclide): + if re.match(r'{}\d+'.format(element), nuclide): weight += atomic_mass(nuclide) * abundance return None if weight == 0. else weight