arsenal_gear.stellar_evolution.isochrone.IsochroneInterpolator

class arsenal_gear.stellar_evolution.isochrone.IsochroneInterpolator(**kwargs)[source]

Bases: object

This class is used to interpolate isochrones from various sources It can be used to interpolate stellar tracks or isochrones from any stellar evolution code, provided there is a IsochroneDataReader class implemented in order to read the data.

construct_isochrone(t: Annotated[Quantity, PhysicalType('time')], method: str = 'pchip', labels=None) Isochrone[source]

Constructs an isochrone at age t with the requested labels

Parameters:
  • t – the age of the isochrone. Should be a single time

  • method – the interpolation method to use, either pchip or linear default is pchip (a monotonicity-preserving cubic spline)

  • labels – The labels of the quantities to be calcaulated for the isochrone default is an empty list which will return initial mass, log(teff), and log(lbol) only.

Returns:

The isochrone object containing initial masses,

effective temperatures, and bolometric luminosities of the stars in the isochrone, along with any other requested quantities.

Return type:

Isochrone

lbol(mini: Annotated[Quantity, PhysicalType('mass')], t: Annotated[Quantity, PhysicalType('time')], method: str = 'pchip') Quantity, PhysicalType({'power', 'radiant flux'})][source]

get the bolometric luminosity of a star of initial mass mini at age t :param mini: the initial mass of the star. Can be an array :param t: the age of the isochrone. Should be a single time (for now…) :param method: the interpolation method to use, either pchip or linear

Returns:

the bolometric luminosity of the star.

Return type:

Quantity[“power”]

mmax(t: Annotated[Quantity, PhysicalType('time')]) Annotated[Quantity, PhysicalType('mass')][source]

get the maximum mass of the stellar population that hasn’t died yet (in e.g. a SN) as a funciton of age, using a cubic spline based on maximum mass reported in the isochrone data :param t: the time at which to evaluate the derivative, can be an array

Returns:

the initial mass of the most massive star still alive at time t

Return type:

mmax

mmaxdot(t: Annotated[Quantity, PhysicalType('time')]) Annotated[Quantity, PhysicalType('mass')][source]

get the rate of change of the maximum mass of the stellar population with respect to time. Uses a cubic spline and takes the derivative :param t: the time at which to evaluate the derivative, can be an array

Returns:

the rate at which the maximum mass is changing with respect to time

Return type:

mmaxdot

supplement_labels(labels: list[str]) list[str][source]

Adds basic labels to the list of isochrone quantities to be interpolated. :param labels: The list of labels to be interpolated.

Returns:

The supplemented list of labels including basic quantities.

Return type:

labels

teff(mini: Annotated[Quantity, PhysicalType('mass')], t: Annotated[Quantity, PhysicalType('time')], method: str = 'pchip') Annotated[Quantity, PhysicalType('temperature')][source]

get the atmospheric effective temperature of a star of initial mass mini at age t :param mini: the initial mass of the star. Can be an array :param t: the age of the isochrone. Should be a single time (for now…) :param method: the interpolation method to use, either pchip or linear

Returns:

the effective surface temperature of the star.

Return type:

Quantity[“temperature”]