58 const Index& mytrantag,
59 const Index& hitrantag,
81 #endif // ifndef NDEBUG 117 const Index& qcoefftype) {
148 :
mname(), mdegfr(-1), misotopologue() {
155 :
mname(name), mdegfr(degfr), misotopologue(isotopologue) {
162 for (
Index i = 0;
i < misotopologue.nelem() - 1; ++
i) {
163 assert(std::isnan(misotopologue[
i].
Abundance()) ||
164 std::isnan(misotopologue[
i + 1].
Abundance()) ||
170 for (
Index i = 0;
i < misotopologue.nelem() - 1; ++
i) {
172 (0 < misotopologue[
i + 1].MytranTag())) {
183 for (
Index i = 0;
i < misotopologue.nelem() - 1; ++
i) {
185 (0 < misotopologue[
i + 1].HitranTag())) {
194 #endif // #ifndef NDEBUG 200 return misotopologue;
236 void InitFromSpeciesData();
243 return mparams[species].nelem();
248 const Index isotopologue)
const;
265 void setParam(
const Index species,
266 const Index isotopologue,
267 const AuxType auxtype,
271 void setParam(
const String& artstag,
277 const Index isotopologue)
const {
278 return mparam_type[species][isotopologue];
287 bool ReadFromStream(
String& artsid,
297 for (
auto y: {AT_NONE, AT_ISOTOPOLOGUE_RATIO, AT_ISOTOPOLOGUE_QUANTUM, AT_PARTITIONFUNCTION_TFIELD, AT_PARTITIONFUNCTION_COEFF, AT_PARTITIONFUNCTION_COEFF_VIBROT, AT_FINAL_ENTRY }) {
298 if (
Index(y) == type) {
299 mparam_type[species][isotopologue] = y;
308 if(species >= 0 and isotopologue >= 0 and
309 mparams.nelem() > species and mparams[species].nelem() > isotopologue and
310 mparam_type.nelem() > species and mparam_type[species].nelem() > isotopologue)
342 : mspeciesindex(speciesindex), misotopologueindex(isotopologueindex) {}
376 const String& species_name,
430 #endif // absorption_h Index GetCoeffType() const
Return the partition function coefficient types.
INDEX Index
The type to use for all integer numbers and indices.
const Index & MytranTag() const
MYTRAN2 tag numbers for all isotopologues.
void checkIsotopologueRatios(const ArrayOfArrayOfSpeciesTag &abs_species, const SpeciesAuxData &isoratios)
Check that isotopologue ratios for the given species are correctly defined.
ostream & operator<<(ostream &os, const SpeciesRecord &sr)
Output operator for SpeciesRecord.
bool isContinuum() const
Check if isotopologue is actually a continuum.
ArrayOfArrayOfAuxData mparams
Index nelem() const
Number of elements.
void Isotopologue(Index iso)
Set the Isotopologue.
const Numeric & Mass() const
Mass of the isotopologue.
String species_name_from_species_index(const Index spec_ind)
Return species name for given species index.
Declarations having to do with the four output streams.
Routines for setting up the jacobian.
void set_vmr_from_first_species(Vector &vmr, const String &species_name, const ArrayOfArrayOfSpeciesTag &abs_species, const Matrix &abs_vmrs)
set_abs_from_first_species.
Index mdegfr
Degrees of freedom.
Array< IsotopologueRecord > & Isotopologue()
const Vector & GetCoeffGrid() const
Return the partition function coefficients.
Array< GriddedField1 > AuxData
const Index & Isotopologueindex() const
Array< Array< AuxType > > ArrayOfArrayOfAuxType
IsotopologueRecord & operator=(const IsotopologueRecord &)=default
const AuxType & getParamType(const QuantumIdentifier &qid) const
Return a constant reference to the parameter types.
Contains the absorption namespace.
ArrayOfArrayOfAuxType mparam_type
const Index & HitranTag() const
HITRAN-96 tag numbers for all isotopologues.
This file contains the definition of Array.
String mname
Species name.
const Array< IsotopologueRecord > & Isotopologue() const
ArrayOfGriddedField1 & Data(const Index species, const Index isotopologue)
Returns value for one isotopologue.
void fillSpeciesAuxDataWithPartitionFunctionsFromSpeciesData(SpeciesAuxData &sad)
Fill SpeciesAuxData with default partition functions from species data.
const AuxType & getParamType(const Index species, const Index isotopologue) const
Return a constant reference to the parameter types.
const ArrayOfIndex & JplTags() const
JPL tag numbers for all isotopologues.
SpeciesAuxData()
Default constructor.
String FullName(Index k) const
Return a copy of the full name of the k:th isotopologue.
void Species(Index sp)
Set the Species.
Contains the lookup data for one species.
SpeciesRecord(const char name[], const Index degfr, const Array< IsotopologueRecord > &isotopologue)
The constructor used in define_species_data.
A tag group can consist of the sum of several of these.
const SpeciesRecord & SpeciesDataOfBand(const AbsorptionLines &band)
Returns the species data.
Class to identify and match lines by their quantum numbers.
SpecIsoMap(const Index &speciesindex, const Index &isotopologueindex)
NUMERIC Numeric
The type to use for all floating point numbers.
IsotopologueRecord()=default
Default constructor.
const String & Name() const
Index nspecies() const
Returns number of species.
Index species_index_from_species_name(String name)
Return species index for given species name.
Implementation of Matrix, Vector, and such stuff.
Class to map energy levels.
Index nisotopologues(const Index species) const
Returns number of isotopologues for a certain species.
const ArrayOfGriddedField1 & getParam(const QuantumIdentifier &qid) const
Return a constant reference to the parameters.
Contains the lookup data for one isotopologue.
void SetPartitionFctCoeff(const ArrayOfNumeric &qcoeff, const ArrayOfNumeric &temp_range, const Index &qcoefftype)
void checkPartitionFunctions(const ArrayOfArrayOfSpeciesTag &abs_species, const SpeciesAuxData &partfun)
Check that partition functions for the given species are correctly defined.
IsotopologueRecord(const String &name, const Numeric &abundance, const Numeric &mass, const Index &mytrantag, const Index &hitrantag, const ArrayOfIndex &jpltags)
Constructor that sets the values.
Numeric wavenumber_to_joule(Numeric e)
A little helper function to convert energy from units of wavenumber (cm^-1) to Joule (J)...
Index setParamType(const Index species, const Index isotopologue, Index type)
Sets type for one isotopologue if type is valid (returns 0 if valid)
SpeciesRecord()
Default constructor.
void xsec_species(Matrix &xsec, Matrix &source, Matrix &phase, ArrayOfMatrix &dxsec_dx, ArrayOfMatrix &dsource_dx, ArrayOfMatrix &dphase_dx, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfIndex &jacobian_propmat_positions, const Vector &f_grid, const Vector &abs_p, const Vector &abs_t, const EnergyLevelMap &abs_nlte, const Matrix &abs_vmrs, const ArrayOfArrayOfSpeciesTag &abs_species, const AbsorptionLines &band, const Numeric &isot_ratio, const SpeciesAuxData::AuxType &partfun_type, const ArrayOfGriddedField1 &partfun_data)
Cross-section algorithm.
Array< IsotopologueRecord > misotopologue
Isotopologue data.
const Vector & GetCoeff() const
Return the partition function coefficients.
const Index & Speciesindex() const
Implementation of gridded fields.
void fillSpeciesAuxDataWithIsotopologueRatiosFromSpeciesData(SpeciesAuxData &sad)
Fill SpeciesAuxData with default isotopologue ratios from species data.
bool validIndex(Index species, Index isotopologue) const
Returns true if species and isotopologue are valid.
const Numeric & Abundance() const
Normal abundance ( = isotopologue ratio).
Auxiliary data for isotopologues.
Array< Array< AuxData > > ArrayOfArrayOfAuxData
const String & Name() const
Isotopologue name.
This file contains the definition of String, the ARTS string class.