70 {
"H",
"hydrogen", 1.008},
71 {
"He",
"helium", 4.002602},
72 {
"Li",
"lithium", 6.94},
73 {
"Be",
"beryllium", 9.0121831},
74 {
"B",
"boron", 10.81},
75 {
"C",
"carbon", 12.011},
76 {
"N",
"nitrogen", 14.007},
77 {
"O",
"oxygen", 15.999},
78 {
"F",
"fluorine", 18.998403163},
79 {
"Ne",
"neon", 20.1797},
80 {
"Na",
"sodium", 22.98976928},
81 {
"Mg",
"magnesium", 24.305},
82 {
"Al",
"aluminum", 26.9815384},
83 {
"Si",
"silicon", 28.085},
84 {
"P",
"phosphorus", 30.973761998},
85 {
"S",
"sulfur", 32.06},
86 {
"Cl",
"chlorine", 35.45},
87 {
"Ar",
"argon", 39.95},
88 {
"K",
"potassium", 39.0983},
89 {
"Ca",
"calcium", 40.078},
90 {
"Sc",
"scandium", 44.955908},
91 {
"Ti",
"titanium", 47.867},
92 {
"V",
"vanadium", 50.9415},
93 {
"Cr",
"chromium", 51.9961},
94 {
"Mn",
"manganese", 54.938043},
95 {
"Fe",
"iron", 55.845},
96 {
"Co",
"cobalt", 58.933194},
97 {
"Ni",
"nickel", 58.6934},
98 {
"Cu",
"copper", 63.546},
99 {
"Zn",
"zinc", 65.38},
100 {
"Ga",
"gallium", 69.723},
101 {
"Ge",
"germanium", 72.630},
102 {
"As",
"arsenic", 74.921595},
103 {
"Se",
"selenium", 78.971},
104 {
"Br",
"bromine", 79.904},
105 {
"Kr",
"krypton", 83.798},
106 {
"Rb",
"rubidium", 85.4678},
107 {
"Sr",
"strontium", 87.62},
108 {
"Y",
"yttrium", 88.90584},
109 {
"Zr",
"zirconium", 91.224},
110 {
"Nb",
"nobelium", 92.90637},
111 {
"Mo",
"molybdenum", 95.95},
112 {
"Tc",
"technetium", -1.0},
113 {
"Ru",
"ruthenium", 101.07},
114 {
"Rh",
"rhodium", 102.90549},
115 {
"Pd",
"palladium", 106.42},
116 {
"Ag",
"silver", 107.8682},
117 {
"Cd",
"cadmium", 112.414},
118 {
"In",
"indium", 114.818},
119 {
"Sn",
"tin", 118.710},
120 {
"Sb",
"antimony", 121.760},
121 {
"Te",
"tellurium", 127.60 },
122 {
"I",
"iodine", 126.90447},
123 {
"Xe",
"xenon", 131.293},
124 {
"Cs",
"cesium", 132.90545196},
125 {
"Ba",
"barium", 137.327},
126 {
"La",
"lanthanum", 138.90547},
127 {
"Ce",
"cerium", 140.116},
128 {
"Pr",
"praseodymium", 140.90766},
129 {
"Nd",
"neodymium", 144.242},
130 {
"Pm",
"promethium", -1.0},
131 {
"Sm",
"samarium", 150.36},
132 {
"Eu",
"europium", 151.964},
133 {
"Gd",
"gadolinium", 157.25},
134 {
"Tb",
"terbium", 158.925354},
135 {
"Dy",
"dysprosium", 162.500},
136 {
"Ho",
"holmium", 164.930328},
137 {
"Er",
"erbium", 167.259},
138 {
"Tm",
"thulium", 168.934218},
139 {
"Yb",
"ytterbium", 173.045},
140 {
"Lu",
"lutetium", 174.9668},
141 {
"Hf",
"hafnium", 178.49},
142 {
"Ta",
"tantalum", 180.94788},
143 {
"W",
"tungsten", 183.84},
144 {
"Re",
"rhenium", 186.207},
145 {
"Os",
"osmium", 190.23 },
146 {
"Ir",
"iridium", 192.217},
147 {
"Pt",
"platinum", 195.084},
148 {
"Au",
"gold", 196.966570},
149 {
"Hg",
"mercury", 200.592},
150 {
"Tl",
"thallium", 204.38},
151 {
"Pb",
"lead", 207.2 },
152 {
"Bi",
"bismuth", 208.98040},
153 {
"Po",
"polonium", -1.0},
154 {
"At",
"astatine", -1.0},
155 {
"Rn",
"radon", -1.0},
156 {
"Fr",
"francium", -1.0},
157 {
"Ra",
"radium", -1.0},
158 {
"Ac",
"actinium", -1.0},
159 {
"Th",
"thorium", 232.0377},
160 {
"Pa",
"protactinium", 231.03588},
161 {
"U",
"uranium", 238.02891},
162 {
"Np",
"neptunium", -1.0},
163 {
"Pu",
"plutonium", -1.0},
164 {
"Am",
"americium", -1.0},
165 {
"Cm",
"curium", -1.0},
166 {
"Bk",
"berkelium", -1.0},
167 {
"Cf",
"californium", -1.0},
168 {
"Es",
"einsteinium", -1.0},
169 {
"Fm",
"fermium", -1.0},
170 {
"Md",
"mendelevium", -1.0},
171 {
"No",
"nobelium", -1.0},
172 {
"Lr",
"lawrencium", -1.0},
173 {
"Rf",
"rutherfordium", -1.0},
174 {
"Db",
"dubnium", -1.0},
175 {
"Sg",
"seaborgium", -1.0},
176 {
"Bh",
"bohrium", -1.0},
177 {
"Hs",
"hassium", -1.0},
178 {
"Mt",
"meitnerium", -1.0},
179 {
"Ds",
"darmstadtium", -1.0},
180 {
"Rg",
"roentgenium", -1.0},
181 {
"Cn",
"copernicium", -1.0},
182 {
"Nh",
"nihonium", -1.0},
183 {
"Gl",
"flerovium", -1.0},
184 {
"Mc",
"moscovium", -1.0},
185 {
"Lv",
"livermorium", -1.0},
186 {
"Ts",
"tennessine", -1.0},
187 {
"Og",
"oganesson", -1.0},
202 {
"D",
"deuterium", 2.0141017781, 1},
203 {
"Tr",
"tritium", 3.0160492820, 1},
211 double elementWeight = 0.0;
214 for (
int i = 0; i < numElements; i++) {
223 if (elementWeight > 0.0) {
224 return elementWeight;
225 }
else if (elementWeight < 0.0) {
227 "element '{}' has no stable isotopes", ename);
229 for (
int i = 0; i < numIsotopes; i++) {
236 throw CanteraError(
"getElementWeight",
"element not found: " + ename);
242 if (atomicNumber > num || atomicNumber < 1) {
243 throw IndexError(
"getElementWeight",
"atomicWeightTable", atomicNumber, num);
246 if (elementWeight < 0.0) {
248 "element '{}' has no stable isotopes",
getElementName(atomicNumber));
250 return elementWeight;
258 for (
int i = 0; i < numElements; i++) {
263 for (
int i = 0; i < numIsotopes; i++) {
268 throw CanteraError(
"getElementSymbol",
"element not found: " + ename);
274 if (atomicNumber > num || atomicNumber < 1) {
275 throw IndexError(
"getElementSymbol",
"atomicWeightTable", atomicNumber,
286 for (
int i = 0; i < numElements; i++) {
291 for (
int i = 0; i < numIsotopes; i++) {
296 throw CanteraError(
"getElementName",
"element not found: " + ename);
302 if (atomicNumber > num || atomicNumber < 1) {
303 throw IndexError(
"getElementName",
"atomicWeightTable", atomicNumber,
315 for (
int i = 0; i < numElements; i++) {
322 for (
int i = 0; i < numIsotopes; i++) {
329 throw CanteraError(
"getAtomicNumber",
"element not found: " + ename);
Contains the getElementWeight function and the definitions of element constraint types.
Base class for exceptions thrown by Cantera classes.
An array index is out of range.
Definitions for the classes that are thrown when Cantera experiences an error condition (also contain...
Namespace for the Cantera kernel.
static struct atomicWeightData atomicWeightTable[]
atomicWeightTable is a vector containing the atomic weights database.
const double Avogadro
Avogadro's Number [number/kmol].
int numIsotopesDefined()
Get the number of named isotopes defined in Cantera.
int getAtomicNumber(const std::string &ename)
Get the atomic number for an element.
std::string getElementName(const std::string &ename)
Get the name of an element.
double getElementWeight(const std::string &ename)
Get the atomic weight of an element.
std::string trimCopy(const std::string &input)
Trim.
std::string toLowerCopy(const std::string &input)
Convert to lower case.
std::string getElementSymbol(const std::string &ename)
Get the symbol for an element.
int numElementsDefined()
Get the number of named elements defined in Cantera.
const double ElectronMass
Electron Mass [kg].
static struct isotopeWeightData isotopeWeightTable[]
isotopeWeightTable is a vector containing the atomic weights database.
Contains declarations for string manipulation functions within Cantera.
string fullName
Element full name, first letter lowercase.
string symbol
Element symbol, first letter capitalized.
double atomicWeight
Element atomic weight in kg / kg-mol, if known. -1 if no stable isotope.
int atomicNumber
Isotope atomic number.
string fullName
Isotope full name, first letter lowercase.
string symbol
Isotope symbol, first letter capitalized.
double atomicWeight
Isotope atomic weight in kg / kg-mol.