ARTS 2.5.4 (git: 31ce4f0e)
jpl_species.cc
Go to the documentation of this file.
1#include <map>
2
3#include "jpl_species.h"
4
5#include "species_tags.h"
6
7using JplMap = std::map<Index, const char * const>;
8
10 {18003, "H2O-161"},
11 {18005, "H2O-161"},
12 {20003, "H2O-181"},
13 {19003, "H2O-171"},
14 {19002, "H2O-162"},
15 {21001, "H2O-182"},
16 {20001, "H2O-262"},
17
18 {46013, "CO2-628"},
19 {45012, "CO2-627"},
20
21 {48004, "O3-666"},
22 {48005, "O3-666"},
23 {48006, "O3-666"},
24 {48007, "O3-666"},
25 {48008, "O3-666"},
26 {50004, "O3-668"},
27 {50006, "O3-668"},
28 {50003, "O3-686"},
29 {50005, "O3-686"},
30 {49002, "O3-667"},
31 {49001, "O3-676"},
32
33 {44004, "N2O-676"},
34 {44009, "N2O-676"},
35 {44012, "N2O-676"},
36 {45007, "N2O-456"},
37 {45008, "N2O-546"},
38 {46007, "N2O-448"},
39
40 {28001, "CO-26"},
41 {29001, "CO-36"},
42 {30001, "CO-28"},
43 {29006, "CO-27"},
44
45 {17003, "CH4-212"},
46
47 {32001, "O2-66"},
48 {32002, "O2-66"},
49 {34001, "O2-68"},
50 {33002, "O2-67"},
51
52 {30008, "NO-46"},
53
54 {64002, "SO2-626"},
55 {64005, "SO2-626"},
56 {66002, "SO2-646"},
57 {65001, "SO2-636"},
58 {66004, "SO2-628"},
59
60 {46006, "NO2-646"},
61
62 {17002, "NH3-4111"},
63 {17004, "NH3-4111"},
64 {18002, "NH3-5111"},
65 {18004, "NH3-4112"},
66
67 {63001, "HNO3-146"},
68 {63002, "HNO3-146"},
69 {63003, "HNO3-146"},
70 {63004, "HNO3-146"},
71 {63005, "HNO3-146"},
72 {63006, "HNO3-146"},
73
74 {17001, "OH-61"},
75 {19001, "OH-81"},
76 {18001, "OH-62"},
77
78 {20002, "HF-19"},
79 {21002, "HF-29"},
80
81 {36001, "HCl-15"},
82 {38001, "HCl-17"},
83 {37001, "HCl-25"},
84 {39004, "HCl-27"},
85
86 {80001, "HBr-19"},
87 {82001, "HBr-11"},
88
89 {51002, "ClO-56"},
90 {51003, "ClO-56"},
91 {53002, "ClO-76"},
92 {53006, "ClO-76"},
93
94 {60001, "OCS-622"},
95 {62001, "OCS-624"},
96 {61001, "OCS-632"},
97 {62002, "OCS-822"},
98
99 {30004, "H2CO-126"},
100 {31002, "H2CO-136"},
101 {32004, "H2CO-128"},
102
103 {31003, "HDCO-26"},
104
105 {32006, "D2CO-26"},
106
107 {52006, "HOCl-165"},
108 {54005, "HOCl-167"},
109
110 {27001, "HCN-124"},
111 {27003, "HCN-124"},
112 {28002, "HCN-134"},
113 {28003, "HCN-125"},
114 {28004, "HCN-224"},
115
116 {50007, "CH3Cl-215"},
117 {52009, "CH3Cl-217"},
118
119 {34004, "H2O2-1661"},
120
121 {34003, "PH3-1111"},
122
123 {66001, "COF2-269"},
124
125 {34002, "H2S-121"},
126 {35001, "H2S-122"},
127
128 {46005, "HCOOH-126"},
129 {47002, "HCOOH-136"},
130
131 {47003, "DCOOH-266"},
132
133 {47004, "HCOOD-266"},
134
135 {33001, "HO2-166"},
136
137 {16001, "O-6"},
138
139 {97002, "ClONO2-5646"},
140 {99001, "ClONO2-7646"},
141
142 {30011, "NO+-46"},
143
144 {67001, "OClO-656"},
145 {69001, "OClO-676"},
146
147 {95001, "BrO-96"},
148 {97001, "BrO-16"},
149
150 {98001, "H2SO4-126"},
151
152 {102001, "Cl2O2-565"},
153 {104001, "Cl2O2-765"},
154
155 {96001, "HOBr-169"},
156 {98002, "HOBr-161"},
157
158 {32003, "CH3OH-2161"},
159
160 {41001, "CH3CN-2124"},
161 {41010, "CH3CN-2124"},
162 {42006, "CH3CN-3124"},
163 {42007, "CH3CN-2134"},
164 {42001, "CH3CN-2125"},
165 {42008, "CH2DCN-224"},
166
167 {51001, "HC3N-12224"},
168 {52001, "HC3N-12234"},
169 {52002, "HC3N-12324"},
170 {52003, "HC3N-13224"},
171 {52004, "HC3N-12225"},
172 {52005, "HC3N-22224"},
173
174 {44001, "CS-22"},
175 {46001, "CS-24"},
176 {45001, "CS-32"},
177
178 {27002, "HNC-142"},
179 {27003, "HNC-142"},
180 {28005, "HNC-143"},
181 {28006, "HNC-152"},
182 {28007, "HNC-242"},
183
184 {48001, "SO-26"},
185 {48002, "SO-26"},
186 {50001, "SO-46"},
187 {50002, "SO-28"},
188
189 {44013, "C3H8-21"},
190
191 {3001, "H2-12"},
192};
193
194using ArtsMap = std::map<Index, SpeciesTag>;
195
197 ArtsMap out;
198 for (auto& x: jplmap) {
199 out[x.first] = SpeciesTag(x.second);
200 }
201 return out;
202}
203
205 static ArtsMap data = to_species_map(catdir2arts);
206 auto ptr = data.find(tag);
208 ptr == data.cend(), "Cannot find the tag: ", tag, " in ARTS")
209 return QuantumIdentifier{Species::find_species_index(ptr->second.Isotopologue())};
210}
#define ARTS_USER_ERROR_IF(condition,...)
Definition: debug.h:134
std::map< Index, const char *const > JplMap
Definition: jpl_species.cc:7
std::map< Index, SpeciesTag > ArtsMap
Definition: jpl_species.cc:194
const JplMap catdir2arts
Definition: jpl_species.cc:9
ArtsMap to_species_map(const JplMap &jplmap)
Definition: jpl_species.cc:196
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
QuantumIdentifier id_from_lookup(Index tag)
Finds the ID of the ARTS species from JPL.
Definition: jpl_species.cc:204
constexpr Index find_species_index(const Species spec, const std::string_view isot) noexcept
Species::Tag SpeciesTag
Definition: species_tags.h:101
A logical struct for global quantum numbers with species identifiers.