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.
CTML ("Cantera Markup Language") is the variant of XML that Cantera uses to store data.
const double Avogadro
Avogadro's Number [number/kmol].
const double ElectronMass
Electron Mass [kg].
Namespace for the Cantera kernel.
static struct atomicWeightData atomicWeightTable[]
atomicWeightTable is a vector containing the atomic weights database.
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 trimCopy(const std::string &input)
Trim.
std::string toLowerCopy(const std::string &input)
Convert to lower case.
string getElementName(int atomicNumber)
Get the name of an element.
double getElementWeight(int atomicNumber)
Get the atomic weight of an element.
int numElementsDefined()
Get the number of named elements defined in Cantera.
string getElementSymbol(int atomicNumber)
Get the symbol for an element.
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.