mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 21:55:41 -04:00
Merge branch 'develop' into cdash
This commit is contained in:
commit
00c7c9ff11
7 changed files with 225 additions and 83 deletions
|
|
@ -182,6 +182,29 @@ performed. It has the following attributes/sub-elements:
|
|||
|
||||
*Default*: None
|
||||
|
||||
.. _natural_elements:
|
||||
|
||||
``<natural_elements>`` Element
|
||||
------------------------------
|
||||
|
||||
The ``<natural_elements>`` element indicates to OpenMC what nuclides are
|
||||
available in the cross section library when expanding an ``<element>`` into
|
||||
separate isotopes (see :ref:`material`). The accepted values are:
|
||||
|
||||
- ENDF/B-VII.0
|
||||
- ENDF/B-VII.1
|
||||
- JEFF-3.1.1
|
||||
- JEFF-3.1.2
|
||||
- JEFF-3.2
|
||||
- JENDL-3.2
|
||||
- JENDL-3.3
|
||||
- JENDL-4.0
|
||||
|
||||
Note that the value is case-insensitive, so "ENDF/B-VII.1" is equivalent to
|
||||
"endf/b-vii.1".
|
||||
|
||||
*Default*: ENDF/B-VII.1
|
||||
|
||||
``<no_reduce>`` Element
|
||||
-----------------------
|
||||
|
||||
|
|
@ -741,6 +764,8 @@ sub-elements:
|
|||
Materials Specification -- materials.xml
|
||||
----------------------------------------
|
||||
|
||||
.. _material:
|
||||
|
||||
``<material>`` Element
|
||||
----------------------
|
||||
|
||||
|
|
@ -780,12 +805,13 @@ Each ``material`` element can have the following attributes or sub-elements:
|
|||
:element:
|
||||
|
||||
Specifies that a natural element is present in the material. The natural
|
||||
element is split up into individual isotopes based on IUPAC Isotopic
|
||||
Compositions of the Elements 1997. This element has attributes/sub-elements
|
||||
called ``name``, ``xs``, and ``ao``. The ``name`` attribute is the atomic
|
||||
symbol of the element while the ``xs`` attribute is the cross-section
|
||||
identifier. Finally, the ``ao`` attribute specifies the atom percent of the
|
||||
element within the material, respectively. One example would be as follows:
|
||||
element is split up into individual isotopes based on `IUPAC Isotopic
|
||||
Compositions of the Elements 2009`_. This element has
|
||||
attributes/sub-elements called ``name``, ``xs``, and ``ao``. The ``name``
|
||||
attribute is the atomic symbol of the element while the ``xs`` attribute is
|
||||
the cross-section identifier. Finally, the ``ao`` attribute specifies the
|
||||
atom percent of the element within the material, respectively. One example
|
||||
would be as follows:
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
|
|
@ -794,6 +820,10 @@ Each ``material`` element can have the following attributes or sub-elements:
|
|||
<element name="Mn" ao="2.7426e-05" />
|
||||
<element name="Cu" ao="1.6993e-04" />
|
||||
|
||||
In some cross section libraries, certain naturally occurring isotopes do not
|
||||
have cross sections. The :ref:`natural_elements` option determines how a
|
||||
natural element is split into isotopes in these cases.
|
||||
|
||||
*Default*: None
|
||||
|
||||
|
||||
|
|
@ -805,6 +835,9 @@ Each ``material`` element can have the following attributes or sub-elements:
|
|||
|
||||
*Default*: None
|
||||
|
||||
.. _IUPAC Isotopic Compositions of the Elements 2009:
|
||||
http://pac.iupac.org/publications/pac/pdf/2011/pdf/8302x0397.pdf
|
||||
|
||||
``<default_xs>`` Element
|
||||
------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -244,6 +244,17 @@ module constants
|
|||
! Maximum number of partial fission reactions
|
||||
integer, parameter :: PARTIAL_FISSION_MAX = 4
|
||||
|
||||
! Major cross section libraries
|
||||
integer, parameter :: &
|
||||
ENDF_BVII0 = 1, &
|
||||
ENDF_BVII1 = 2, &
|
||||
JEFF_311 = 3, &
|
||||
JEFF_312 = 4, &
|
||||
JEFF_32 = 5, &
|
||||
JENDL_32 = 6, &
|
||||
JENDL_33 = 7, &
|
||||
JENDL_40 = 8
|
||||
|
||||
! ============================================================================
|
||||
! TALLY-RELATED CONSTANTS
|
||||
|
||||
|
|
|
|||
|
|
@ -88,6 +88,9 @@ module global
|
|||
! Default xs identifier (e.g. 70c)
|
||||
character(3):: default_xs
|
||||
|
||||
! What to assume for expanding natural elements
|
||||
integer :: default_expand = ENDF_BVII1
|
||||
|
||||
! ============================================================================
|
||||
! TALLY-RELATED VARIABLES
|
||||
|
||||
|
|
|
|||
|
|
@ -778,6 +778,33 @@ contains
|
|||
end if
|
||||
end if
|
||||
|
||||
! Natural element expansion option
|
||||
if (check_for_node(doc, "natural_elements")) then
|
||||
call get_node_value(doc, "natural_elements", temp_str)
|
||||
call lower_case(temp_str)
|
||||
select case (temp_str)
|
||||
case ('endf/b-vii.0')
|
||||
default_expand = ENDF_BVII0
|
||||
case ('endf/b-vii.1')
|
||||
default_expand = ENDF_BVII1
|
||||
case ('jeff-3.1.1')
|
||||
default_expand = JEFF_311
|
||||
case ('jeff-3.1.2')
|
||||
default_expand = JEFF_312
|
||||
case ('jeff-3.2')
|
||||
default_expand = JEFF_32
|
||||
case ('jendl-3.2')
|
||||
default_expand = JENDL_32
|
||||
case ('jendl-3.3')
|
||||
default_expand = JENDL_33
|
||||
case ('jendl-4.0')
|
||||
default_expand = JENDL_40
|
||||
case default
|
||||
message = "Unknown natural element expansion option: " // trim(temp_str)
|
||||
call fatal_error()
|
||||
end select
|
||||
end if
|
||||
|
||||
! Close settings XML file
|
||||
call close_xmldoc(doc)
|
||||
|
||||
|
|
@ -3116,8 +3143,7 @@ contains
|
|||
call list_density % append(density * 0.801_8)
|
||||
|
||||
case ('c')
|
||||
! The evaluation of Carbon in ENDF/B-VII.1 and JEFF 3.1.2 is a natural
|
||||
! element, i.e. it's not possible to split into C-12 and C-13.
|
||||
! No evaluations split up Carbon into isotopes yet
|
||||
call list_names % append('6000.' // xs)
|
||||
call list_density % append(density)
|
||||
|
||||
|
|
@ -3128,12 +3154,22 @@ contains
|
|||
call list_density % append(density * 0.00364_8)
|
||||
|
||||
case ('o')
|
||||
! O-18 does not exist in ENDF/B-VII.1 or JEFF 3.1.2 so its 0.205% has been
|
||||
! added to O-16. The isotopic abundance for O-16 is ordinarily 99.757%.
|
||||
call list_names % append('8016.' // xs)
|
||||
call list_density % append(density * 0.99962_8)
|
||||
call list_names % append('8017.' // xs)
|
||||
call list_density % append(density * 0.00038_8)
|
||||
if (default_expand == JEFF_32) then
|
||||
call list_names % append('8016.' // xs)
|
||||
call list_density % append(density * 0.99757_8)
|
||||
call list_names % append('8017.' // xs)
|
||||
call list_density % append(density * 0.00038_8)
|
||||
call list_names % append('8018.' // xs)
|
||||
call list_density % append(density * 0.00205_8)
|
||||
elseif (default_expand >= JENDL_32 .and. default_expand <= JENDL_40) then
|
||||
call list_names % append('8016.' // xs)
|
||||
call list_density % append(density)
|
||||
else
|
||||
call list_names % append('8016.' // xs)
|
||||
call list_density % append(density * 0.99962_8)
|
||||
call list_names % append('8017.' // xs)
|
||||
call list_density % append(density * 0.00038_8)
|
||||
end if
|
||||
|
||||
case ('f')
|
||||
call list_names % append('9019.' // xs)
|
||||
|
|
@ -3238,13 +3274,17 @@ contains
|
|||
call list_density % append(density * 0.0518_8)
|
||||
|
||||
case ('v')
|
||||
! The evaluation of Vanadium in ENDF/B-VII.1 and JEFF 3.1.2 is a natural
|
||||
! element. The IUPAC isotopic composition specifies the following
|
||||
! breakdown which is not used:
|
||||
! V-50 = 0.250%
|
||||
! V-51 = 99.750%
|
||||
call list_names % append('23000.' // xs)
|
||||
call list_density % append(density)
|
||||
if (default_expand == ENDF_BVII0 .or. default_expand == JEFF_311 &
|
||||
.or. default_expand == JEFF_32 .or. &
|
||||
(default_expand >= JENDL_32 .and. default_expand <= JENDL_33)) then
|
||||
call list_names % append('23000.' // xs)
|
||||
call list_density % append(density)
|
||||
else
|
||||
call list_names % append('23050.' // xs)
|
||||
call list_density % append(density * 0.0025_8)
|
||||
call list_names % append('23051.' // xs)
|
||||
call list_density % append(density * 0.9975_8)
|
||||
end if
|
||||
|
||||
case ('cr')
|
||||
call list_names % append('24050.' // xs)
|
||||
|
|
@ -3293,24 +3333,33 @@ contains
|
|||
call list_density % append(density * 0.3085_8)
|
||||
|
||||
case ('zn')
|
||||
! The evaluation of Zinc in ENDF/B-VII.1 is a natural element. The IUPAC
|
||||
! isotopic composition specifies the following breakdown which is not used
|
||||
! here:
|
||||
! Zn-64 = 48.63%
|
||||
! Zn-66 = 27.90%
|
||||
! Zn-67 = 4.10%
|
||||
! Zn-68 = 18.75%
|
||||
! Zn-70 = 0.62%
|
||||
call list_names % append('30000.' // xs)
|
||||
call list_density % append(density)
|
||||
if (default_expand == ENDF_BVII0 .or. default_expand == &
|
||||
JEFF_311 .or. default_expand == JEFF_312) then
|
||||
call list_names % append('30000.' // xs)
|
||||
call list_density % append(density)
|
||||
else
|
||||
call list_names % append('30064.' // xs)
|
||||
call list_density % append(density * 0.4917_8)
|
||||
call list_names % append('30066.' // xs)
|
||||
call list_density % append(density * 0.2773_8)
|
||||
call list_names % append('30067.' // xs)
|
||||
call list_density % append(density * 0.0404_8)
|
||||
call list_names % append('30068.' // xs)
|
||||
call list_density % append(density * 0.1845_8)
|
||||
call list_names % append('30070.' // xs)
|
||||
call list_density % append(density * 0.0061_8)
|
||||
end if
|
||||
|
||||
case ('ga')
|
||||
! JEFF 3.1.2 does not have evaluations for Ga-69 and Ga-71, only for
|
||||
! natural Gallium, so this may cause problems.
|
||||
call list_names % append('31069.' // xs)
|
||||
call list_density % append(density * 0.60108_8)
|
||||
call list_names % append('31071.' // xs)
|
||||
call list_density % append(density * 0.39892_8)
|
||||
if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then
|
||||
call list_names % append('31000.' // xs)
|
||||
call list_density % append(density)
|
||||
else
|
||||
call list_names % append('31069.' // xs)
|
||||
call list_density % append(density * 0.60108_8)
|
||||
call list_names % append('31071.' // xs)
|
||||
call list_density % append(density * 0.39892_8)
|
||||
end if
|
||||
|
||||
case ('ge')
|
||||
call list_names % append('32070.' // xs)
|
||||
|
|
@ -3721,24 +3770,43 @@ contains
|
|||
call list_density % append(density * 0.3508_8)
|
||||
|
||||
case ('ta')
|
||||
call list_names % append('73180.' // xs)
|
||||
call list_density % append(density * 0.0001201_8)
|
||||
call list_names % append('73181.' // xs)
|
||||
call list_density % append(density * 0.9998799_8)
|
||||
if (default_expand == ENDF_BVII0 .or. &
|
||||
(default_expand >= JEFF_311 .and. default_expand <= JEFF_312) .or. &
|
||||
(default_expand >= JENDL_32 .and. default_expand <= JENDL_40)) then
|
||||
call list_names % append('73181.' // xs)
|
||||
call list_density % append(density)
|
||||
else
|
||||
call list_names % append('73180.' // xs)
|
||||
call list_density % append(density * 0.0001201_8)
|
||||
call list_names % append('73181.' // xs)
|
||||
call list_density % append(density * 0.9998799_8)
|
||||
end if
|
||||
|
||||
case ('w')
|
||||
! ENDF/B-VII.0 does not have W-180 so this may cause problems. However, it
|
||||
! has been added as of ENDF/B-VII.1
|
||||
call list_names % append('74180.' // xs)
|
||||
call list_density % append(density * 0.0012_8)
|
||||
call list_names % append('74182.' // xs)
|
||||
call list_density % append(density * 0.2650_8)
|
||||
call list_names % append('74183.' // xs)
|
||||
call list_density % append(density * 0.1431_8)
|
||||
call list_names % append('74184.' // xs)
|
||||
call list_density % append(density * 0.3064_8)
|
||||
call list_names % append('74186.' // xs)
|
||||
call list_density % append(density * 0.2843_8)
|
||||
if (default_expand == ENDF_BVII0 .or. default_expand == JEFF_311 &
|
||||
.or. default_expand == JEFF_312 .or. &
|
||||
(default_expand >= JENDL_32 .and. default_expand <= JENDL_33)) then
|
||||
! Combine W-180 with W-182
|
||||
call list_names % append('74182.' // xs)
|
||||
call list_density % append(density * 0.2662_8)
|
||||
call list_names % append('74183.' // xs)
|
||||
call list_density % append(density * 0.1431_8)
|
||||
call list_names % append('74184.' // xs)
|
||||
call list_density % append(density * 0.3064_8)
|
||||
call list_names % append('74186.' // xs)
|
||||
call list_density % append(density * 0.2843_8)
|
||||
else
|
||||
call list_names % append('74180.' // xs)
|
||||
call list_density % append(density * 0.0012_8)
|
||||
call list_names % append('74182.' // xs)
|
||||
call list_density % append(density * 0.2650_8)
|
||||
call list_names % append('74183.' // xs)
|
||||
call list_density % append(density * 0.1431_8)
|
||||
call list_names % append('74184.' // xs)
|
||||
call list_density % append(density * 0.3064_8)
|
||||
call list_names % append('74186.' // xs)
|
||||
call list_density % append(density * 0.2843_8)
|
||||
end if
|
||||
|
||||
case ('re')
|
||||
call list_names % append('75185.' // xs)
|
||||
|
|
@ -3747,20 +3815,25 @@ contains
|
|||
call list_density % append(density * 0.6260_8)
|
||||
|
||||
case ('os')
|
||||
call list_names % append('76184.' // xs)
|
||||
call list_density % append(density * 0.0002_8)
|
||||
call list_names % append('76186.' // xs)
|
||||
call list_density % append(density * 0.0159_8)
|
||||
call list_names % append('76187.' // xs)
|
||||
call list_density % append(density * 0.0196_8)
|
||||
call list_names % append('76188.' // xs)
|
||||
call list_density % append(density * 0.1324_8)
|
||||
call list_names % append('76189.' // xs)
|
||||
call list_density % append(density * 0.1615_8)
|
||||
call list_names % append('76190.' // xs)
|
||||
call list_density % append(density * 0.2626_8)
|
||||
call list_names % append('76192.' // xs)
|
||||
call list_density % append(density * 0.4078_8)
|
||||
if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then
|
||||
call list_names % append('76000.' // xs)
|
||||
call list_density % append(density)
|
||||
else
|
||||
call list_names % append('76184.' // xs)
|
||||
call list_density % append(density * 0.0002_8)
|
||||
call list_names % append('76186.' // xs)
|
||||
call list_density % append(density * 0.0159_8)
|
||||
call list_names % append('76187.' // xs)
|
||||
call list_density % append(density * 0.0196_8)
|
||||
call list_names % append('76188.' // xs)
|
||||
call list_density % append(density * 0.1324_8)
|
||||
call list_names % append('76189.' // xs)
|
||||
call list_density % append(density * 0.1615_8)
|
||||
call list_names % append('76190.' // xs)
|
||||
call list_density % append(density * 0.2626_8)
|
||||
call list_names % append('76192.' // xs)
|
||||
call list_density % append(density * 0.4078_8)
|
||||
end if
|
||||
|
||||
case ('ir')
|
||||
call list_names % append('77191.' // xs)
|
||||
|
|
@ -3769,18 +3842,23 @@ contains
|
|||
call list_density % append(density * 0.627_8)
|
||||
|
||||
case ('pt')
|
||||
call list_names % append('78190.' // xs)
|
||||
call list_density % append(density * 0.00012_8)
|
||||
call list_names % append('78192.' // xs)
|
||||
call list_density % append(density * 0.00782_8)
|
||||
call list_names % append('78194.' // xs)
|
||||
call list_density % append(density * 0.3286_8)
|
||||
call list_names % append('78195.' // xs)
|
||||
call list_density % append(density * 0.3378_8)
|
||||
call list_names % append('78196.' // xs)
|
||||
call list_density % append(density * 0.2521_8)
|
||||
call list_names % append('78198.' // xs)
|
||||
call list_density % append(density * 0.07356_8)
|
||||
if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then
|
||||
call list_names % append('78000.' // xs)
|
||||
call list_density % append(density)
|
||||
else
|
||||
call list_names % append('78190.' // xs)
|
||||
call list_density % append(density * 0.00012_8)
|
||||
call list_names % append('78192.' // xs)
|
||||
call list_density % append(density * 0.00782_8)
|
||||
call list_names % append('78194.' // xs)
|
||||
call list_density % append(density * 0.3286_8)
|
||||
call list_names % append('78195.' // xs)
|
||||
call list_density % append(density * 0.3378_8)
|
||||
call list_names % append('78196.' // xs)
|
||||
call list_density % append(density * 0.2521_8)
|
||||
call list_names % append('78198.' // xs)
|
||||
call list_density % append(density * 0.07356_8)
|
||||
end if
|
||||
|
||||
case ('au')
|
||||
call list_names % append('79197.' // xs)
|
||||
|
|
@ -3803,10 +3881,15 @@ contains
|
|||
call list_density % append(density * 0.0687_8)
|
||||
|
||||
case ('tl')
|
||||
call list_names % append('81203.' // xs)
|
||||
call list_density % append(density * 0.2952_8)
|
||||
call list_names % append('81205.' // xs)
|
||||
call list_density % append(density * 0.7048_8)
|
||||
if (default_expand == JEFF_311 .or. default_expand == JEFF_312) then
|
||||
call list_names % append('81000.' // xs)
|
||||
call list_density % append(density)
|
||||
else
|
||||
call list_names % append('81203.' // xs)
|
||||
call list_density % append(density * 0.2952_8)
|
||||
call list_names % append('81205.' // xs)
|
||||
call list_density % append(density * 0.7048_8)
|
||||
end if
|
||||
|
||||
case ('pb')
|
||||
call list_names % append('82204.' // xs)
|
||||
|
|
|
|||
|
|
@ -866,6 +866,14 @@ contains
|
|||
nu = int(nu_t) + 1
|
||||
end if
|
||||
|
||||
! Check for fission bank size getting hit
|
||||
if (n_bank + nu > size(fission_bank)) then
|
||||
message = "Maximum number of sites in fission bank reached. This can &
|
||||
&result in irreproducible results using different numbers of &
|
||||
&processes/threads."
|
||||
call warning()
|
||||
end if
|
||||
|
||||
! Bank source neutrons
|
||||
if (nu == 0 .or. n_bank == size(fission_bank)) return
|
||||
p % fission = .true. ! Fission neutrons will be banked
|
||||
|
|
|
|||
|
|
@ -38,6 +38,8 @@ element settings {
|
|||
attribute upper_right { list { xsd:double+ } })
|
||||
}? &
|
||||
|
||||
element natural_elements { xsd:string { maxLength = "20" } }? &
|
||||
|
||||
element no_reduce { xsd:boolean }? &
|
||||
|
||||
element output {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@
|
|||
<particles>400</particles>
|
||||
</eigenvalue>
|
||||
|
||||
<natural_elements>endf/b-vii.1</natural_elements>
|
||||
|
||||
<source>
|
||||
<space>
|
||||
<type>box</type>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue