Scaling relations for physical properties of ultra-cool dwarfs (pwkit.ucd_physics)

pwkit.ucd_physics - Physical calculations for (ultra)cool dwarfs.

These functions generally implement various nontrivial physical relations published in the literature. See docstrings for references.

Functions:

bcj_from_spt

J-band bolometric correction from SpT.

bck_from_spt

K-band bolometric correction from SpT.

load_bcah98_mass_radius

Load Baraffe+ 1998 mass/radius data.

mass_from_j

Mass from absolute J magnitude.

mk_radius_from_mass_bcah98

Radius from mass, using BCAH98 models.

tauc_from_mass

Convective turnover time from mass.

pwkit.ucd_physics.bcj_from_spt(spt)[source]

Calculate a bolometric correction constant for a J band magnitude based on a spectral type, using the fit of Wilking+ (1999AJ….117..469W).

spt - Numerical spectral type. M0=0, M9=9, L0=10, …

Returns: the correction bcj such that m_bol = j_abs + bcj, or NaN if spt is out of range.

Valid values of spt are between 0 and 10.

pwkit.ucd_physics.bck_from_spt(spt)[source]

Calculate a bolometric correction constant for a J band magnitude based on a spectral type, using the fits of Wilking+ (1999AJ….117..469W), Dahn+ (2002AJ….124.1170D), and Nakajima+ (2004ApJ…607..499N).

spt - Numerical spectral type. M0=0, M9=9, L0=10, …

Returns: the correction bck such that m_bol = k_abs + bck, or NaN if spt is out of range.

Valid values of spt are between 2 and 30.

pwkit.ucd_physics.load_bcah98_mass_radius(tablelines, metallicity=0, heliumfrac=0.275, age_gyr=5.0, age_tol=0.05)[source]

Load mass and radius from the main data table for the famous models of Baraffe+ (1998A&A…337..403B).

tablelines

An iterable yielding lines from the table data file. I’ve named the file ‘1998A&A…337..403B_tbl1-3.dat’ in some repositories (it’s about 150K, not too bad).

metallicity

The metallicity of the model to select.

heliumfrac

The helium fraction of the model to select.

age_gyr

The age of the model to select, in Gyr.

age_tol

The tolerance on the matched age, in Gyr.

Returns: (mass, radius), where both are Numpy arrays.

The ages in the data table vary slightly at fixed metallicity and helium fraction. Therefore, there needs to be a tolerance parameter for matching the age.

pwkit.ucd_physics.mass_from_j(j_abs)[source]

Estimate mass in cgs from absolute J magnitude, using the relationship of Delfosse+ (2000A&A…364..217D).

j_abs - The absolute J magnitude.

Returns: the estimated mass in grams.

If j_abs > 11, a fixed result of 0.1 Msun is returned. Values of j_abs < 5.5 are illegal and get NaN. There is a discontinuity in the relation at j_abs = 11, which yields 0.0824 Msun.

pwkit.ucd_physics.mk_radius_from_mass_bcah98(*args, **kwargs)[source]

Create a function that maps (sub)stellar mass to radius, based on the famous models of Baraffe+ (1998A&A…337..403B).

tablelines

An iterable yielding lines from the table data file. I’ve named the file ‘1998A&A…337..403B_tbl1-3.dat’ in some repositories (it’s about 150K, not too bad).

metallicity

The metallicity of the model to select.

heliumfrac

The helium fraction of the model to select.

age_gyr

The age of the model to select, in Gyr.

age_tol

The tolerance on the matched age, in Gyr.

Returns: a function mtor(mass_g), return a radius in cm as a function of a mass in grams. The mass must be between 0.05 and 0.7 Msun.

The ages in the data table vary slightly at fixed metallicity and helium fraction. Therefore, there needs to be a tolerance parameter for matching the age.

This function requires Scipy.

pwkit.ucd_physics.tauc_from_mass(mass_g)[source]

Estimate the convective turnover time from mass, using the method described in Cook+ (2014ApJ…785…10C).

mass_g - UCD mass in grams.

Returns: the convective turnover timescale in seconds.

Masses larger than 1.3 Msun are out of range and yield NaN. If the mass is <0.1 Msun, the turnover time is fixed at 70 days.

The Cook method was inspired by the description in McLean+ (2012ApJ…746…23M). It is a hybrid of the method described in Reiners & Basri (2010ApJ…710..924R) and the data shown in Kiraga & Stepien (2007AcA….57..149K). However, this version imposes the 70-day cutoff in terms of mass, not spectral type, so that it is entirely defined in terms of a single quantity.

There are discontinuities between the different break points! Any future use should tweak the coefficients to make everything smooth.