Atmosphere Model Object

Stellar atmosphere models are defined as functions in popstar/atmospheres.py. These can be called by:

from popstar import atmospheres
atmo = atmospheres.<function_name>

To call an atmosphere for a particular star, user must define the metallicity ([Z]), temperature (in K), and gravity (in cgs):

spectrum = atmo(metallicity=0, temperature=5800, gravity=4)
wave = spectrum.wave # Wavelength in Angstroms
flux = spectrum.flux # Flux in ergs s^-1 cm^-2 Angstrom^-1
(pysynphot Flam units)

The atmosphere function is an input for the Isochrone Object, and will automatically be used to define the spectrum of each star in the isochrone model.

PopStar uses the pysynphot framework to extract the model atmosphere, and the the output spectrum is a pysynphot.Icat object.

Below is a table of atmosphere model grids currently supported by SPISEA. Note that the resolution column reports the original resolution of the atmosphere model grid. These are available in the spisea_cdbs_highres.tar.gz file on the installation page. However, the default grid SPISEA uses has degraded the resolution of all atmosphere grids to R = 250 (the spisea_cdbs.tar.gz file).

Atmosphere Models

Model Name

Teff Range (K)

log g Range (cgs)

Metallicity Range [Fe/H]

λ Range (μm)

Resolutiona λ/Δλ

Ref

get_merged_atmosphere

250 – 50000

b

b

b

b

Appendix B; Hosek et al. (2020)

get_castelli_atmosphere

3500 – 50000

0 – 5.0

-2.5 – 0.2

0.1 – 10

~250

Castelli & Kurucz (2004)

get_phoenixv16_atmosphere

2300 – 12000

0.0 – 6.0

-4.0 – +1.0

0.05 – 5.5

100,000 – 500,000

Husser et al. (2013)

get_BTSettl_2015_atmosphere

1200 – 7000

2.5 – 5.5

0

0.01 – 30

2000 – 700,000

Baraffe et al. (2015)

get_BTSettl_atmosphered

2600 – 7000

4.5 – 5.5

-2.5 – 0.5

0.1 – 6.9

20,000 – 250,000

Allard et al. (2012b,a)

get_kurucz_atmosphere

3000 – 50000

0 – 5.0

-5.0 – 1.0

0.1 – 10

~250

c

get_phoenix_atmosphere

2100 – 69000

-4.0 – 0.5

0.001 – 995

~280

Allard et al. (2003, 2007)

get_Phillips2020_atmosphere

200 - 3000

2.5 - 5.5

0

0.2 - ~1980.2

0.5 - 5000

Phillips et al. (2020)

get_Meisner2023_atmosphere

250 - 1200

2.5 - 5.5

-1.0 - 0.3

0.2 - 30

~3000

Meisner et al. (2023)

get_wd_atmospheree

0.1 – 3.0

200 – 500,000

Koester (2010)

get_bb_atmosphere

Blackbody Spectrum

Footnotes

a Resolution column reports the original resolution of the atmosphere model grid. The default SPISEA grid degrades all atmosphere grids to R = 250 (spisea_cdbs.tar.gz).

b See Appendix B; values depend on the underlying model selected by get_merged_atmosphere.

c Kurucz (1993); see CDBS documentation.

d Solar metallicity only for BTSettl 2015.

e White dwarf atmospheres only.

Model Atmosphere Classes

atmospheres.get_merged_atmosphere(metallicity=0, temperature=20000, gravity=4.5, verbose=False, rebin=True)

Return a stellar atmosphere from a suite of different model grids, depending on the input temperature, (all values in K).

Parameters
metallicity: float

The stellar metallicity, in terms of [Z]

temperature: float

The stellar temperature, in units of K

gravity: float

The stellar gravity, in cgs units

rebin: boolean

If true, rebins the atmospheres so that they are the same resolution as the Castelli+04 atmospheres. Default is False, which is often sufficient synthetic photometry in most cases.

verbose: boolean

True for verbose output

Notes

The underlying stellar model grid used changes as a function of stellar temperature (in K):

  • T > 20,000: ATLAS

  • 5500 <= T < 20,000: ATLAS

  • 5000 <= T < 5500: ATLAS/PHOENIXv16 merge

  • 3800 <= T < 5000: PHOENIXv16

For T < 3800, there is an additional gravity and metallicity dependence:

