diff --git a/src/ace.F90 b/src/ace.F90 index 32894116c3..85f91a8495 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -212,9 +212,9 @@ contains end subroutine read_xs !=============================================================================== -! READ_ACE_BINARY reads a single cross section table in binary format. This -! routine reads the header data for each table and then calls appropriate -! subroutines to parse the actual data. +! READ_ACE_TABLE reads a single cross section table in either ASCII or binary +! format. This routine reads the header data for each table and then calls +! appropriate subroutines to parse the actual data. !=============================================================================== subroutine read_ace_table(index_table, index_list) diff --git a/src/ace_header.F90 b/src/ace_header.F90 index 0c14a1ca5f..0b838fb8c9 100644 --- a/src/ace_header.F90 +++ b/src/ace_header.F90 @@ -194,6 +194,10 @@ module ace_header ! Information for S(a,b) use logical :: use_sab ! in S(a,b) energy range? real(8) :: elastic_sab ! microscopic elastic scattering on S(a,b) table + + ! Information for URR probability table use + logical :: use_ptable ! in URR range with probability tables? + logical :: recalculate ! indicate whether we need to recalculate ptables end type NuclideMicroXS !=============================================================================== diff --git a/src/constants.F90 b/src/constants.F90 index cb791c0d78..20c59e79f2 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -6,8 +6,8 @@ module constants ! VERSIONING NUMBERS integer, parameter :: VERSION_MAJOR = 0 - integer, parameter :: VERSION_MINOR = 3 - integer, parameter :: VERSION_RELEASE = 3 + integer, parameter :: VERSION_MINOR = 4 + integer, parameter :: VERSION_RELEASE = 0 ! ============================================================================ ! ADJUSTABLE PARAMETERS diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 367d277cf5..fbec5221ee 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -129,6 +129,7 @@ contains ! Initialize sab treatment to false micro_xs(index_nuclide) % use_sab = .false. micro_xs(index_nuclide) % elastic_sab = ZERO + micro_xs(index_nuclide) % use_ptable = .false. ! Initialize nuclide cross-sections to zero micro_xs(index_nuclide) % fission = ZERO @@ -167,9 +168,11 @@ contains ! probability tables, we need to determine cross sections from the table if (urr_ptables_on .and. nuc % urr_present) then - if (p % E > nuc % urr_data % energy(1) .and. & - p % E < nuc % urr_data % energy(nuc % urr_data % n_energy)) then - call calculate_urr_xs(p, index_nuclide) + if (micro_xs(index_nuclide) % recalculate) then + if (p % E > nuc % urr_data % energy(1) .and. & + p % E < nuc % urr_data % energy(nuc % urr_data % n_energy)) then + call calculate_urr_xs(p, index_nuclide) + end if end if end if @@ -276,18 +279,15 @@ contains integer :: i_table ! index for table real(8) :: f ! interpolation factor real(8) :: r ! pseudo-random number - real(8) :: elastic ! smooth elastic cross section - real(8) :: absorption ! smooth absorption cross section - real(8) :: fission ! smooth fission cross section - real(8) :: inelastic ! smooth inelastic cross section + real(8) :: elastic ! elastic cross section + real(8) :: capture ! (n,gamma) cross section + real(8) :: fission ! fission cross section + real(8) :: inelastic ! inelastic cross section type(UrrData), pointer :: urr => null() type(Nuclide), pointer :: nuc => null() type(Reaction), pointer :: rxn => null() - ! copy cross-sections already calculated - elastic = micro_xs(index_nuclide) % elastic - absorption = micro_xs(index_nuclide) % absorption - fission = micro_xs(index_nuclide) % fission + micro_xs(index_nuclide) % use_ptable = .true. ! get pointer to probability table nuc => nuclides(index_nuclide) @@ -315,15 +315,11 @@ contains ! determine elastic, fission, and capture cross sections from probability ! table if (urr % interp == LINEAR_LINEAR) then - micro_xs(index_nuclide) % elastic = & - (ONE - f) * urr % prob(i_energy, URR_ELASTIC, i_table) + & + elastic = (ONE - f) * urr % prob(i_energy, URR_ELASTIC, i_table) + & f * urr % prob(i_energy + 1, URR_ELASTIC, i_table) - micro_xs(index_nuclide) % fission = & - (ONE - f) * urr % prob(i_energy, URR_FISSION, i_table) + & + fission = (ONE - f) * urr % prob(i_energy, URR_FISSION, i_table) + & f * urr % prob(i_energy + 1, URR_FISSION, i_table) - micro_xs(index_nuclide) % absorption = & - micro_xs(index_nuclide) % fission + & - (ONE - f) * urr % prob(i_energy, URR_N_GAMMA, i_table) + & + capture = (ONE - f) * urr % prob(i_energy, URR_N_GAMMA, i_table) + & f * urr % prob(i_energy + 1, URR_N_GAMMA, i_table) elseif (urr % interp == LOG_LOG) then message = "Log-log interpolation on probability table not yet supported." @@ -349,23 +345,29 @@ contains ! Multiply by smooth cross-section if needed if (urr % multiply_smooth) then - micro_xs(index_nuclide) % elastic = elastic * & - micro_xs(index_nuclide) % elastic - micro_xs(index_nuclide) % absorption = absorption * & - micro_xs(index_nuclide) % absorption - micro_xs(index_nuclide) % fission = fission * & - micro_xs(index_nuclide) % fission + elastic = elastic * micro_xs(index_nuclide) % elastic + capture = capture * (micro_xs(index_nuclide) % absorption - & + micro_xs(index_nuclide) % fission) + fission = fission * micro_xs(index_nuclide) % fission end if + ! Set elastic, absorption, fission, and total cross sections. Note that the + ! total cross section is calculated as sum of partials rather than using the + ! table-provided value + micro_xs(index_nuclide) % elastic = elastic + micro_xs(index_nuclide) % absorption = capture + fission + micro_xs(index_nuclide) % fission = fission + micro_xs(index_nuclide) % total = elastic + inelastic + capture + fission + ! Determine nu-fission cross section if (nuc % fissionable) then micro_xs(index_nuclide) % nu_fission = nu_total(nuc, p % E) * & micro_xs(index_nuclide) % fission end if - ! Calculate total cross section as sum of partials - micro_xs(index_nuclide) % total = micro_xs(index_nuclide) % elastic + & - inelastic + micro_xs(index_nuclide) % absorption + ! As long as the energy of the neutron doesn't change, we don't need to + ! recalculate probability table data + micro_xs(index_nuclide) % recalculate = .false. end subroutine calculate_urr_xs diff --git a/src/global.F90 b/src/global.F90 index 5d4a21f44d..698c6ea96f 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -75,7 +75,7 @@ module global real(8), allocatable :: e_grid(:) ! energies on unionized grid ! Unreoslved resonance probablity tables - logical :: urr_ptables_on = .false. + logical :: urr_ptables_on = .true. ! ============================================================================ ! TALLY-RELATED VARIABLES diff --git a/src/physics.F90 b/src/physics.F90 index 869acc367a..27312d72bb 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -66,6 +66,9 @@ contains ! Initialize number of events to zero n_event = 0 + ! Set recalculate ptables to true by default + micro_xs(:) % recalculate = .true. + ! find energy index, interpolation factor do while (p % alive) @@ -197,6 +200,10 @@ contains ! Reset number of particles banked during collision p % n_bank = 0 + ! Since a collision has occurred, we need to recalculate probability tables + ! for any nuclide + micro_xs(:) % recalculate = .true. + end subroutine collision !=============================================================================== @@ -331,28 +338,42 @@ contains ! just like any other reaction. Here we loop through the fission ! reactions for the nuclide and see if any of them occur - do i = 1, nuc % n_fission - rxn => nuc % reactions(nuc % index_fission(i)) + if (micro_xs(index_nuclide) % use_ptable) then - ! if energy is below threshold for this reaction, skip it - if (IE < rxn%IE) cycle - - ! add to cumulative probability - if (nuc % has_partial_fission) then - prob = prob + ((ONE-f)*rxn%sigma(IE-rxn%IE+1) & - + f*(rxn%sigma(IE-rxn%IE+2))) - else - prob = prob + micro_xs(index_nuclide) % fission - end if - - ! Create fission bank sites if fission occus + prob = prob + micro_xs(index_nuclide) % fission if (prob > cutoff) then + rxn => nuc % reactions(nuc % index_fission(1)) call create_fission_sites(p, index_nuclide, rxn, .true.) p % alive = .false. MT = rxn % MT return end if - end do + else + + do i = 1, nuc % n_fission + rxn => nuc % reactions(nuc % index_fission(i)) + + ! if energy is below threshold for this reaction, skip it + if (IE < rxn%IE) cycle + + ! add to cumulative probability + if (nuc % has_partial_fission) then + prob = prob + ((ONE-f)*rxn%sigma(IE-rxn%IE+1) & + + f*(rxn%sigma(IE-rxn%IE+2))) + else + prob = prob + micro_xs(index_nuclide) % fission + end if + + ! Create fission bank sites if fission occus + if (prob > cutoff) then + call create_fission_sites(p, index_nuclide, rxn, .true.) + p % alive = .false. + MT = rxn % MT + return + end if + end do + + end if end if end if @@ -396,7 +417,7 @@ contains rxn => nuc % reactions(1) ! Perform collision physics for elastic scattering - call elastic_scatter(p, nuc, rxn) + call elastic_scatter(p, index_nuclide, rxn) end if @@ -454,10 +475,10 @@ contains ! need to be fixed !=============================================================================== - subroutine elastic_scatter(p, nuc, rxn) + subroutine elastic_scatter(p, index_nuclide, rxn) type(Particle), pointer :: p - type(Nuclide), pointer :: nuc + integer, intent(in) :: index_nuclide type(Reaction), pointer :: rxn real(8) :: awr ! atomic weight ratio of target @@ -470,6 +491,10 @@ contains real(8) :: v ! y-direction real(8) :: w ! z-direction real(8) :: E ! energy + type(Nuclide), pointer :: nuc => null() + + ! get pointer to nuclide + nuc => nuclides(index_nuclide) vel = sqrt(p % E) awr = nuc % awr @@ -478,7 +503,9 @@ contains v_n = vel * p % coord0 % uvw ! Sample velocity of target nucleus - call sample_target_velocity(p, nuc, v_t) + if (.not. micro_xs(index_nuclide) % use_ptable) then + call sample_target_velocity(p, nuc, v_t) + end if ! Velocity of center-of-mass v_cm = (v_n + awr*v_t)/(awr + ONE) diff --git a/src/utils/abundances.txt b/src/utils/abundances.txt new file mode 100644 index 0000000000..9f03dd827b --- /dev/null +++ b/src/utils/abundances.txt @@ -0,0 +1,289 @@ +# Isotopic abundance from IUPAC Isotopic Compositions of the Element 1997 (atom fraction) +1 H 1 99.9885 +1 H 2 0.0115 +2 He 3 0.000137 +2 He 4 99.999863 +3 Li 6 7.59 +3 Li 7 92.41 +4 Be 9 100 +5 B 10 19.9 +5 B 11 80.1 +6 C 12 98.93 +6 C 13 1.07 +7 N 14 99.632 +7 N 15 0.368 +8 O 16 99.757 +8 O 17 0.038 +8 O 18 0.205 +9 F 19 100 +10 Ne 20 90.48 +10 Ne 21 0.27 +10 Ne 22 9.25 +11 Na 23 100 +12 Mg 24 78.99 +12 Mg 25 10.00 +12 Mg 26 11.01 +13 Al 27 100 +14 Si 28 92.2297 +14 Si 29 4.68315 +14 Si 30 3.08715 +15 P 31 100 +16 S 32 94.93 +16 S 33 0.76 +16 S 34 4.29 +16 S 36 0.02 +17 Cl 35 75.78 +17 Cl 37 24.22 +18 Ar 36 0.3365 +18 Ar 38 0.0632 +18 Ar 40 99.6003 +19 K 39 93.2581 +19 K 40 0.0117 +19 K 41 6.7302 +20 Ca 40 96.941 +20 Ca 42 0.647 +20 Ca 43 0.135 +20 Ca 44 2.086 +20 Ca 46 0.004 +20 Ca 48 0.187 +21 Sc 45 100 +22 Ti 46 8.25 +22 Ti 47 7.44 +22 Ti 48 73.72 +22 Ti 49 5.41 +22 Ti 50 5.18 +23 V 50 0.250 +23 V 51 99.750 +24 Cr 50 4.345 +24 Cr 52 83.789 +24 Cr 53 9.501 +24 Cr 54 2.365 +25 Mn 55 100 +26 Fe 54 5.845 +26 Fe 56 91.754 +26 Fe 57 2.119 +26 Fe 58 0.282 +27 Co 59 100 +28 Ni 58 68.0769 +28 Ni 60 26.2231 +28 Ni 61 1.1399 +28 Ni 62 3.6345 +28 Ni 64 0.9256 +29 Cu 63 69.17 +29 Cu 65 30.83 +30 Zn 64 48.63 +30 Zn 66 27.90 +30 Zn 67 4.10 +30 Zn 68 18.75 +30 Zn 70 0.62 +31 Ga 69 60.108 +31 Ga 71 39.892 +32 Ge 70 20.84 +32 Ge 72 27.54 +32 Ge 73 7.73 +32 Ge 74 36.28 +32 Ge 76 7.61 +33 As 75 100 +34 Se 74 0.89 +34 Se 76 9.37 +34 Se 77 7.63 +34 Se 78 23.77 +34 Se 80 49.61 +34 Se 82 8.73 +35 Br 79 50.69 +35 Br 81 49.31 +36 Kr 78 0.35 +36 Kr 80 2.28 +36 Kr 82 11.58 +36 Kr 83 11.49 +36 Kr 84 57.00 +36 Kr 86 17.30 +37 Rb 85 72.17 +37 Rb 87 27.83 +38 Sr 84 0.56 +38 Sr 86 9.86 +38 Sr 87 7.00 +38 Sr 88 82.58 +39 Y 89 100 +40 Zr 90 51.45 +40 Zr 91 11.22 +40 Zr 92 17.15 +40 Zr 94 17.38 +40 Zr 96 2.80 +41 Nb 93 100 +42 Mo 92 14.84 +42 Mo 94 9.25 +42 Mo 95 15.92 +42 Mo 96 16.68 +42 Mo 97 9.55 +42 Mo 98 24.13 +42 Mo 100 9.63 +44 Ru 96 5.54 +44 Ru 98 1.87 +44 Ru 99 12.76 +44 Ru 100 12.60 +44 Ru 101 17.06 +44 Ru 102 31.55 +44 Ru 104 18.62 +45 Rh 103 100 +46 Pd 102 1.02 +46 Pd 104 11.14 +46 Pd 105 22.33 +46 Pd 106 27.33 +46 Pd 108 26.46 +46 Pd 110 11.72 +47 Ag 107 51.839 +47 Ag 109 48.161 +48 Cd 106 1.25 +48 Cd 108 0.89 +48 Cd 110 12.49 +48 Cd 111 12.80 +48 Cd 112 24.13 +48 Cd 113 12.22 +48 Cd 114 28.73 +48 Cd 116 7.49 +49 In 113 4.29 +49 In 115 95.71 +50 Sn 112 0.97 +50 Sn 114 0.66 +50 Sn 115 0.34 +50 Sn 116 14.54 +50 Sn 117 7.68 +50 Sn 118 24.22 +50 Sn 119 8.59 +50 Sn 120 32.58 +50 Sn 122 4.63 +50 Sn 124 5.79 +51 Sb 121 57.21 +51 Sb 123 42.79 +52 Te 120 0.09 +52 Te 122 2.55 +52 Te 123 0.89 +52 Te 124 4.74 +52 Te 125 7.07 +52 Te 126 18.84 +52 Te 128 31.74 +52 Te 130 34.08 +53 I 127 100 +54 Xe 124 0.09 +54 Xe 126 0.09 +54 Xe 128 1.92 +54 Xe 129 26.44 +54 Xe 130 4.08 +54 Xe 131 21.18 +54 Xe 132 26.89 +54 Xe 134 10.44 +54 Xe 136 8.87 +55 Cs 133 100 +56 Ba 130 0.106 +56 Ba 132 0.101 +56 Ba 134 2.417 +56 Ba 135 6.592 +56 Ba 136 7.854 +56 Ba 137 11.232 +56 Ba 138 71.698 +57 La 138 0.090 +57 La 139 99.910 +58 Ce 136 0.185 +58 Ce 138 0.251 +58 Ce 140 88.450 +58 Ce 142 11.114 +59 Pr 141 100 +60 Nd 142 27.2 +60 Nd 143 12.2 +60 Nd 144 23.8 +60 Nd 145 8.3 +60 Nd 146 17.2 +60 Nd 148 5.7 +60 Nd 150 5.6 +62 Sm 144 3.07 +62 Sm 147 14.99 +62 Sm 148 11.24 +62 Sm 149 13.82 +62 Sm 150 7.38 +62 Sm 152 26.75 +62 Sm 154 22.75 +63 Eu 151 47.81 +63 Eu 153 52.19 +64 Gd 152 0.20 +64 Gd 154 2.18 +64 Gd 155 14.80 +64 Gd 156 20.47 +64 Gd 157 15.65 +64 Gd 158 24.84 +64 Gd 160 21.86 +65 Tb 159 100 +66 Dy 156 0.06 +66 Dy 158 0.10 +66 Dy 160 2.34 +66 Dy 161 18.91 +66 Dy 162 25.51 +66 Dy 163 24.90 +66 Dy 164 28.18 +67 Ho 165 100 +68 Er 162 0.14 +68 Er 164 1.61 +68 Er 166 33.61 +68 Er 167 22.93 +68 Er 168 26.78 +68 Er 170 14.93 +69 Tm 169 100 +70 Yb 168 0.13 +70 Yb 170 3.04 +70 Yb 171 14.28 +70 Yb 172 21.83 +70 Yb 173 16.13 +70 Yb 174 31.83 +70 Yb 176 12.76 +71 Lu 175 97.41 +71 Lu 176 2.59 +72 Hf 174 0.16 +72 Hf 176 5.26 +72 Hf 177 18.60 +72 Hf 178 27.28 +72 Hf 179 13.62 +72 Hf 180 35.08 +73 Ta 180 0.012 +73 Ta 181 99.988 +74 W 180 0.12 +74 W 182 26.50 +74 W 183 14.31 +74 W 184 30.64 +74 W 186 28.43 +75 Re 185 37.40 +75 Re 187 62.60 +76 Os 184 0.02 +76 Os 186 1.59 +76 Os 187 1.96 +76 Os 188 13.24 +76 Os 189 16.15 +76 Os 190 26.26 +76 Os 192 40.78 +77 Ir 191 37.3 +77 Ir 193 62.7 +78 Pt 190 0.014 +78 Pt 192 0.782 +78 Pt 194 32.967 +78 Pt 195 33.832 +78 Pt 196 25.242 +78 Pt 198 7.163 +79 Au 197 100 +80 Hg 196 0.15 +80 Hg 198 9.97 +80 Hg 199 16.87 +80 Hg 200 23.10 +80 Hg 201 13.18 +80 Hg 202 29.86 +80 Hg 204 6.87 +81 Tl 203 29.524 +81 Tl 205 70.476 +82 Pb 204 1.4 +82 Pb 206 24.1 +82 Pb 207 22.1 +82 Pb 208 52.4 +83 Bi 209 100 +90 Th 232 100 +91 Pa 231 100 +92 U 234 0.0055 +92 U 235 0.7200 +92 U 238 99.2745 diff --git a/src/utils/abundances_modified.txt b/src/utils/abundances_modified.txt new file mode 100644 index 0000000000..4dc33faad6 --- /dev/null +++ b/src/utils/abundances_modified.txt @@ -0,0 +1,284 @@ +# Isotopic abundance from IUPAC Isotopic Compositions of the Element 1997 +# Modified to use only nuclides which exist in ENDF/B-VII.0 +1 H 1 99.9885 +1 H 2 0.0115 +2 He 3 0.000137 +2 He 4 99.999863 +3 Li 6 7.59 +3 Li 7 92.41 +4 Be 9 100 +5 B 10 19.9 +5 B 11 80.1 +6 C Nat 100.0 +7 N 14 99.632 +7 N 15 0.368 +8 O 16 99.962 +8 O 17 0.038 +9 F 19 100 +10 Ne 20 90.48 +10 Ne 21 0.27 +10 Ne 22 9.25 +11 Na 23 100 +12 Mg 24 78.99 +12 Mg 25 10.00 +12 Mg 26 11.01 +13 Al 27 100 +14 Si 28 92.2297 +14 Si 29 4.68315 +14 Si 30 3.08715 +15 P 31 100 +16 S 32 94.93 +16 S 33 0.76 +16 S 34 4.29 +16 S 36 0.02 +17 Cl 35 75.78 +17 Cl 37 24.22 +18 Ar 36 0.3365 +18 Ar 38 0.0632 +18 Ar 40 99.6003 +19 K 39 93.2581 +19 K 40 0.0117 +19 K 41 6.7302 +20 Ca 40 96.941 +20 Ca 42 0.647 +20 Ca 43 0.135 +20 Ca 44 2.086 +20 Ca 46 0.004 +20 Ca 48 0.187 +21 Sc 45 100 +22 Ti 46 8.25 +22 Ti 47 7.44 +22 Ti 48 73.72 +22 Ti 49 5.41 +22 Ti 50 5.18 +23 V 50 0.250 +23 V 51 99.750 +24 Cr 50 4.345 +24 Cr 52 83.789 +24 Cr 53 9.501 +24 Cr 54 2.365 +25 Mn 55 100 +26 Fe 54 5.845 +26 Fe 56 91.754 +26 Fe 57 2.119 +26 Fe 58 0.282 +27 Co 59 100 +28 Ni 58 68.0769 +28 Ni 60 26.2231 +28 Ni 61 1.1399 +28 Ni 62 3.6345 +28 Ni 64 0.9256 +29 Cu 63 69.17 +29 Cu 65 30.83 +30 Zn Nat 100.0 +31 Ga 69 60.108 +31 Ga 71 39.892 +32 Ge 70 20.84 +32 Ge 72 27.54 +32 Ge 73 7.73 +32 Ge 74 36.28 +32 Ge 76 7.61 +33 As 75 100 +34 Se 74 0.89 +34 Se 76 9.37 +34 Se 77 7.63 +34 Se 78 23.77 +34 Se 80 49.61 +34 Se 82 8.73 +35 Br 79 50.69 +35 Br 81 49.31 +36 Kr 78 0.35 +36 Kr 80 2.28 +36 Kr 82 11.58 +36 Kr 83 11.49 +36 Kr 84 57.00 +36 Kr 86 17.30 +37 Rb 85 72.17 +37 Rb 87 27.83 +38 Sr 84 0.56 +38 Sr 86 9.86 +38 Sr 87 7.00 +38 Sr 88 82.58 +39 Y 89 100 +40 Zr 90 51.45 +40 Zr 91 11.22 +40 Zr 92 17.15 +40 Zr 94 17.38 +40 Zr 96 2.80 +41 Nb 93 100 +42 Mo 92 14.84 +42 Mo 94 9.25 +42 Mo 95 15.92 +42 Mo 96 16.68 +42 Mo 97 9.55 +42 Mo 98 24.13 +42 Mo 100 9.63 +44 Ru 96 5.54 +44 Ru 98 1.87 +44 Ru 99 12.76 +44 Ru 100 12.60 +44 Ru 101 17.06 +44 Ru 102 31.55 +44 Ru 104 18.62 +45 Rh 103 100 +46 Pd 102 1.02 +46 Pd 104 11.14 +46 Pd 105 22.33 +46 Pd 106 27.33 +46 Pd 108 26.46 +46 Pd 110 11.72 +47 Ag 107 51.839 +47 Ag 109 48.161 +48 Cd 106 1.25 +48 Cd 108 0.89 +48 Cd 110 12.49 +48 Cd 111 12.80 +48 Cd 112 24.13 +48 Cd 113 12.22 +48 Cd 114 28.73 +48 Cd 116 7.49 +49 In 113 4.29 +49 In 115 95.71 +50 Sn 112 0.97 +50 Sn 114 0.66 +50 Sn 115 0.34 +50 Sn 116 14.54 +50 Sn 117 7.68 +50 Sn 118 24.22 +50 Sn 119 8.59 +50 Sn 120 32.58 +50 Sn 122 4.63 +50 Sn 124 5.79 +51 Sb 121 57.21 +51 Sb 123 42.79 +52 Te 120 0.09 +52 Te 122 2.55 +52 Te 123 0.89 +52 Te 124 4.74 +52 Te 125 7.07 +52 Te 126 18.84 +52 Te 128 31.74 +52 Te 130 34.08 +53 I 127 100 +54 Xe 124 0.09 +54 Xe 126 0.09 +54 Xe 128 1.92 +54 Xe 129 26.44 +54 Xe 130 4.08 +54 Xe 131 21.18 +54 Xe 132 26.89 +54 Xe 134 10.44 +54 Xe 136 8.87 +55 Cs 133 100 +56 Ba 130 0.106 +56 Ba 132 0.101 +56 Ba 134 2.417 +56 Ba 135 6.592 +56 Ba 136 7.854 +56 Ba 137 11.232 +56 Ba 138 71.698 +57 La 138 0.090 +57 La 139 99.910 +58 Ce 136 0.185 +58 Ce 138 0.251 +58 Ce 140 88.450 +58 Ce 142 11.114 +59 Pr 141 100 +60 Nd 142 27.2 +60 Nd 143 12.2 +60 Nd 144 23.8 +60 Nd 145 8.3 +60 Nd 146 17.2 +60 Nd 148 5.7 +60 Nd 150 5.6 +62 Sm 144 3.07 +62 Sm 147 14.99 +62 Sm 148 11.24 +62 Sm 149 13.82 +62 Sm 150 7.38 +62 Sm 152 26.75 +62 Sm 154 22.75 +63 Eu 151 47.81 +63 Eu 153 52.19 +64 Gd 152 0.20 +64 Gd 154 2.18 +64 Gd 155 14.80 +64 Gd 156 20.47 +64 Gd 157 15.65 +64 Gd 158 24.84 +64 Gd 160 21.86 +65 Tb 159 100 +66 Dy 156 0.06 +66 Dy 158 0.10 +66 Dy 160 2.34 +66 Dy 161 18.91 +66 Dy 162 25.51 +66 Dy 163 24.90 +66 Dy 164 28.18 +67 Ho 165 100 +68 Er 162 0.14 +68 Er 164 1.61 +68 Er 166 33.61 +68 Er 167 22.93 +68 Er 168 26.78 +68 Er 170 14.93 +69 Tm 169 100 +70 Yb 168 0.13 +70 Yb 170 3.04 +70 Yb 171 14.28 +70 Yb 172 21.83 +70 Yb 173 16.13 +70 Yb 174 31.83 +70 Yb 176 12.76 +71 Lu 175 97.41 +71 Lu 176 2.59 +72 Hf 174 0.16 +72 Hf 176 5.26 +72 Hf 177 18.60 +72 Hf 178 27.28 +72 Hf 179 13.62 +72 Hf 180 35.08 +73 Ta 180 0.012 +73 Ta 181 99.988 +74 W 180 0.12 +74 W 182 26.62 +74 W 183 14.31 +74 W 184 30.64 +74 W 186 28.43 +75 Re 185 37.40 +75 Re 187 62.60 +76 Os 184 0.02 +76 Os 186 1.59 +76 Os 187 1.96 +76 Os 188 13.24 +76 Os 189 16.15 +76 Os 190 26.26 +76 Os 192 40.78 +77 Ir 191 37.3 +77 Ir 193 62.7 +78 Pt 190 0.014 +78 Pt 192 0.782 +78 Pt 194 32.967 +78 Pt 195 33.832 +78 Pt 196 25.242 +78 Pt 198 7.163 +79 Au 197 100 +80 Hg 196 0.15 +80 Hg 198 9.97 +80 Hg 199 16.87 +80 Hg 200 23.10 +80 Hg 201 13.18 +80 Hg 202 29.86 +80 Hg 204 6.87 +81 Tl 203 29.524 +81 Tl 205 70.476 +82 Pb 204 1.4 +82 Pb 206 24.1 +82 Pb 207 22.1 +82 Pb 208 52.4 +83 Bi 209 100 +90 Th 232 100 +91 Pa 231 100 +92 U 234 0.0055 +92 U 235 0.7200 +92 U 238 99.2745 diff --git a/src/utils/split_nuclide.py b/src/utils/split_nuclide.py new file mode 100755 index 0000000000..cc8e9eb300 --- /dev/null +++ b/src/utils/split_nuclide.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python + +import sys + +if len(sys.argv) != 3: + print "Must supply element and atom/b-cm" + exit + +element = sys.argv[1] +ao = float(sys.argv[2]) + +for line in open('abundances_modified.txt','r'): + words = line.split() + if words[1] == element: + print(''.format( + element, words[2], float(words[3])*ao*0.01)) + +