Program Listing for File SpecsynCommons.hpp

↰ Return to documentation for file (src/specsyn/SpecsynCommons.hpp)

#ifndef SPECSYNCOMMONS_HPP
#define SPECSYNCOMMONS_HPP

#include "../utils/Constants.hpp"
#include <cstdint>
#include <filesystem>
#include <string>
#include <vector>

namespace specsyn
{
    inline static const std::string defaultRegistry = // NOLINT(bugprone-throwing-static-initialization,cert-err58-cpp) -- built from fixed string literals, so the (theoretically throwing) path conversion can never actually throw here
        (std::filesystem::path("data") / std::filesystem::path("spectra")
        / std::filesystem::path("spectra.toml"));
    inline constexpr double defaultCFe = 0.0;
    inline constexpr double defaultMicroTurb = 0.0;
    inline constexpr double defaultR = 500;
    inline constexpr double defaultWlMin = (utils::h * utils::c / (10.0 * utils::Ryd)) / utils::Angstrom;

    inline constexpr double defaultWlMax = 1e5;
    inline constexpr unsigned long defaultNWl = 2048;
    inline const std::vector<std::string> defaultModelList = { // NOLINT(cert-err58-cpp) -- built from fixed string literals, so construction can never actually throw here
        "POWR_WC", "POWR_WNE", "POWR_WNL_H20", "POWR_WNL_H40", "POWR_WNL_H60",
        "TLUSTY_O", "TLUSTY_B", "BOSZ", "CK04", "MARCS",
        "TREMBLAY_DA", "TREMBLAY_ELM", "RAUCH", "RAUCH_H07"
    };

    enum class OOBPolicy : std::uint8_t
    {
        raise,
        silent,
        coerce
    };

    enum class GridType : std::uint8_t
    {
        wrGrid,
        wdGrid,
        normalGrid,
        nGridType
    };

} // namespace specsyn

#endif // SPECSYNCOMMONS_HPP