ARTS 2.5.11 (git: 6827797f)
tokval.h
Go to the documentation of this file.
1// auto-generated tokval interface
2
3#ifndef auto_tokval_h
4#define auto_tokval_h
5
6#include "ppath_struct.h"
7#include "absorptionlines.h"
8#include "artstime.h"
9#include "callback.h"
10#include "cia.h"
11#include "covariance_matrix.h"
12#include "energylevelmap.h"
13#include "gas_abs_lookup.h"
14#include "linemixing.h"
15#include "linemixing_hitran.h"
16#include "matpack_data.h"
17#include "mc_antenna.h"
18#include "optproperties.h"
19#include "sun.h"
20#include "supergeneric.h"
21#include "telsem.h"
22#include "tessem.h"
23#include "timer_struct.h"
24#include "transmissionmatrix.h"
25#include "xsec_fit.h"
26
27#include <predefined/predef_data.h>
28
29template <class base> class Array;
30class Agenda;
32
33template <typename T>
34concept ArtsType = false
35 or std::is_same_v<std::remove_cvref_t<T>, AbsorptionLines>
36 or std::is_same_v<std::remove_cvref_t<T>, Agenda>
37 or std::is_same_v<std::remove_cvref_t<T>, Any>
38 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfAbsorptionLines>
39 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfAgenda>
40 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfAbsorptionLines>
41 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfGriddedField1>
42 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfGriddedField2>
43 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfGriddedField3>
44 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfIndex>
45 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfMatrix>
46 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfPropagationMatrix>
47 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfRadiationVector>
48 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfScatteringMetaData>
49 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfSingleScatteringData>
50 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfSpeciesTag>
51 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfStokesVector>
52 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfString>
53 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfTensor3>
54 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfTensor6>
55 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfTime>
56 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfTransmissionMatrix>
57 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfArrayOfVector>
58 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfCIARecord>
59 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfGriddedField1>
60 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfGriddedField2>
61 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfGriddedField3>
62 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfGriddedField4>
63 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfIndex>
64 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfJacobianTarget>
65 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfMatrix>
66 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfPpath>
67 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfPropagationMatrix>
68 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfQuantumIdentifier>
69 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfRadiationVector>
70 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfRetrievalQuantity>
71 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfScatteringMetaData>
72 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfSingleScatteringData>
73 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfSparse>
74 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfSpeciesTag>
75 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfStokesVector>
76 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfString>
77 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfSun>
78 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfTelsemAtlas>
79 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfTensor3>
80 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfTensor4>
81 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfTensor5>
82 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfTensor6>
83 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfTensor7>
84 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfTime>
85 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfTransmissionMatrix>
86 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfVector>
87 or std::is_same_v<std::remove_cvref_t<T>, ArrayOfXsecRecord>
88 or std::is_same_v<std::remove_cvref_t<T>, CIARecord>
89 or std::is_same_v<std::remove_cvref_t<T>, CallbackFunction>
90 or std::is_same_v<std::remove_cvref_t<T>, CovarianceMatrix>
91 or std::is_same_v<std::remove_cvref_t<T>, EnergyLevelMap>
92 or std::is_same_v<std::remove_cvref_t<T>, GasAbsLookup>
93 or std::is_same_v<std::remove_cvref_t<T>, GridPos>
94 or std::is_same_v<std::remove_cvref_t<T>, GriddedField1>
95 or std::is_same_v<std::remove_cvref_t<T>, GriddedField2>
96 or std::is_same_v<std::remove_cvref_t<T>, GriddedField3>
97 or std::is_same_v<std::remove_cvref_t<T>, GriddedField4>
98 or std::is_same_v<std::remove_cvref_t<T>, GriddedField5>
99 or std::is_same_v<std::remove_cvref_t<T>, GriddedField6>
100 or std::is_same_v<std::remove_cvref_t<T>, HitranRelaxationMatrixData>
101 or std::is_same_v<std::remove_cvref_t<T>, Index>
102 or std::is_same_v<std::remove_cvref_t<T>, JacobianTarget>
103 or std::is_same_v<std::remove_cvref_t<T>, MCAntenna>
104 or std::is_same_v<std::remove_cvref_t<T>, MapOfErrorCorrectedSuddenData>
105 or std::is_same_v<std::remove_cvref_t<T>, Matrix>
106 or std::is_same_v<std::remove_cvref_t<T>, Numeric>
107 or std::is_same_v<std::remove_cvref_t<T>, Ppath>
108 or std::is_same_v<std::remove_cvref_t<T>, PredefinedModelData>
109 or std::is_same_v<std::remove_cvref_t<T>, PropagationMatrix>
110 or std::is_same_v<std::remove_cvref_t<T>, QuantumIdentifier>
111 or std::is_same_v<std::remove_cvref_t<T>, RadiationVector>
112 or std::is_same_v<std::remove_cvref_t<T>, Rational>
113 or std::is_same_v<std::remove_cvref_t<T>, ScatteringMetaData>
114 or std::is_same_v<std::remove_cvref_t<T>, SingleScatteringData>
115 or std::is_same_v<std::remove_cvref_t<T>, Sparse>
116 or std::is_same_v<std::remove_cvref_t<T>, SpeciesIsotopologueRatios>
117 or std::is_same_v<std::remove_cvref_t<T>, StokesVector>
118 or std::is_same_v<std::remove_cvref_t<T>, String>
119 or std::is_same_v<std::remove_cvref_t<T>, TelsemAtlas>
120 or std::is_same_v<std::remove_cvref_t<T>, Tensor3>
121 or std::is_same_v<std::remove_cvref_t<T>, Tensor4>
122 or std::is_same_v<std::remove_cvref_t<T>, Tensor5>
123 or std::is_same_v<std::remove_cvref_t<T>, Tensor6>
124 or std::is_same_v<std::remove_cvref_t<T>, Tensor7>
125 or std::is_same_v<std::remove_cvref_t<T>, TessemNN>
126 or std::is_same_v<std::remove_cvref_t<T>, Time>
127 or std::is_same_v<std::remove_cvref_t<T>, Timer>
128 or std::is_same_v<std::remove_cvref_t<T>, TransmissionMatrix>
129 or std::is_same_v<std::remove_cvref_t<T>, Vector>
130 or std::is_same_v<std::remove_cvref_t<T>, Verbosity>;
131
132template <typename T>
133concept ArtsTypeMove = ArtsType<T> and std::is_same_v<std::add_rvalue_reference<std::remove_cvref_t<T>>, T>;
134
135template <typename T>
136concept ArtsTypeRef = ArtsType<T> and std::is_same_v<std::add_lvalue_reference<std::remove_cvref_t<T>>, T>;
137
138template <typename T>
139concept ArtsTypeConstRef = ArtsType<T> and std::is_same_v<std::add_const_t<std::add_lvalue_reference<std::remove_cvref_t<T>>>, T>;
140
141template <typename T>
142concept ArtsTypeBase = ArtsType<T> and std::is_same_v<std::remove_cvref_t<T>, T>;
143
144template <ArtsTypeBase> struct WorkspaceGroupIndex { static constexpr Index value=-1; };
145template <> struct WorkspaceGroupIndex<AbsorptionLines> { static constexpr Index value=0; };
146template <> struct WorkspaceGroupIndex<Agenda> { static constexpr Index value=1; };
147template <> struct WorkspaceGroupIndex<Any> { static constexpr Index value=2; };
148template <> struct WorkspaceGroupIndex<ArrayOfAbsorptionLines> { static constexpr Index value=3; };
149template <> struct WorkspaceGroupIndex<ArrayOfAgenda> { static constexpr Index value=4; };
150template <> struct WorkspaceGroupIndex<ArrayOfArrayOfAbsorptionLines> { static constexpr Index value=5; };
151template <> struct WorkspaceGroupIndex<ArrayOfArrayOfGriddedField1> { static constexpr Index value=6; };
152template <> struct WorkspaceGroupIndex<ArrayOfArrayOfGriddedField2> { static constexpr Index value=7; };
153template <> struct WorkspaceGroupIndex<ArrayOfArrayOfGriddedField3> { static constexpr Index value=8; };
154template <> struct WorkspaceGroupIndex<ArrayOfArrayOfIndex> { static constexpr Index value=9; };
155template <> struct WorkspaceGroupIndex<ArrayOfArrayOfMatrix> { static constexpr Index value=10; };
156template <> struct WorkspaceGroupIndex<ArrayOfArrayOfPropagationMatrix> { static constexpr Index value=11; };
157template <> struct WorkspaceGroupIndex<ArrayOfArrayOfRadiationVector> { static constexpr Index value=12; };
158template <> struct WorkspaceGroupIndex<ArrayOfArrayOfScatteringMetaData> { static constexpr Index value=13; };
159template <> struct WorkspaceGroupIndex<ArrayOfArrayOfSingleScatteringData> { static constexpr Index value=14; };
160template <> struct WorkspaceGroupIndex<ArrayOfArrayOfSpeciesTag> { static constexpr Index value=15; };
161template <> struct WorkspaceGroupIndex<ArrayOfArrayOfStokesVector> { static constexpr Index value=16; };
162template <> struct WorkspaceGroupIndex<ArrayOfArrayOfString> { static constexpr Index value=17; };
163template <> struct WorkspaceGroupIndex<ArrayOfArrayOfTensor3> { static constexpr Index value=18; };
164template <> struct WorkspaceGroupIndex<ArrayOfArrayOfTensor6> { static constexpr Index value=19; };
165template <> struct WorkspaceGroupIndex<ArrayOfArrayOfTime> { static constexpr Index value=20; };
166template <> struct WorkspaceGroupIndex<ArrayOfArrayOfTransmissionMatrix> { static constexpr Index value=21; };
167template <> struct WorkspaceGroupIndex<ArrayOfArrayOfVector> { static constexpr Index value=22; };
168template <> struct WorkspaceGroupIndex<ArrayOfCIARecord> { static constexpr Index value=23; };
169template <> struct WorkspaceGroupIndex<ArrayOfGriddedField1> { static constexpr Index value=24; };
170template <> struct WorkspaceGroupIndex<ArrayOfGriddedField2> { static constexpr Index value=25; };
171template <> struct WorkspaceGroupIndex<ArrayOfGriddedField3> { static constexpr Index value=26; };
172template <> struct WorkspaceGroupIndex<ArrayOfGriddedField4> { static constexpr Index value=27; };
173template <> struct WorkspaceGroupIndex<ArrayOfIndex> { static constexpr Index value=28; };
174template <> struct WorkspaceGroupIndex<ArrayOfJacobianTarget> { static constexpr Index value=29; };
175template <> struct WorkspaceGroupIndex<ArrayOfMatrix> { static constexpr Index value=30; };
176template <> struct WorkspaceGroupIndex<ArrayOfPpath> { static constexpr Index value=31; };
177template <> struct WorkspaceGroupIndex<ArrayOfPropagationMatrix> { static constexpr Index value=32; };
178template <> struct WorkspaceGroupIndex<ArrayOfQuantumIdentifier> { static constexpr Index value=33; };
179template <> struct WorkspaceGroupIndex<ArrayOfRadiationVector> { static constexpr Index value=34; };
180template <> struct WorkspaceGroupIndex<ArrayOfRetrievalQuantity> { static constexpr Index value=35; };
181template <> struct WorkspaceGroupIndex<ArrayOfScatteringMetaData> { static constexpr Index value=36; };
182template <> struct WorkspaceGroupIndex<ArrayOfSingleScatteringData> { static constexpr Index value=37; };
183template <> struct WorkspaceGroupIndex<ArrayOfSparse> { static constexpr Index value=38; };
184template <> struct WorkspaceGroupIndex<ArrayOfSpeciesTag> { static constexpr Index value=39; };
185template <> struct WorkspaceGroupIndex<ArrayOfStokesVector> { static constexpr Index value=40; };
186template <> struct WorkspaceGroupIndex<ArrayOfString> { static constexpr Index value=41; };
187template <> struct WorkspaceGroupIndex<ArrayOfSun> { static constexpr Index value=42; };
188template <> struct WorkspaceGroupIndex<ArrayOfTelsemAtlas> { static constexpr Index value=43; };
189template <> struct WorkspaceGroupIndex<ArrayOfTensor3> { static constexpr Index value=44; };
190template <> struct WorkspaceGroupIndex<ArrayOfTensor4> { static constexpr Index value=45; };
191template <> struct WorkspaceGroupIndex<ArrayOfTensor5> { static constexpr Index value=46; };
192template <> struct WorkspaceGroupIndex<ArrayOfTensor6> { static constexpr Index value=47; };
193template <> struct WorkspaceGroupIndex<ArrayOfTensor7> { static constexpr Index value=48; };
194template <> struct WorkspaceGroupIndex<ArrayOfTime> { static constexpr Index value=49; };
195template <> struct WorkspaceGroupIndex<ArrayOfTransmissionMatrix> { static constexpr Index value=50; };
196template <> struct WorkspaceGroupIndex<ArrayOfVector> { static constexpr Index value=51; };
197template <> struct WorkspaceGroupIndex<ArrayOfXsecRecord> { static constexpr Index value=52; };
198template <> struct WorkspaceGroupIndex<CIARecord> { static constexpr Index value=53; };
199template <> struct WorkspaceGroupIndex<CallbackFunction> { static constexpr Index value=54; };
200template <> struct WorkspaceGroupIndex<CovarianceMatrix> { static constexpr Index value=55; };
201template <> struct WorkspaceGroupIndex<EnergyLevelMap> { static constexpr Index value=56; };
202template <> struct WorkspaceGroupIndex<GasAbsLookup> { static constexpr Index value=57; };
203template <> struct WorkspaceGroupIndex<GridPos> { static constexpr Index value=58; };
204template <> struct WorkspaceGroupIndex<GriddedField1> { static constexpr Index value=59; };
205template <> struct WorkspaceGroupIndex<GriddedField2> { static constexpr Index value=60; };
206template <> struct WorkspaceGroupIndex<GriddedField3> { static constexpr Index value=61; };
207template <> struct WorkspaceGroupIndex<GriddedField4> { static constexpr Index value=62; };
208template <> struct WorkspaceGroupIndex<GriddedField5> { static constexpr Index value=63; };
209template <> struct WorkspaceGroupIndex<GriddedField6> { static constexpr Index value=64; };
210template <> struct WorkspaceGroupIndex<HitranRelaxationMatrixData> { static constexpr Index value=65; };
211template <> struct WorkspaceGroupIndex<Index> { static constexpr Index value=66; };
212template <> struct WorkspaceGroupIndex<JacobianTarget> { static constexpr Index value=67; };
213template <> struct WorkspaceGroupIndex<MCAntenna> { static constexpr Index value=68; };
214template <> struct WorkspaceGroupIndex<MapOfErrorCorrectedSuddenData> { static constexpr Index value=69; };
215template <> struct WorkspaceGroupIndex<Matrix> { static constexpr Index value=70; };
216template <> struct WorkspaceGroupIndex<Numeric> { static constexpr Index value=71; };
217template <> struct WorkspaceGroupIndex<Ppath> { static constexpr Index value=72; };
218template <> struct WorkspaceGroupIndex<PredefinedModelData> { static constexpr Index value=73; };
219template <> struct WorkspaceGroupIndex<PropagationMatrix> { static constexpr Index value=74; };
220template <> struct WorkspaceGroupIndex<QuantumIdentifier> { static constexpr Index value=75; };
221template <> struct WorkspaceGroupIndex<RadiationVector> { static constexpr Index value=76; };
222template <> struct WorkspaceGroupIndex<Rational> { static constexpr Index value=77; };
223template <> struct WorkspaceGroupIndex<ScatteringMetaData> { static constexpr Index value=78; };
224template <> struct WorkspaceGroupIndex<SingleScatteringData> { static constexpr Index value=79; };
225template <> struct WorkspaceGroupIndex<Sparse> { static constexpr Index value=80; };
226template <> struct WorkspaceGroupIndex<SpeciesIsotopologueRatios> { static constexpr Index value=81; };
227template <> struct WorkspaceGroupIndex<StokesVector> { static constexpr Index value=82; };
228template <> struct WorkspaceGroupIndex<String> { static constexpr Index value=83; };
229template <> struct WorkspaceGroupIndex<TelsemAtlas> { static constexpr Index value=84; };
230template <> struct WorkspaceGroupIndex<Tensor3> { static constexpr Index value=85; };
231template <> struct WorkspaceGroupIndex<Tensor4> { static constexpr Index value=86; };
232template <> struct WorkspaceGroupIndex<Tensor5> { static constexpr Index value=87; };
233template <> struct WorkspaceGroupIndex<Tensor6> { static constexpr Index value=88; };
234template <> struct WorkspaceGroupIndex<Tensor7> { static constexpr Index value=89; };
235template <> struct WorkspaceGroupIndex<TessemNN> { static constexpr Index value=90; };
236template <> struct WorkspaceGroupIndex<Time> { static constexpr Index value=91; };
237template <> struct WorkspaceGroupIndex<Timer> { static constexpr Index value=92; };
238template <> struct WorkspaceGroupIndex<TransmissionMatrix> { static constexpr Index value=93; };
239template <> struct WorkspaceGroupIndex<Vector> { static constexpr Index value=94; };
240template <> struct WorkspaceGroupIndex<Verbosity> { static constexpr Index value=95; };
241
242template <ArtsTypeBase T> inline constexpr Index WorkspaceGroupIndexValue = WorkspaceGroupIndex<T>::value;
243
244class TokVal {
245 void * ptr{nullptr};
246public:
249 [[nodiscard]] bool holdsAbsorptionLines() const;
250 operator AbsorptionLines() const;
251
252 TokVal(Agenda in);
254 [[nodiscard]] bool holdsAgenda() const;
255 operator Agenda() const;
256
257 TokVal(Any in);
258 TokVal& operator=(Any in);
259 [[nodiscard]] bool holdsAny() const;
260 operator Any() const;
261
264 [[nodiscard]] bool holdsArrayOfAbsorptionLines() const;
265 operator ArrayOfAbsorptionLines() const;
266
269 [[nodiscard]] bool holdsArrayOfAgenda() const;
270 operator ArrayOfAgenda() const;
271
274 [[nodiscard]] bool holdsArrayOfArrayOfAbsorptionLines() const;
275 operator ArrayOfArrayOfAbsorptionLines() const;
276
279 [[nodiscard]] bool holdsArrayOfArrayOfGriddedField1() const;
280 operator ArrayOfArrayOfGriddedField1() const;
281
284 [[nodiscard]] bool holdsArrayOfArrayOfGriddedField2() const;
285 operator ArrayOfArrayOfGriddedField2() const;
286
289 [[nodiscard]] bool holdsArrayOfArrayOfGriddedField3() const;
290 operator ArrayOfArrayOfGriddedField3() const;
291
294 [[nodiscard]] bool holdsArrayOfArrayOfIndex() const;
295 operator ArrayOfArrayOfIndex() const;
296
297 TokVal(ArrayOfArrayOfMatrix in);
298 TokVal& operator=(ArrayOfArrayOfMatrix in);
299 [[nodiscard]] bool holdsArrayOfArrayOfMatrix() const;
300 operator ArrayOfArrayOfMatrix() const;
301
302 TokVal(ArrayOfArrayOfPropagationMatrix in);
303 TokVal& operator=(ArrayOfArrayOfPropagationMatrix in);
304 [[nodiscard]] bool holdsArrayOfArrayOfPropagationMatrix() const;
305 operator ArrayOfArrayOfPropagationMatrix() const;
306
309 [[nodiscard]] bool holdsArrayOfArrayOfRadiationVector() const;
310 operator ArrayOfArrayOfRadiationVector() const;
311
314 [[nodiscard]] bool holdsArrayOfArrayOfScatteringMetaData() const;
315 operator ArrayOfArrayOfScatteringMetaData() const;
316
319 [[nodiscard]] bool holdsArrayOfArrayOfSingleScatteringData() const;
320 operator ArrayOfArrayOfSingleScatteringData() const;
321
324 [[nodiscard]] bool holdsArrayOfArrayOfSpeciesTag() const;
325 operator ArrayOfArrayOfSpeciesTag() const;
326
327 TokVal(ArrayOfArrayOfStokesVector in);
328 TokVal& operator=(ArrayOfArrayOfStokesVector in);
329 [[nodiscard]] bool holdsArrayOfArrayOfStokesVector() const;
330 operator ArrayOfArrayOfStokesVector() const;
331
334 [[nodiscard]] bool holdsArrayOfArrayOfString() const;
335 operator ArrayOfArrayOfString() const;
336
337 TokVal(ArrayOfArrayOfTensor3 in);
338 TokVal& operator=(ArrayOfArrayOfTensor3 in);
339 [[nodiscard]] bool holdsArrayOfArrayOfTensor3() const;
340 operator ArrayOfArrayOfTensor3() const;
341
342 TokVal(ArrayOfArrayOfTensor6 in);
343 TokVal& operator=(ArrayOfArrayOfTensor6 in);
344 [[nodiscard]] bool holdsArrayOfArrayOfTensor6() const;
345 operator ArrayOfArrayOfTensor6() const;
346
349 [[nodiscard]] bool holdsArrayOfArrayOfTime() const;
350 operator ArrayOfArrayOfTime() const;
351
354 [[nodiscard]] bool holdsArrayOfArrayOfTransmissionMatrix() const;
355 operator ArrayOfArrayOfTransmissionMatrix() const;
356
357 TokVal(ArrayOfArrayOfVector in);
358 TokVal& operator=(ArrayOfArrayOfVector in);
359 [[nodiscard]] bool holdsArrayOfArrayOfVector() const;
360 operator ArrayOfArrayOfVector() const;
361
364 [[nodiscard]] bool holdsArrayOfCIARecord() const;
365 operator ArrayOfCIARecord() const;
366
369 [[nodiscard]] bool holdsArrayOfGriddedField1() const;
370 operator ArrayOfGriddedField1() const;
371
374 [[nodiscard]] bool holdsArrayOfGriddedField2() const;
375 operator ArrayOfGriddedField2() const;
376
379 [[nodiscard]] bool holdsArrayOfGriddedField3() const;
380 operator ArrayOfGriddedField3() const;
381
384 [[nodiscard]] bool holdsArrayOfGriddedField4() const;
385 operator ArrayOfGriddedField4() const;
386
389 [[nodiscard]] bool holdsArrayOfIndex() const;
390 operator ArrayOfIndex() const;
391
394 [[nodiscard]] bool holdsArrayOfJacobianTarget() const;
395 operator ArrayOfJacobianTarget() const;
396
397 TokVal(ArrayOfMatrix in);
398 TokVal& operator=(ArrayOfMatrix in);
399 [[nodiscard]] bool holdsArrayOfMatrix() const;
400 operator ArrayOfMatrix() const;
401
404 [[nodiscard]] bool holdsArrayOfPpath() const;
405 operator ArrayOfPpath() const;
406
407 TokVal(ArrayOfPropagationMatrix in);
408 TokVal& operator=(ArrayOfPropagationMatrix in);
409 [[nodiscard]] bool holdsArrayOfPropagationMatrix() const;
410 operator ArrayOfPropagationMatrix() const;
411
414 [[nodiscard]] bool holdsArrayOfQuantumIdentifier() const;
415 operator ArrayOfQuantumIdentifier() const;
416
419 [[nodiscard]] bool holdsArrayOfRadiationVector() const;
420 operator ArrayOfRadiationVector() const;
421
424 [[nodiscard]] bool holdsArrayOfRetrievalQuantity() const;
425 operator ArrayOfRetrievalQuantity() const;
426
429 [[nodiscard]] bool holdsArrayOfScatteringMetaData() const;
430 operator ArrayOfScatteringMetaData() const;
431
434 [[nodiscard]] bool holdsArrayOfSingleScatteringData() const;
435 operator ArrayOfSingleScatteringData() const;
436
437 TokVal(ArrayOfSparse in);
438 TokVal& operator=(ArrayOfSparse in);
439 [[nodiscard]] bool holdsArrayOfSparse() const;
440 operator ArrayOfSparse() const;
441
444 [[nodiscard]] bool holdsArrayOfSpeciesTag() const;
445 operator ArrayOfSpeciesTag() const;
446
447 TokVal(ArrayOfStokesVector in);
448 TokVal& operator=(ArrayOfStokesVector in);
449 [[nodiscard]] bool holdsArrayOfStokesVector() const;
450 operator ArrayOfStokesVector() const;
451
454 [[nodiscard]] bool holdsArrayOfString() const;
455 operator ArrayOfString() const;
456
457 TokVal(ArrayOfSun in);
459 [[nodiscard]] bool holdsArrayOfSun() const;
460 operator ArrayOfSun() const;
461
464 [[nodiscard]] bool holdsArrayOfTelsemAtlas() const;
465 operator ArrayOfTelsemAtlas() const;
466
467 TokVal(ArrayOfTensor3 in);
468 TokVal& operator=(ArrayOfTensor3 in);
469 [[nodiscard]] bool holdsArrayOfTensor3() const;
470 operator ArrayOfTensor3() const;
471
472 TokVal(ArrayOfTensor4 in);
473 TokVal& operator=(ArrayOfTensor4 in);
474 [[nodiscard]] bool holdsArrayOfTensor4() const;
475 operator ArrayOfTensor4() const;
476
477 TokVal(ArrayOfTensor5 in);
478 TokVal& operator=(ArrayOfTensor5 in);
479 [[nodiscard]] bool holdsArrayOfTensor5() const;
480 operator ArrayOfTensor5() const;
481
482 TokVal(ArrayOfTensor6 in);
483 TokVal& operator=(ArrayOfTensor6 in);
484 [[nodiscard]] bool holdsArrayOfTensor6() const;
485 operator ArrayOfTensor6() const;
486
487 TokVal(ArrayOfTensor7 in);
488 TokVal& operator=(ArrayOfTensor7 in);
489 [[nodiscard]] bool holdsArrayOfTensor7() const;
490 operator ArrayOfTensor7() const;
491
494 [[nodiscard]] bool holdsArrayOfTime() const;
495 operator ArrayOfTime() const;
496
499 [[nodiscard]] bool holdsArrayOfTransmissionMatrix() const;
500 operator ArrayOfTransmissionMatrix() const;
501
502 TokVal(ArrayOfVector in);
503 TokVal& operator=(ArrayOfVector in);
504 [[nodiscard]] bool holdsArrayOfVector() const;
505 operator ArrayOfVector() const;
506
509 [[nodiscard]] bool holdsArrayOfXsecRecord() const;
510 operator ArrayOfXsecRecord() const;
511
512 TokVal(CIARecord in);
514 [[nodiscard]] bool holdsCIARecord() const;
515 operator CIARecord() const;
516
519 [[nodiscard]] bool holdsCallbackFunction() const;
520 operator CallbackFunction() const;
521
524 [[nodiscard]] bool holdsCovarianceMatrix() const;
525 operator CovarianceMatrix() const;
526
529 [[nodiscard]] bool holdsEnergyLevelMap() const;
530 operator EnergyLevelMap() const;
531
534 [[nodiscard]] bool holdsGasAbsLookup() const;
535 operator GasAbsLookup() const;
536
537 TokVal(GridPos in);
539 [[nodiscard]] bool holdsGridPos() const;
540 operator GridPos() const;
541
544 [[nodiscard]] bool holdsGriddedField1() const;
545 operator GriddedField1() const;
546
549 [[nodiscard]] bool holdsGriddedField2() const;
550 operator GriddedField2() const;
551
554 [[nodiscard]] bool holdsGriddedField3() const;
555 operator GriddedField3() const;
556
559 [[nodiscard]] bool holdsGriddedField4() const;
560 operator GriddedField4() const;
561
564 [[nodiscard]] bool holdsGriddedField5() const;
565 operator GriddedField5() const;
566
569 [[nodiscard]] bool holdsGriddedField6() const;
570 operator GriddedField6() const;
571
574 [[nodiscard]] bool holdsHitranRelaxationMatrixData() const;
575 operator HitranRelaxationMatrixData() const;
576
577 TokVal(Index in);
578 TokVal& operator=(Index in);
579 [[nodiscard]] bool holdsIndex() const;
580 operator Index() const;
581
584 [[nodiscard]] bool holdsJacobianTarget() const;
585 operator JacobianTarget() const;
586
587 TokVal(MCAntenna in);
589 [[nodiscard]] bool holdsMCAntenna() const;
590 operator MCAntenna() const;
591
594 [[nodiscard]] bool holdsMapOfErrorCorrectedSuddenData() const;
595 operator MapOfErrorCorrectedSuddenData() const;
596
597 TokVal(Matrix in);
598 TokVal& operator=(Matrix in);
599 [[nodiscard]] bool holdsMatrix() const;
600 operator Matrix() const;
601
602 TokVal(Numeric in);
603 TokVal& operator=(Numeric in);
604 [[nodiscard]] bool holdsNumeric() const;
605 operator Numeric() const;
606
607 TokVal(Ppath in);
609 [[nodiscard]] bool holdsPpath() const;
610 operator Ppath() const;
611
612 TokVal(PredefinedModelData in);
613 TokVal& operator=(PredefinedModelData in);
614 [[nodiscard]] bool holdsPredefinedModelData() const;
615 operator PredefinedModelData() const;
616
617 TokVal(PropagationMatrix in);
618 TokVal& operator=(PropagationMatrix in);
619 [[nodiscard]] bool holdsPropagationMatrix() const;
620 operator PropagationMatrix() const;
621
624 [[nodiscard]] bool holdsQuantumIdentifier() const;
625 operator QuantumIdentifier() const;
626
629 [[nodiscard]] bool holdsRadiationVector() const;
630 operator RadiationVector() const;
631
632 TokVal(Rational in);
633 TokVal& operator=(Rational in);
634 [[nodiscard]] bool holdsRational() const;
635 operator Rational() const;
636
639 [[nodiscard]] bool holdsScatteringMetaData() const;
640 operator ScatteringMetaData() const;
641
644 [[nodiscard]] bool holdsSingleScatteringData() const;
645 operator SingleScatteringData() const;
646
647 TokVal(Sparse in);
648 TokVal& operator=(Sparse in);
649 [[nodiscard]] bool holdsSparse() const;
650 operator Sparse() const;
651
654 [[nodiscard]] bool holdsSpeciesIsotopologueRatios() const;
655 operator SpeciesIsotopologueRatios() const;
656
657 TokVal(StokesVector in);
658 TokVal& operator=(StokesVector in);
659 [[nodiscard]] bool holdsStokesVector() const;
660 operator StokesVector() const;
661
662 TokVal(String in);
664 [[nodiscard]] bool holdsString() const;
665 operator String() const;
666
669 [[nodiscard]] bool holdsTelsemAtlas() const;
670 operator TelsemAtlas() const;
671
672 TokVal(Tensor3 in);
673 TokVal& operator=(Tensor3 in);
674 [[nodiscard]] bool holdsTensor3() const;
675 operator Tensor3() const;
676
677 TokVal(Tensor4 in);
678 TokVal& operator=(Tensor4 in);
679 [[nodiscard]] bool holdsTensor4() const;
680 operator Tensor4() const;
681
682 TokVal(Tensor5 in);
683 TokVal& operator=(Tensor5 in);
684 [[nodiscard]] bool holdsTensor5() const;
685 operator Tensor5() const;
686
687 TokVal(Tensor6 in);
688 TokVal& operator=(Tensor6 in);
689 [[nodiscard]] bool holdsTensor6() const;
690 operator Tensor6() const;
691
692 TokVal(Tensor7 in);
693 TokVal& operator=(Tensor7 in);
694 [[nodiscard]] bool holdsTensor7() const;
695 operator Tensor7() const;
696
697 TokVal(TessemNN in);
699 [[nodiscard]] bool holdsTessemNN() const;
700 operator TessemNN() const;
701
702 TokVal(Time in);
703 TokVal& operator=(Time in);
704 [[nodiscard]] bool holdsTime() const;
705 operator Time() const;
706
707 TokVal(Timer in);
709 [[nodiscard]] bool holdsTimer() const;
710 operator Timer() const;
711
714 [[nodiscard]] bool holdsTransmissionMatrix() const;
715 operator TransmissionMatrix() const;
716
717 TokVal(Vector in);
718 TokVal& operator=(Vector in);
719 [[nodiscard]] bool holdsVector() const;
720 operator Vector() const;
721
722 TokVal(Verbosity in);
724 [[nodiscard]] bool holdsVerbosity() const;
725 operator Verbosity() const;
726
727 TokVal(const char * const c);
728
729 TokVal();
730 TokVal(const TokVal& v);
731 TokVal& operator=(const TokVal& v);
732 [[nodiscard]] std::string_view type() const;
733 TokVal& operator=(TokVal&& t) noexcept {using std::swap; swap(ptr, t.ptr); return*this;}
734 TokVal(TokVal&& t) noexcept : ptr(nullptr) {using std::swap; swap(ptr, t.ptr);}
735
736 ~TokVal() noexcept;
737
738 [[nodiscard]] std::shared_ptr<void> copy_value() const;
739
741 [[nodiscard]] void * data() const {return ptr;}
742};
743
744#endif
Contains the absorption namespace.
Array< ArrayOfAbsorptionLines > ArrayOfArrayOfAbsorptionLines
Array< AbsorptionLines > ArrayOfAbsorptionLines
Absorption::Lines AbsorptionLines
Array< Index > ArrayOfIndex
An array of Index.
Definition: array.h:119
Array< ArrayOfIndex > ArrayOfArrayOfIndex
Definition: array.h:121
Stuff related to time in ARTS.
Array< Time > ArrayOfTime
List of times.
Definition: artstime.h:122
Array< ArrayOfTime > ArrayOfArrayOfTime
List of times.
Definition: artstime.h:125
Header file for work with HITRAN collision induced absorption (CIA).
Array< CIARecord > ArrayOfCIARecord
Definition: cia.h:28
The Agenda class.
Definition: agenda_class.h:52
A placeholder for any type.
Definition: supergeneric.h:20
This can be used to make arrays out of anything.
Definition: array.h:31
CIA data for a single pair of molecules.
Definition: cia.h:51
An absorption lookup table.
A telsem atlas.
Definition: telsem.h:42
Definition: tokval.h:244
bool holdsArrayOfArrayOfTensor6() const
Definition: tokval.cc:220
TokVal()
Definition: tokval.cc:784
bool holdsStokesVector() const
Definition: tokval.cc:283
bool holdsCIARecord() const
Definition: tokval.cc:254
bool holdsArrayOfRetrievalQuantity() const
Definition: tokval.cc:236
bool holdsArrayOfArrayOfPropagationMatrix() const
Definition: tokval.cc:212
bool holdsAny() const
Definition: tokval.cc:203
bool holdsSpeciesIsotopologueRatios() const
Definition: tokval.cc:282
bool holdsGridPos() const
Definition: tokval.cc:259
bool holdsArrayOfArrayOfGriddedField1() const
Definition: tokval.cc:207
bool holdsArrayOfRadiationVector() const
Definition: tokval.cc:235
bool holdsArrayOfTensor4() const
Definition: tokval.cc:246
bool holdsTensor3() const
Definition: tokval.cc:286
bool holdsTessemNN() const
Definition: tokval.cc:291
bool holdsGriddedField3() const
Definition: tokval.cc:262
bool holdsAgenda() const
Definition: tokval.cc:202
bool holdsArrayOfSingleScatteringData() const
Definition: tokval.cc:238
bool holdsArrayOfArrayOfScatteringMetaData() const
Definition: tokval.cc:214
bool holdsArrayOfIndex() const
Definition: tokval.cc:229
bool holdsTimer() const
Definition: tokval.cc:293
bool holdsArrayOfSun() const
Definition: tokval.cc:243
bool holdsArrayOfGriddedField4() const
Definition: tokval.cc:228
~TokVal() noexcept
Definition: tokval.cc:794
bool holdsVector() const
Definition: tokval.cc:295
bool holdsRational() const
Definition: tokval.cc:278
bool holdsEnergyLevelMap() const
Definition: tokval.cc:257
bool holdsArrayOfArrayOfTensor3() const
Definition: tokval.cc:219
bool holdsGriddedField1() const
Definition: tokval.cc:260
bool holdsPpath() const
Definition: tokval.cc:273
bool holdsMCAntenna() const
Definition: tokval.cc:269
bool holdsTensor5() const
Definition: tokval.cc:288
bool holdsArrayOfArrayOfMatrix() const
Definition: tokval.cc:211
bool holdsArrayOfSpeciesTag() const
Definition: tokval.cc:240
bool holdsJacobianTarget() const
Definition: tokval.cc:268
bool holdsArrayOfAgenda() const
Definition: tokval.cc:205
bool holdsArrayOfTelsemAtlas() const
Definition: tokval.cc:244
TokVal(TokVal &&t) noexcept
Definition: tokval.h:734
bool holdsArrayOfTensor7() const
Definition: tokval.cc:249
bool holdsArrayOfArrayOfRadiationVector() const
Definition: tokval.cc:213
bool holdsCovarianceMatrix() const
Definition: tokval.cc:256
bool holdsIndex() const
Definition: tokval.cc:267
std::string_view type() const
Definition: tokval.cc:682
bool holdsArrayOfGriddedField3() const
Definition: tokval.cc:227
bool holdsArrayOfGriddedField2() const
Definition: tokval.cc:226
bool holdsGriddedField5() const
Definition: tokval.cc:264
bool holdsTensor7() const
Definition: tokval.cc:290
bool holdsArrayOfTime() const
Definition: tokval.cc:250
bool holdsArrayOfTransmissionMatrix() const
Definition: tokval.cc:251
bool holdsPropagationMatrix() const
Definition: tokval.cc:275
bool holdsArrayOfArrayOfTransmissionMatrix() const
Definition: tokval.cc:222
bool holdsArrayOfPpath() const
Definition: tokval.cc:232
bool holdsGriddedField6() const
Definition: tokval.cc:265
bool holdsString() const
Definition: tokval.cc:284
bool holdsArrayOfTensor6() const
Definition: tokval.cc:248
bool holdsArrayOfArrayOfIndex() const
Definition: tokval.cc:210
bool holdsMapOfErrorCorrectedSuddenData() const
Definition: tokval.cc:270
bool holdsGriddedField4() const
Definition: tokval.cc:263
bool holdsArrayOfAbsorptionLines() const
Definition: tokval.cc:204
bool holdsSparse() const
Definition: tokval.cc:281
bool holdsArrayOfArrayOfVector() const
Definition: tokval.cc:223
bool holdsHitranRelaxationMatrixData() const
Definition: tokval.cc:266
bool holdsVerbosity() const
Definition: tokval.cc:296
bool holdsArrayOfArrayOfString() const
Definition: tokval.cc:218
bool holdsArrayOfTensor5() const
Definition: tokval.cc:247
bool holdsArrayOfArrayOfGriddedField2() const
Definition: tokval.cc:208
bool holdsArrayOfArrayOfAbsorptionLines() const
Definition: tokval.cc:206
bool holdsArrayOfGriddedField1() const
Definition: tokval.cc:225
bool holdsScatteringMetaData() const
Definition: tokval.cc:279
bool holdsArrayOfArrayOfSingleScatteringData() const
Definition: tokval.cc:215
bool holdsTime() const
Definition: tokval.cc:292
bool holdsArrayOfScatteringMetaData() const
Definition: tokval.cc:237
bool holdsPredefinedModelData() const
Definition: tokval.cc:274
bool holdsArrayOfCIARecord() const
Definition: tokval.cc:224
bool holdsArrayOfArrayOfGriddedField3() const
Definition: tokval.cc:209
bool holdsArrayOfMatrix() const
Definition: tokval.cc:231
bool holdsArrayOfTensor3() const
Definition: tokval.cc:245
bool holdsTensor6() const
Definition: tokval.cc:289
bool holdsArrayOfXsecRecord() const
Definition: tokval.cc:253
bool holdsQuantumIdentifier() const
Definition: tokval.cc:276
bool holdsGriddedField2() const
Definition: tokval.cc:261
bool holdsSingleScatteringData() const
Definition: tokval.cc:280
bool holdsTensor4() const
Definition: tokval.cc:287
bool holdsArrayOfArrayOfSpeciesTag() const
Definition: tokval.cc:216
bool holdsAbsorptionLines() const
Definition: tokval.cc:201
bool holdsTransmissionMatrix() const
Definition: tokval.cc:294
bool holdsGasAbsLookup() const
Definition: tokval.cc:258
bool holdsArrayOfArrayOfTime() const
Definition: tokval.cc:221
bool holdsCallbackFunction() const
Definition: tokval.cc:255
void * ptr
Definition: tokval.h:245
void * data() const
Only for cases when you also have to include tokval_variant.h manually (or via, e....
Definition: tokval.h:741
bool holdsArrayOfQuantumIdentifier() const
Definition: tokval.cc:234
bool holdsArrayOfStokesVector() const
Definition: tokval.cc:241
bool holdsArrayOfPropagationMatrix() const
Definition: tokval.cc:233
bool holdsNumeric() const
Definition: tokval.cc:272
bool holdsArrayOfVector() const
Definition: tokval.cc:252
bool holdsArrayOfArrayOfStokesVector() const
Definition: tokval.cc:217
bool holdsTelsemAtlas() const
Definition: tokval.cc:285
TokVal & operator=(AbsorptionLines in)
Definition: tokval.cc:104
bool holdsMatrix() const
Definition: tokval.cc:271
bool holdsArrayOfString() const
Definition: tokval.cc:242
TokVal & operator=(TokVal &&t) noexcept
Definition: tokval.h:733
bool holdsArrayOfSparse() const
Definition: tokval.cc:239
bool holdsArrayOfJacobianTarget() const
Definition: tokval.cc:230
bool holdsRadiationVector() const
Definition: tokval.cc:277
std::shared_ptr< void > copy_value() const
Definition: tokval.cc:796
Header files of CovarianceMatrix class.
Class to map energy levels.
Declarations for the gas absorption lookup table.
Array< Array< GriddedField3 > > ArrayOfArrayOfGriddedField3
Array< GriddedField3 > ArrayOfGriddedField3
Array< GriddedField4 > ArrayOfGriddedField4
Array< Array< GriddedField2 > > ArrayOfArrayOfGriddedField2
Array< Array< GriddedField1 > > ArrayOfArrayOfGriddedField1
Array< GriddedField2 > ArrayOfGriddedField2
Array< GriddedField1 > ArrayOfGriddedField1
Species::IsotopologueRatios SpeciesIsotopologueRatios
Jacobian::Target JacobianTarget
Definition: jacobian.h:305
Array< Jacobian::Target > ArrayOfJacobianTarget
Definition: jacobian.h:306
Array< RetrievalQuantity > ArrayOfRetrievalQuantity
Definition: jacobian.h:529
Absorption::LineMixing::MapOfErrorCorrectedSuddenData MapOfErrorCorrectedSuddenData
Definition: linemixing.h:296
Namespace and functions to deal with HITRAN linemixing.
Workspace functions for the solution of cloud-box radiative transfer by Monte Carlo methods....
my_basic_string< char > String
The String type for ARTS.
Definition: mystring.h:199
Array< Array< String > > ArrayOfArrayOfString
An array of Strings.
Definition: mystring.h:205
Array< String > ArrayOfString
An array of Strings.
Definition: mystring.h:202
Definition: mystring.h:246
Scattering database structure and functions.
Array< ScatteringMetaData > ArrayOfScatteringMetaData
Array< SingleScatteringData > ArrayOfSingleScatteringData
Definition: optproperties.h:76
Array< Array< SingleScatteringData > > ArrayOfArrayOfSingleScatteringData
Definition: optproperties.h:77
Array< Array< ScatteringMetaData > > ArrayOfArrayOfScatteringMetaData
Array< Ppath > ArrayOfPpath
An array of propagation paths.
Definition: ppath_struct.h:61
Array< QuantumIdentifier > ArrayOfQuantumIdentifier
Quantum::Number::GlobalState QuantumIdentifier
Array< ArrayOfSpeciesTag > ArrayOfArrayOfSpeciesTag
Definition: species_tags.h:165
Structure to store a grid position.
Definition: interpolation.h:56
Holds all information required for individual partial derivatives.
Definition: jacobian.h:93
An Antenna object used by MCGeneral.
Definition: mc_antenna.h:33
The structure to describe a propagation path and releated quantities.
Definition: ppath_struct.h:17
A logical struct for global quantum numbers with species identifiers.
Radiation Vector for Stokes dimension 1-4.
Class to handle time in ARTS.
Definition: artstime.h:25
Class to keep track of Transmission Matrices for Stokes Dim 1-4.
static constexpr Index value
Definition: tokval.h:144
Declaration of functions in star.cc.
Array< Sun > ArrayOfSun
An array of sun.
Definition: sun.h:58
Declarations for supergeneric methods.
This file contains the definition of the TELSEM atlas format.
Array< TelsemAtlas > ArrayOfTelsemAtlas
Definition: telsem.h:379
This file contains functions that are adapted from TESSEM code which is used to calculate surface emi...
Array< Agenda > ArrayOfAgenda
Definition: tokval.h:31
constexpr Index WorkspaceGroupIndexValue
Definition: tokval.h:242
Stuff related to the transmission matrix.
Array< ArrayOfTransmissionMatrix > ArrayOfArrayOfTransmissionMatrix
#define v
Array< ArrayOfRadiationVector > ArrayOfArrayOfRadiationVector
Array< RadiationVector > ArrayOfRadiationVector
Array< TransmissionMatrix > ArrayOfTransmissionMatrix
#define c
Methods and classes for HITRAN absorption cross section data.
Array< XsecRecord > ArrayOfXsecRecord
Definition: xsec_fit.h:138