If T < 3800 and [M/H] = 0:

  • T < 3800, logg < 2.5: PHOENIX v16

  • 3200 <= T < 3800, logg > 2.5: BTSettl_CIFITS2011_2015/PHOENIXV16 merge

  • 3200 < T <= 1200, logg > 2.5: BTSettl_CIFITS2011_2015

  • 1000 < T <= 1200, logg >= 3.5: BTSettl_CIFITS2011_2015/Meisner2023 merge

  • 250 < T <= 1000, logg > 2.5: Meisner2023

Otherwise, if T < 3800 and [M/H] != 0:

  • T < 3800: PHOENIX v16

References:

LTE WARNING:

The ATLAS atmospheres are calculated with LTE, and so they are less accurate when non-LTE conditions apply (e.g. T > 20,000 K). Ultimately we’d like to add a non-LTE atmosphere grid for the hottest stars in the future.

HOW BOUNDARIES BETWEEN MODELS ARE TREATED:

At the boundary between two models grids a temperature range is defined where the resulting atmosphere is a weighted average between the two grids. Near one boundary one model is weighted more heavily, while at the other boundary the other model is weighted more heavily. These are calculated in the temperature ranges where we switch between model grids, to ensure a smooth transition.

atmospheres.get_wd_atmosphere(metallicity=0, temperature=20000, gravity=4, verbose=False)

Return the white dwarf atmosphere from Koester et al. 2010. If desired parameters are outside of grid, return a blackbody spectrum instead

Parameters
metallicity: float

The stellar metallicity, in terms of [Z]

temperature: float

The stellar temperature, in units of K

gravity: float

The stellar gravity, in cgs units

rebin: boolean

If true, rebins the atmospheres so that they are the same resolution as the Castelli+04 atmospheres. Default is False, which is often sufficient synthetic photometry in most cases.

verbose: boolean

True for verbose output

atmospheres.get_bb_atmosphere(metallicity=None, temperature=20000, gravity=None, verbose=False, rebin=None, wave_min=500, wave_max=50000, wave_num=20000)

Return a blackbody spectrum

Parameters
temperature: float, default=20_000

The stellar temperature, in units of K

wave_min: float, default=500

Sets the minimum wavelength (in Angstroms) of the wavelength range for the blackbody spectrum

wave_max: float, default=50_000

Sets the maximum wavelength (in Angstroms) of the wavelength range for the blackbody spectrum

wave_num: int, default=20_000

Sets the number of wavelength points in the wavelength range Note: the wavelength range is evenly spaced in log space

atmospheres.get_castelli_atmosphere(metallicity=0, temperature=20000, gravity=4, rebin=False)

Return atmospheres from the pysynphot ATLAS9 atlas (Castelli & Kurucz 2004).

Grid Range:

  • Teff: 3500 - 50000 K

  • gravity: 0 - 5.0 cgs

  • [M/H]: -2.5 - 0.2

Parameters
metallicity: float

The stellar metallicity, in terms of [Z]

temperature: float

The stellar temperature, in units of K

gravity: float

The stellar gravity, in cgs units

rebin: boolean

If true, rebins the atmospheres so that they are the same resolution as the Castelli+04 atmospheres. Default is False, which is often sufficient synthetic photometry in most cases.

verbose: boolean

True for verbose output

atmospheres.get_phoenixv16_atmosphere(metallicity=0, temperature=4000, gravity=4, rebin=True)

Return PHOENIX v16 atmospheres from Husser et al. 2013.

Models originally downloaded via ftp. Solar metallicity and [alpha/Fe] is used.

Grid Range:

  • Teff: 2300 - 7000 K, steps of 100 K; 7000 - 12000 in steps of 200 K

  • gravity: 0.0 - 6.0 cgs, steps of 0.5

  • [M/H]: -4.0 - 1.0

Parameters
metallicity: float

The stellar metallicity, in terms of [Z]

temperature: float

The stellar temperature, in units of K

gravity: float

The stellar gravity, in cgs units

rebin: boolean

If true, rebins the atmospheres so that they are the same resolution as the Castelli+04 atmospheres. Default is False, which is often sufficient synthetic photometry in most cases.

atmospheres.get_BTSettl_2015_atmosphere(metallicity=0, temperature=2500, gravity=4, rebin=True)

Return atmosphere from CIFIST2011_2015 grid (Allard et al. 2012, Baraffe et al. 2015 )

Grid originally downloaded from website.

Grid Range:

  • Teff: 1200 - 7000 K

  • gravity: 2.5 - 5.5 cgs

  • [M/H] = 0

Parameters
metallicity: float

The stellar metallicity, in terms of [Z]

temperature: float

The stellar temperature, in units of K

gravity: float

The stellar gravity, in cgs units

rebin: boolean

