Skip to content

[DRAFT] New spectral type packing

Hleb Valoshka edited this page Feb 13, 2021 · 3 revisions

Proposed format inherits the current layout:

F E D C B A 9 8 7 6 5 4 3 2 1 0
Star type Spectral type Subclass Luminosity class

Star type can be:


    enum StarType
    {
        NormalStar          = 0, // Main sequence, brown dwarf
        DegenerateStar      = 1, // White dwarf, neutron star, black hole
        WolfRayetStar       = 2, // Wolf–Rayet star
        CarbonStar          = 3, // Carbon star
        ExoticStar          = 4, // Quark star, black dwarf
    };

Spectral type can be:


    enum SpectralClass
    {
        Spectral_Unknown    = 0,
        // NormalStar
        Spectral_O          = 1,
        Spectral_B          = 2,
        Spectral_A          = 3,
        Spectral_F          = 4,
        Spectral_G          = 5,
        Spectral_K          = 6,
        Spectral_M          = 7,
        Spectral_L          = 8,
        Spectral_T          = 9,
        Spectral_Y          = 10,
        // DegenerateStar
        Spectral_DA         = 1, // white dwarf A (Balmer lines, no He I or metals)
        Spectral_DB         = 2, // white dwarf B (He I lines, no H or metals)
        Spectral_DC         = 3, // white dwarf C, continuous spectrum
        Spectral_DO         = 4, // white dwarf O, He II strong, He I or H
        Spectral_DQ         = 5, // white dwarf Q, carbon features
        Spectral_DZ         = 7, // white dwarf Z, metal lines only, no H or He
        Spectral_DX         = 8, // spectral lines are insufficiently clear to classify
        // Wolf–Rayet stars
        Spectral_WN         = 1,
        Spectral_WNh        = 2,
        Spectral_WC         = 3,
        Spectral_WO         = 4,
        // Carbon stars
        Spectral_C          = 1,
        Spectral_S          = 2,
        Spectral_MS         = 3,
        Spectral_SC         = 4,
    };

Subclass is a number from 0 to 14. Value 15 means unknown subclass.

Luminosity class is used if StarType is NormalStar. In this case it can be:


    enum LuminosityClass
    {
        Lum_Unknown = 0,
        Lum_Ia0     = 1,  // Ia-0 hypergiants or extremely luminous supergiants
        Lum_Ia      = 2,  // luminous supergiants
        Lum_Iab     = 3,  // supergiants
        Lum_Ib      = 4,  // less luminous supergiants
        Lum_II      = 5,  // bright giants
        Lum_III     = 6,  // giants
        Lum_IV      = 7,  // subgiants
        Lum_Va      = 8,  // extremely luminous dwarfs
        Lum_Vab     = 9,  // luminous dwarfs
        Lum_Vb      = 10, // normal dwarfs
        Lum_Vz      = 11, // lower main sequence dwarfs
        Lum_VI      = 12, // sub main sequence dwarfs
/*        Lum_VII     = 13, // white dwarfs */
    };

If StarType is DegenerateStar then this field is used to distinguish different degenerate star types:


    enum DegenerateStarType
    {
        WhiteDwarf          = 1,
        NeutronStar         = 2,
        BlackHole           = 3,
    };