ARTS 2.5.11 (git: 6827797f)
species_tags.cc File Reference
#include "species_tags.h"
#include <algorithm>
#include <cfloat>
#include <fast_float/fast_float.h>
#include <iomanip>
#include <iterator>
#include <string_view>
#include <system_error>
#include "debug.h"
#include "isotopologues.h"
#include "nonstd.h"
#include "partfun.h"
#include "species.h"

Go to the source code of this file.

Namespaces

namespace  Species
 
namespace  Species::detail
 

Functions

constexpr void Species::detail::trim (std::string_view &text)
 
constexpr std::string_view Species::detail::next (std::string_view &text)
 
constexpr std::string_view Species::detail::next_tag (std::string_view &text)
 
constexpr Species Species::detail::spec (std::string_view part, std::string_view orig)
 
constexpr Index Species::detail::isot (Species species, std::string_view isot, std::string_view orig)
 
constexpr Numeric Species::detail::freq (std::string_view part, std::string_view orig)
 
constexpr void Species::detail::check (std::string_view text, std::string_view orig)
 
SpeciesTag Species::parse_tag (std::string_view text)
 
Array< Tag > Species::parse_tags (std::string_view text)
 Parse a list of species tags into an Array<Tag>
 
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, Index > find_first_species_tag (const ArrayOfArrayOfSpeciesTag &specs, const SpeciesTag &tag) noexcept
 
std::pair< Index, Index > find_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 311 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 297 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 282 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 287 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 273 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 360 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 417 of file species_tags.cc.