ARTS 2.5.9 (git: 825fa5f2)
species_tags.cc File Reference
#include "species_tags.h"
#include <cfloat>
#include <iterator>
#include <string_view>
#include "debug.h"
#include "partfun.h"

Go to the source code of this file.

Namespaces

namespace  Species
 

Functions

Index find_next_species (const ArrayOfArrayOfSpeciesTag &specs, Species::Species spec, Index i) noexcept
 
Index find_first_species (const ArrayOfArrayOfSpeciesTag &specs, Species::Species spec) noexcept
 
std::pair< Index, Indexfind_first_species_tag (const ArrayOfArrayOfSpeciesTag &specs, const SpeciesTag &tag) noexcept
 
std::pair< Index, Indexfind_first_isotologue (const ArrayOfArrayOfSpeciesTag &specs, const SpeciesIsotopeRecord &isot) noexcept
 
void check_abs_species (const ArrayOfArrayOfSpeciesTag &abs_species)
 
std::set< Species::Species > lbl_species (const ArrayOfArrayOfSpeciesTag &abs_species) noexcept
 
std::ostream & operator<< (std::ostream &os, SpeciesTagTypeStatus val)
 

Function Documentation

◆ check_abs_species()

void check_abs_species ( const ArrayOfArrayOfSpeciesTag abs_species)

Checks on the correctness of the tags will be performed, e.g. free_electrons and particles species are only allowed once in abs_species.

Parameters
tagsArray of Array of SpeciesTag.
Author
Oliver Lemke
Date
2013-04-23

Definition at line 430 of file species_tags.cc.

References ARTS_USER_ERROR_IF, and Array< base >::nelem().

Referenced by propmat_clearskyAddCIA(), propmat_clearskyAddLines(), and zeeman_on_the_fly().

◆ find_first_isotologue()

std::pair< Index, Index > find_first_isotologue ( const ArrayOfArrayOfSpeciesTag abs_species,
const SpeciesIsotopeRecord isot 
)
noexcept

Find the first species tag of this type

Parameters
[in]abs_speciesAs WSV
[in]isotAn isotopologue record
Returns
[i, j] so that abs_species[i][j] is the same isotopologue record as isot, or [-1, -1] if there's no such thing

Definition at line 416 of file species_tags.cc.

◆ find_first_species()

Index find_first_species ( const ArrayOfArrayOfSpeciesTag abs_species,
Species::Species  spec 
)
noexcept

Find the first species of this type

Parameters
[in]abs_speciesAs WSV
[in]specA Species
Returns
An index larger or equal to 0 pointing to the first species, or -1 if there's no such species

Definition at line 401 of file species_tags.cc.

References find_next_species().

Referenced by abs_xsec_per_speciesAddCIA(), GasAbsLookup::Extract(), propmat_clearskyAddCIA(), refr_index_airMicrowavesEarth(), refr_index_airMicrowavesGeneral(), and set_vmr_from_first_species().

◆ find_first_species_tag()

std::pair< Index, Index > find_first_species_tag ( const ArrayOfArrayOfSpeciesTag abs_species,
const SpeciesTag tag 
)
noexcept

Find the first species tag of this type

Parameters
[in]abs_speciesAs WSV
[in]tagA Species tag
Returns
[i, j] so that abs_species[i][j] is tag, or [-1, -1] if there's no such thing

Definition at line 406 of file species_tags.cc.

◆ find_next_species()

Index find_next_species ( const ArrayOfArrayOfSpeciesTag abs_species,
Species::Species  spec,
Index  i 
)
noexcept

Find the next species of this type inclusively after the start index

Parameters
[in]abs_speciesAs WSV
[in]specA Species
[in]iThe starting index in the outermost
Returns
An index larger or equal to i pointing to the next species, or -1 if there's no next species

Definition at line 392 of file species_tags.cc.

Referenced by find_first_species().

◆ lbl_species()

std::set< Species::Species > lbl_species ( const ArrayOfArrayOfSpeciesTag abs_species)
noexcept

Find species that requires line-by-line calculations

Parameters
abs_speciesAs WSV
Returns
The set of unique species that requires line-by-line calculations

Definition at line 479 of file species_tags.cc.

Referenced by abs_lines_per_speciesReadSpeciesSplitCatalog(), and ReadSplitARTSCAT().

◆ operator<<()

std::ostream & operator<< ( std::ostream &  os,
SpeciesTagTypeStatus  val 
)

Definition at line 539 of file species_tags.cc.