Newer
Older
#include "MantidKernel/NeutronAtom.h"
#include "MantidKernel/PhysicalConstants.h"
#include <algorithm>
#include <sstream>
#include <stdexcept>
namespace Mantid {
namespace PhysicalConstants {
using std::string;
Atom::Atom(const std::string &symbol, const uint16_t z, const uint16_t a,
const double abundance, const double mass, const double density)
: symbol(symbol), z_number(z), a_number(a), abundance(abundance),
mass(mass), mass_density(density),
number_density(density * N_A * 1.e-24 /
mass), // Convert from cm^-3 to Angstroms^-3
neutron(
getNeutronNoExceptions(z, a)) /// Get the corresponding neutronic atom
{}
Atom::Atom(const Atom &other)
: symbol(other.symbol), z_number(other.z_number), a_number(other.a_number),
abundance(other.abundance), mass(other.mass),
mass_density(other.mass_density), number_density(other.number_density),
: symbol("user"), z_number(neutron.z_number), a_number(neutron.a_number),
abundance(0), mass(0.), mass_density(0.), number_density(0.),
Russell Taylor
committed
// ---------- START DO NOT EDIT AREA----------
Janik Zikovsky
committed
/// \cond
Russell Taylor
committed
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
static const Atom H("H", 1, 0, 0.000000, 1.007940, 0.0708);
static const Atom H1("H", 1, 1, 99.988500, 1.007825, 0.070791924393);
static const Atom H2("H", 1, 2, 0.011500, 2.014102, 0.141475093639);
static const Atom H3("H", 1, 3, 0.000000, 3.016049, 0.21185416606);
static const Atom H4("H", 1, 4, 0.000000, 4.027830, 0.282923947854);
static const Atom H5("H", 1, 5, 0.000000, 5.039540, 0.353988761236);
static const Atom H6("H", 1, 6, 0.000000, 6.044940, 0.424610345854);
static const Atom He("He", 2, 0, 0.000000, 4.002602, 0.122);
static const Atom He3("He", 2, 3, 0.000137, 3.016029, 0.0919290940702);
static const Atom He4("He", 2, 4, 99.999863, 4.002603, 0.122000038091);
static const Atom He5("He", 2, 5, 0.000000, 5.012220, 0.152773330948);
static const Atom He6("He", 2, 6, 0.000000, 6.018888, 0.183456748435);
static const Atom He7("He", 2, 7, 0.000000, 7.028030, 0.214215567773);
static const Atom He8("He", 2, 8, 0.000000, 8.033922, 0.244875329598);
static const Atom He9("He", 2, 9, 0.000000, 9.043820, 0.275657194995);
static const Atom He10("He", 2, 10, 0.000000, 10.052400, 0.306398887524);
static const Atom Li("Li", 3, 0, 0.000000, 6.941000, 0.534);
static const Atom Li4("Li", 3, 4, 0.000000, 4.027180, 0.309827707823);
static const Atom Li5("Li", 3, 5, 0.000000, 5.012540, 0.385635551073);
static const Atom Li6("Li", 3, 6, 7.590000, 6.015122, 0.462768377496);
static const Atom Li7("Li", 3, 7, 92.410000, 7.016004, 0.539770369687);
static const Atom Li8("Li", 3, 8, 0.000000, 8.022487, 0.617203270105);
static const Atom Li9("Li", 3, 9, 0.000000, 9.026789, 0.694468430975);
static const Atom Li10("Li", 3, 10, 0.000000, 10.035481, 0.772071294338);
static const Atom Li11("Li", 3, 11, 0.000000, 11.043796, 0.849645161216);
static const Atom Li12("Li", 3, 12, 0.000000, 12.053780, 0.927347431206);
static const Atom Be("Be", 4, 0, 0.000000, 9.012182, 1.848);
static const Atom Be5("Be", 4, 5, 0.000000, 5.040790, 1.03364311995);
static const Atom Be6("Be", 4, 6, 0.000000, 6.019726, 1.23437960396);
static const Atom Be7("Be", 4, 7, 0.000000, 7.016929, 1.4388618829);
static const Atom Be8("Be", 4, 8, 0.000000, 8.005305, 1.64153407092);
static const Atom Be9("Be", 4, 9, 100.000000, 9.012182, 1.84800002051);
static const Atom Be10("Be", 4, 10, 0.000000, 10.013534, 2.05333295284);
static const Atom Be11("Be", 4, 11, 0.000000, 11.021658, 2.26005466645);
static const Atom Be12("Be", 4, 12, 0.000000, 12.026921, 2.46618965396);
static const Atom Be13("Be", 4, 13, 0.000000, 13.036130, 2.67313379157);
static const Atom Be14("Be", 4, 14, 0.000000, 14.042820, 2.87956139368);
static const Atom B("B", 5, 0, 0.000000, 10.811000, 2.34);
static const Atom B7("B", 5, 7, 0.000000, 7.029920, 1.52159955601);
static const Atom B8("B", 5, 8, 0.000000, 8.024607, 1.73689572454);
static const Atom B9("B", 5, 9, 0.000000, 9.013329, 1.95090087799);
static const Atom B10("B", 5, 10, 19.900000, 10.012937, 2.16726228656);
static const Atom B11("B", 5, 11, 80.100000, 11.009305, 2.38292247433);
static const Atom B12("B", 5, 12, 0.000000, 12.014352, 2.60046100398);
static const Atom B13("B", 5, 13, 0.000000, 13.017780, 2.81764923707);
static const Atom B14("B", 5, 14, 0.000000, 14.025404, 3.03574557025);
static const Atom B15("B", 5, 15, 0.000000, 15.031097, 3.25342401073);
static const Atom B16("B", 5, 16, 0.000000, 16.039810, 3.47175611877);
static const Atom B17("B", 5, 17, 0.000000, 17.046930, 3.68974342799);
static const Atom B18("B", 5, 18, 0.000000, 18.056170, 3.90818960318);
static const Atom B19("B", 5, 19, 0.000000, 19.063730, 4.12627214874);
static const Atom C("C", 6, 0, 0.000000, 12.010700, 2.1);
static const Atom C8("C", 6, 8, 0.000000, 8.037675, 1.40534003014);
static const Atom C9("C", 6, 9, 0.000000, 9.031040, 1.57902405438);
static const Atom C10("C", 6, 10, 0.000000, 10.016853, 1.75138763852);
static const Atom C11("C", 6, 11, 0.000000, 11.011434, 1.92528420325);
static const Atom C12("C", 6, 12, 98.930000, 12.000000, 2.09812916816);
static const Atom C13("C", 6, 13, 1.070000, 13.003355, 2.27355983909);
static const Atom C14("C", 6, 14, 0.000000, 14.003242, 2.44838420532);
static const Atom C15("C", 6, 15, 0.000000, 15.010599, 2.62451468524);
static const Atom C16("C", 6, 16, 0.000000, 16.014701, 2.80007594062);
static const Atom C17("C", 6, 17, 0.000000, 17.022584, 2.97629833399);
static const Atom C18("C", 6, 18, 0.000000, 18.026760, 3.15187258028);
static const Atom C19("C", 6, 19, 0.000000, 19.035250, 3.32820110402);
static const Atom C20("C", 6, 20, 0.000000, 20.040320, 3.50393166094);
static const Atom C21("C", 6, 21, 0.000000, 21.049340, 3.68035285204);
static const Atom C22("C", 6, 22, 0.000000, 22.056450, 3.85644009092);
static const Atom N("N", 7, 0, 0.000000, 14.006700, 0.808);
static const Atom N10("N", 7, 10, 0.000000, 10.042620, 0.57932539142);
static const Atom N11("N", 7, 11, 0.000000, 11.026800, 0.636099466684);
static const Atom N12("N", 7, 12, 0.000000, 12.018613, 0.693313875902);
static const Atom N13("N", 7, 13, 0.000000, 13.005739, 0.750257860355);
static const Atom N14("N", 7, 14, 99.632000, 14.003074, 0.807790828404);
static const Atom N15("N", 7, 15, 0.368000, 15.000109, 0.865306459759);
static const Atom N16("N", 7, 16, 0.000000, 16.006101, 0.923338825791);
static const Atom N17("N", 7, 17, 0.000000, 17.008450, 0.981160987242);
static const Atom N18("N", 7, 18, 0.000000, 18.014082, 1.03917255713);
static const Atom N19("N", 7, 19, 0.000000, 19.017027, 1.09702912292);
static const Atom N20("N", 7, 20, 0.000000, 20.023370, 1.15508170804);
static const Atom N21("N", 7, 21, 0.000000, 21.027090, 1.212982981);
static const Atom N22("N", 7, 22, 0.000000, 22.034440, 1.27109365661);
static const Atom N23("N", 7, 23, 0.000000, 23.040510, 1.32913049326);
static const Atom N24("N", 7, 24, 0.000000, 24.050500, 1.3873934617);
static const Atom O("O", 8, 0, 0.000000, 15.999400, 1.14);
static const Atom O12("O", 8, 12, 0.000000, 12.034405, 0.857483511882);
static const Atom O13("O", 8, 13, 0.000000, 13.024810, 0.928052514469);
static const Atom O14("O", 8, 14, 0.000000, 14.008595, 0.998149845032);
static const Atom O15("O", 8, 15, 0.000000, 15.003065, 1.06900849757);
static const Atom O16("O", 8, 16, 99.757000, 15.994915, 1.13968040484);
static const Atom O17("O", 8, 17, 0.038000, 16.999132, 1.21123354063);
static const Atom O18("O", 8, 18, 0.205000, 17.999160, 1.28248827181);
static const Atom O19("O", 8, 19, 0.000000, 19.003579, 1.35405578084);
static const Atom O20("O", 8, 20, 0.000000, 20.004076, 1.42534387965);
static const Atom O21("O", 8, 21, 0.000000, 21.008655, 1.49692280336);
static const Atom O22("O", 8, 22, 0.000000, 22.009970, 1.56826917259);
static const Atom O23("O", 8, 23, 0.000000, 23.015690, 1.63992940985);
static const Atom O24("O", 8, 24, 0.000000, 24.020370, 1.71151554433);
static const Atom O25("O", 8, 25, 0.000000, 25.029140, 1.78339310224);
static const Atom O26("O", 8, 26, 0.000000, 26.037750, 1.85525925972);
static const Atom F("F", 9, 0, 0.000000, 18.998403, 1.5);
static const Atom F14("F", 9, 14, 0.000000, 14.036080, 1.1082047148);
static const Atom F15("F", 9, 15, 0.000000, 15.018010, 1.18573201984);
static const Atom F16("F", 9, 16, 0.000000, 16.011466, 1.26416934872);
static const Atom F17("F", 9, 17, 0.000000, 17.002095, 1.34238349358);
static const Atom F18("F", 9, 18, 0.000000, 18.000938, 1.42124610504);
static const Atom F19("F", 9, 19, 100.000000, 18.998403, 1.5);
static const Atom F20("F", 9, 20, 0.000000, 19.999981, 1.57907860277);
static const Atom F21("F", 9, 21, 0.000000, 20.999949, 1.65803004697);
static const Atom F22("F", 9, 22, 0.000000, 22.002999, 1.73722486846);
static const Atom F23("F", 9, 23, 0.000000, 23.003570, 1.81622395507);
static const Atom F24("F", 9, 24, 0.000000, 24.008100, 1.89553562059);
static const Atom F25("F", 9, 25, 0.000000, 25.012090, 1.97480465095);
static const Atom F26("F", 9, 26, 0.000000, 26.019630, 2.05435396802);
static const Atom F27("F", 9, 27, 0.000000, 27.026890, 2.13388117797);
static const Atom F28("F", 9, 28, 0.000000, 28.035670, 2.21352839801);
static const Atom F29("F", 9, 29, 0.000000, 29.043260, 2.29308166278);
static const Atom Ne("Ne", 10, 0, 0.000000, 20.179700, 1.207);
static const Atom Ne32("Ne", 10, 32, 0.000000, 32.039910, 1.91638980609);
static const Atom Ne16("Ne", 10, 16, 0.000000, 16.025757, 0.958541935658);
static const Atom Ne17("Ne", 10, 17, 0.000000, 17.017700, 1.0178726096);
static const Atom Ne18("Ne", 10, 18, 0.000000, 18.005697, 1.07696726907);
static const Atom Ne19("Ne", 10, 19, 0.000000, 19.001880, 1.13655153043);
static const Atom Ne20("Ne", 10, 20, 90.480000, 19.992440, 1.19579950605);
static const Atom Ne21("Ne", 10, 21, 0.270000, 20.993847, 1.25569622022);
static const Atom Ne22("Ne", 10, 22, 9.250000, 21.991386, 1.31536159163);
static const Atom Ne23("Ne", 10, 23, 0.000000, 22.994467, 1.37535850778);
static const Atom Ne24("Ne", 10, 24, 0.000000, 23.993615, 1.43512011105);
static const Atom Ne25("Ne", 10, 25, 0.000000, 24.997790, 1.49518241252);
static const Atom Ne26("Ne", 10, 26, 0.000000, 26.000460, 1.55515469606);
static const Atom Ne27("Ne", 10, 27, 0.000000, 27.007620, 1.61539553809);
static const Atom Ne28("Ne", 10, 28, 0.000000, 28.012110, 1.67547668053);
static const Atom Ne29("Ne", 10, 29, 0.000000, 29.019350, 1.73572230757);
static const Atom Ne30("Ne", 10, 30, 0.000000, 30.023870, 1.79580524438);
static const Atom Ne31("Ne", 10, 31, 0.000000, 31.033110, 1.85617049659);
static const Atom Na("Na", 11, 0, 0.000000, 22.989770, 0.971);
static const Atom Na32("Na", 11, 32, 0.000000, 32.019650, 1.35238761197);
static const Atom Na33("Na", 11, 33, 0.000000, 33.027390, 1.3949506972);
static const Atom Na34("Na", 11, 34, 0.000000, 34.034900, 1.43750406811);
static const Atom Na35("Na", 11, 35, 0.000000, 35.044180, 1.48013219706);
static const Atom Na18("Na", 11, 18, 0.000000, 18.027180, 0.761399169283);
static const Atom Na19("Na", 11, 19, 0.000000, 19.013879, 0.803073563111);
static const Atom Na20("Na", 11, 20, 0.000000, 20.007348, 0.845033895859);
static const Atom Na21("Na", 11, 21, 0.000000, 20.997655, 0.886860682038);
static const Atom Na22("Na", 11, 22, 0.000000, 21.994437, 0.92896093057);
static const Atom Na23("Na", 11, 23, 100.000000, 22.989770, 0.970999986062);
static const Atom Na24("Na", 11, 24, 0.000000, 23.990963, 1.01328657892);
static const Atom Na25("Na", 11, 25, 0.000000, 24.989954, 1.05548014279);
static const Atom Na26("Na", 11, 26, 0.000000, 25.992590, 1.09782763768);
static const Atom Na27("Na", 11, 27, 0.000000, 26.994010, 1.14012379028);
static const Atom Na28("Na", 11, 28, 0.000000, 27.998890, 1.18256608004);
static const Atom Na29("Na", 11, 29, 0.000000, 29.002810, 1.22496782308);
static const Atom Na30("Na", 11, 30, 0.000000, 30.009230, 1.26747515656);
static const Atom Na31("Na", 11, 31, 0.000000, 31.013600, 1.30989590587);
static const Atom Mg("Mg", 12, 0, 0.000000, 24.305000, 1.738);
static const Atom Mg32("Mg", 12, 32, 0.000000, 31.999150, 2.28819266406);
static const Atom Mg33("Mg", 12, 33, 0.000000, 33.005590, 2.36016109525);
static const Atom Mg34("Mg", 12, 34, 0.000000, 34.009070, 2.43191786299);
static const Atom Mg35("Mg", 12, 35, 0.000000, 35.017490, 2.50402787986);
static const Atom Mg36("Mg", 12, 36, 0.000000, 36.022450, 2.57589047933);
static const Atom Mg37("Mg", 12, 37, 0.000000, 37.031240, 2.64802695412);
static const Atom Mg20("Mg", 12, 20, 0.000000, 20.018863, 1.43150725752);
static const Atom Mg21("Mg", 12, 21, 0.000000, 21.011714, 1.50250396758);
Loading
Loading full blame...