Go to the documentation of this file.
27 #ifndef energylevelmap_h
28 #define energylevelmap_h
73 if (
mtype == EnergyLevelMapType::Tensor3_t) {
93 void ThrowIfNotOK()
const {
if (not
OK())
throw std::runtime_error(
"Class in bad state");}
152 return std::any_of(keys.cbegin(), keys.cend(), [
x](
auto y){return x == y;});
161 return EnergyLevelMapType::Tensor3_t;
162 else if (s ==
"Vector")
164 else if (s ==
"Numeric")
166 else if (s ==
"None")
194 #endif // energylevelmap_h
Index atmosphere_dim(Workspace &ws) noexcept
std::ostream & operator<<(std::ostream &os, const EnergyLevelMap &elm)
Output2 get_ratio_params(const AbsorptionLines &band, const Index &line_index) const
Get the output required for Population::NLTE.
Numeric lat(Workspace &ws) noexcept
Output4 get_vibtemp_params(const AbsorptionLines &band, const Index &line_index, const Numeric T) const
Get the output required for Population::NLTE-VibrationalTemperatures.
const Vector & Energies() const noexcept
Energy level type.
const Tensor4 & Data() const noexcept
Energy level type.
static EnergyLevelMapType string2Type(const String &s) noexcept
ArrayOfQuantumIdentifier & Levels() noexcept
Energy level type.
Contains the absorption namespace.
Vector y(Workspace &ws) noexcept
G0 G2 FVC Y DV Numeric Numeric Numeric Zeeman LowerQuantumNumbers void * data
constexpr std::array< T, 1+sizeof...(Ts)> stdarrayify(const T &first, const Ts &... the_rest)
Make a std::array of a list of variables (must be 1-long at least)
Numeric lon(Workspace &ws) noexcept
EnergyLevelMap(EnergyLevelMapType new_type, Index pages, Index rows, Index cols, const EnergyLevelMap &old)
Index nelem(const Lines &l)
Number of lines.
const ArrayOfQuantumIdentifier & Levels() const noexcept
Energy level type.
void ThrowIfNotOK() const
EnergyLevelMapType Type() const noexcept
Energy level type.
Tensor4 & Data() noexcept
Energy level type.
Index nelem() const
Returns the number of elements.
Index ncols() const
Returns the number of columns.
NUMERIC Numeric
The type to use for all floating point numbers.
ArrayOfQuantumIdentifier mlevels
EnergyLevelMap operator[](Index ip) const
Index npages() const
Returns the number of pages.
Index nbooks() const
Returns the number of books.
Index nrows() const
Returns the number of rows.
invlib::Vector< ArtsVector > Vector
invlib wrapper type for ARTS vectors.
EnergyLevelMap InterpToGridPos(Index atmosphere_dim, const ArrayOfGridPos &p, const ArrayOfGridPos &lat, const ArrayOfGridPos &lon) const
String energylevelmaptype2string(EnergyLevelMapType type)
EnergyLevelMapType string2energylevelmaptype(const String &s)
EnergyLevelMap operator()(Index ip, Index ilat, Index ilon) const
Vector x(Workspace &ws) noexcept
INDEX Index
The type to use for all integer numbers and indices.
Vector & Energies() noexcept
Energy level type.
Index nelem() const
Number of elements.
EnergyLevelMapType & Type() noexcept
Energy level type.
This file contains the definition of String, the ARTS string class.
static bool validIndexForType(Index x) noexcept
void Type(EnergyLevelMapType x) noexcept
Energy level type.