If true, rebins the atmospheres so that they are the same resolution as the Castelli+04 atmospheres. Default is False, which is often sufficient synthetic photometry in most cases.

atmospheres.get_BTSettl_atmosphere(metallicity=0, temperature=2500, gravity=4.5, rebin=True)

Return atmosphere from CIFIST2011 grid (Allard et al. 2012)

Grid originally downloaded here

Parameters
metallicity: float

The stellar metallicity, in terms of [Z]

temperature: float

The stellar temperature, in units of K

gravity: float

The stellar gravity, in cgs units

rebin: boolean

If true, rebins the atmospheres so that they are the same resolution as the Castelli+04 atmospheres. Default is False, which is often sufficient synthetic photometry in most cases.

**PRINT STATEMENTS TO DEBUG **check get_atmosphere_bounds **comment out try/except clause and check break

Notes

Grid Range:

  • [M/H] = -2.5, -2.0, -1.5, -1.0, -0.5, 0, 0.5

Teff and gravity ranges depend on metallicity:

[M/H] = -2.5

  • Teff: 2600 - 4600 K

  • gravity: 4.5 - 5.5

[M/H] = -2.0

  • Teff: 2600 - 7000

  • gravity: 4.5 - 5.5

[M/H] = -1.5

  • Teff: 2600 - 7000

  • gravity: 4.5 - 5.5

[M/H] = -1.0

  • Teff: 2600 - 7000

  • gravity: Teff < 3200 –> 4.5 - 5.5; Teff > 3200 –> 2.5 - 5.5

[M/H] = -0.5

  • Teff: 1000 -7000

  • gravity: Teff < 3000 –> 4.5 - 5.5; Teff > 3000 –> 3.0 - 6.0

[M/H] = 0

  • Teff: 750 - 7000

  • gravity: Teff < 2500 –> 3.5 - 5.5; Teff > 2500 –> 0 - 5.5

[M/H] = 0.5

  • Teff: 1000 - 5000

  • gravity: 3.5 - 5.0

Alpha enhancement:

  • [M/H]= -0.0, +0.5 no anhancement

  • [M/H]= -0.5 with [alpha/H]=+0.2

  • [M/H]= -1.0, -1.5, -2.0, -2.5 with [alpha/H]=+0.4

atmospheres.get_wdKoester_atmosphere(metallicity=0, temperature=20000, gravity=7)

Return white dwarf atmospheres from Koester et al. 2010

Parameters
metallicity: float

The stellar metallicity, in terms of [Z]

temperature: float

The stellar temperature, in units of K

gravity: float

The stellar gravity, in cgs units

rebin: boolean

If true, rebins the atmospheres so that they are the same resolution as the Castelli+04 atmospheres. Default is False, which is often sufficient synthetic photometry in most cases.

atmospheres.get_kurucz_atmosphere(metallicity=0, temperature=20000, gravity=4, rebin=False)

Return atmosphere from the Kurucz pysnphot grid (Kurucz 1993).

Grid Range:

  • Teff: 3000 - 50000 K

  • gravity: 0 - 5 cgs

  • metallicity: -5.0 - 1.0

Parameters
metallicity: float

The stellar metallicity, in terms of [Z]

temperature: float

The stellar temperature, in units of K

gravity: float

The stellar gravity, in cgs units

rebin: boolean

Always false for this particular function

atmospheres.get_phoenix_atmosphere(metallicity=0, temperature=5000, gravity=4, rebin=False)

Return atmosphere from the pysynphot PHOENIX atlas.

Parameters
metallicity: float

The stellar metallicity, in terms of [Z]

temperature: float

The stellar temperature, in units of K

gravity: float

The stellar gravity, in cgs units

rebin: boolean

If true, rebins the atmospheres so that they are the same resolution as the Castelli+04 atmospheres. Default is False, which is often sufficient synthetic photometry in most cases.

atmospheres.get_Phillips2020_atmosphere(metallicity=0, temperature=1000, gravity=4.5, rebin=True)

Return atmosphere from Phillips et al., 2020 using ATMO model (Phillips et al. 2020)

Grid originally downloaded here

Grid Range: * Teff: 200 - 3000 K * gravity: 2.5 - 5.5 cgs * [M/H] = 0

atmospheres.get_Meisner2023_atmosphere(metallicity=0, temperature=1000, gravity=4.5, rebin=True)

Return atmosphere from Meisner2023 grid (Meisner et al. 2023)

Grid originally downloaded here

Grid range: * Teff = 250 - 1200 K * gravity: 2.5 - 5.5 cgs (in steps of 0.5) * [M/H] = -1.0, -0.5, 0, +0, +0.3