Read a dwarf with a type and no colour at its type's row of the dwarf sequence
A non-giant with a spectral type but no colour took its temperature off the textbook colour spectralTypeToColorIndex gives its type, read on Pecaut & Mamajek's table, and its bolometric correction off the old textbook anchors. The table puts those colours elsewhere: M8's B-V 1.88 is M5-M5.5 there, 3 001 K where M8 V is 2 570, and the anchors give M8 -3.92 where the table has -5.65. GJ 3655 (M8, 14.35 pc) was drawn at 0.035 solar radii, a third of Jupiter, where its type's row gives 0.106 (Mamajek's M8 V: 0.114). Every O type came out B0's 31 400 K. Both now read dwarfSequenceAtType, which already existed for the giants, and a G magnitude is carried to V at the type's G-V too. On the published catalogue, of the 835 non-giant stars with a band, a type and no colour, those more than 200 K off their type's row go from 21 to 0, those with a radius more than 1.5 times off it from 7 to 1 and a luminosity from 10 to 1 (the one left, Oph 11, is a G-band star). GJ 3849 (dM9) goes from 0.030 to 0.089 solar radii, GJ 3855 (M6.5) from 0.040 to 0.087. Two tests pinned the textbook path and now read the table: M5Ve with no colour is 3 060 K, not 3 106, and K5 tints as B-V 1.15, its row, not 1.105. An O8 star is 35 100 K, its row, not B0's. Controls: reading the temperature through the textbook colour again fails "is drawn at its type's row of the dwarf sequence" (with the three updated tests); reading the correction off the anchors again fails that test alone. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -174,20 +174,20 @@ describe('effectiveTemperatureK', () => {
|
||||
});
|
||||
|
||||
it('reads a colour in its own system, and a spectral type where there is no colour', () => {
|
||||
// An M5 dwarf is 3 060 K at B−V 1.83 or BP−RP 3.35. Its type alone goes through the colour
|
||||
// `spectralTypeToColorIndex` gives it, B−V 1.70, and comes out a little warmer.
|
||||
// An M5 dwarf is 3 060 K at B−V 1.83 or BP−RP 3.35, and at its type alone.
|
||||
expect(effectiveTemperatureK({ magnitude: 11, distancePc: 5, colorIndex: 3.35, colorSystem: 'BP-RP' })).toBeCloseTo(3060, 0);
|
||||
expect(effectiveTemperatureK({ magnitude: 11, distancePc: 5, colorIndex: 1.83, colorSystem: 'B-V' })).toBeCloseTo(3060, 0);
|
||||
expect(effectiveTemperatureK({ magnitude: 11, distancePc: 5, spectralType: 'M5Ve', colorIndex: null })).toBeCloseTo(3106, 0);
|
||||
expect(effectiveTemperatureK({ magnitude: 11, distancePc: 5, spectralType: 'M5Ve', colorIndex: null })).toBeCloseTo(3060, 0);
|
||||
expect(effectiveTemperatureK({ magnitude: 11, distancePc: 5, spectralType: 'Unknown', colorIndex: null })).toBeNull();
|
||||
});
|
||||
|
||||
it('reads a colour past the table at its end where there is no type, and the type where there is', () => {
|
||||
// An ultracool dwarf redder than M8.5, a white dwarf bluer than B9 at the 19 012 K Gentile
|
||||
// Fusillo et al. (2021) measure at its colour, not B9's 10 700, and an O star B−V puts at B0.
|
||||
// Fusillo et al. (2021) measure at its colour, not B9's 10 700, and an O star at its type's
|
||||
// 35 100 K, where B−V puts every O star at B0's 31 400.
|
||||
expect(effectiveTemperatureK({ magnitude: 14.005, distancePc: 4.005, spectralType: 'Unknown', magnitudeBand: 'G', colorIndex: 5.113, colorSystem: 'BP-RP' })).toBe(2420);
|
||||
expect(effectiveTemperatureK({ magnitude: 14, distancePc: 25, spectralType: 'Unknown', magnitudeBand: 'G', colorIndex: -0.25, colorSystem: 'BP-RP' })).toBeCloseTo(19012, 6);
|
||||
expect(effectiveTemperatureK({ magnitude: 7, distancePc: 121, spectralType: 'O8', colorIndex: -0.31, colorSystem: 'B-V' })).toBe(31400);
|
||||
expect(effectiveTemperatureK({ magnitude: 7, distancePc: 121, spectralType: 'O8', colorIndex: -0.31, colorSystem: 'B-V' })).toBe(35100);
|
||||
// HD 49748, G5 V at B−V −0.32: the colour is the one that is wrong.
|
||||
const g5 = effectiveTemperatureK({ magnitude: 9, distancePc: 184, spectralType: 'G5V', colorIndex: null })!;
|
||||
expect(effectiveTemperatureK({ magnitude: 9, distancePc: 184, spectralType: 'G5V', colorIndex: -0.319, colorSystem: 'B-V' })).toBe(g5);
|
||||
@@ -195,6 +195,19 @@ describe('effectiveTemperatureK', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('a dwarf with a type and no colour', () => {
|
||||
it("is drawn at its type's row of the dwarf sequence, not at the textbook colour of its type", () => {
|
||||
// GJ 3655, M8 at V 19.57 and 14.35 pc: M8 V is 2 570 K and 0.114 R☉ (Mamajek's table, 2022.04.16).
|
||||
// Through the textbook colour, B−V 1.88, the table's M5, and the textbook correction, −3.92
|
||||
// where M8's is −5.65, it was 3 001 K and 0.035 R☉, a third of Jupiter.
|
||||
const gj3655 = { magnitude: 19.57, distancePc: 14.35, spectralType: 'M8', magnitudeBand: 'V', colorIndex: null } as const;
|
||||
expect(effectiveTemperatureK(gj3655)).toBeCloseTo(2570, 6);
|
||||
const radius = radiusFromLuminositySolar(luminositySolar(gj3655)!, effectiveTemperatureK(gj3655)!);
|
||||
expect(radius / 0.114).toBeGreaterThan(1 / 1.2);
|
||||
expect(radius / 0.114).toBeLessThan(1.2);
|
||||
});
|
||||
});
|
||||
|
||||
describe('radiusFromLuminositySolar', () => {
|
||||
it('is one for the Sun', () => {
|
||||
expect(radiusFromLuminositySolar(1, SOLAR_EFFECTIVE_TEMPERATURE_K)).toBeCloseTo(1, 12);
|
||||
|
||||
Reference in New Issue
Block a user