Stellar Multiplicity Object

The properties of multiple systems in the stellar population is defined by the stellar multiplicity object. The multiplicity classes are defined in spisea/imf/multiplicity.py.

To call a multiplicity class:

from spisea.imf import multiplicity
multi_obj = multiplicity.<class_name>

The multiplicity object is an input for the IMF Object, as it impacts how the stellar masses are drawn.

The user can choose either an unresolved or a resolved multiplicity object. If a resolved multiplicity object is selected, then orbital parameters are assigned to each companion star (e.g semi-major axis, eccentricity, inclination). These values are added as additional columns in the companions table off of the cluster object.

Note that the synthetic photometry returned in the star_systems table off the cluster object is the same for both unresolved and resolved multiplicity classes: it represents the combined photometry of all stars within a given system.

Unresolved Multiplicity Classes

class imf.multiplicity.MultiplicityUnresolved(MF_amp=0.44, MF_power=0.51, CSF_amp=0.5, CSF_power=0.45, CSF_max=3, q_power=-0.4, q_min=0.01, companion_max=False)

The properties of stellar companions (see notes below). The default parameters are as described in Lu et al. 2013. These parameters are most appropriate for stellar populations with ages <10 Myr.

Parameters
MF_ampfloat, optional

The amplitude of the power-law describing the Multiplicity Fraction as a function of stellar mass.

MF_powerfloat, optional

The power of the power-law describing the Multiplicity Fraction as a function of stellar mass.

CSF_ampfloat, optional

The amplitude of the power-law describing the companion star fraction as a function of stellar mass.

CSF_powerfloat, optional

The power of the power-law describing the companion star fraction as a function of stellar mass.

CSF_maxfloat, optional

The maximum allowed companion star fraction, which is the expectation value for the number of companion stars. Given a CSF_max = 3, some systems will still have more than 3 companions.

q_powerfloat, optional

The power of the power-law describing the probability density function for the mass ratio.

q_minfloat, optional

The minimum allowed Q value for the probability density function of the mass ratio.

companion_maxbool, optional

Sets CSF_max is the max as the max number of companions. Default False.

Notes

The number of stellar companions, their masses, and separations are be described by the following functions:

Multiplicity Fraction – the number of stellar systems that host multiple stars. In other words, the number of primary stars with companions. The multiplicity fraction (MF) is typically described as:

            B + T + Q + ...
MF =     ---------------------
          S + B + T + Q + ...

where S = single, B = binary, T = triple, Q = quadruple, etc. The MF also changes with mass and this dependency can be described as a power-law:

MF(mass) = MF_amp * (mass ** MF_power)

Companion Star Fraction – the expected number of companions in a multiple system. The companion star fraction (CSF) also changes with mass and this dependency can be described as a power-law:

CSF(mass) = CSF_amp * (mass ** CSF_power)

The companion star fraction is clipped to some maximum value, CSF_max. The actual number of companions is drawn from a Poisson distribution with an expectation value of CSF.

Mass Ratio (Q) – The ratio between the companion star mass and primary star mass, Q = (m_comp / m_prim ) has a probability density function described by a powerlaw:

P(Q) = Q ** q_power  for q_min <= Q <= 1

Current observations show no significant mass dependence.

Methods

companion_star_fraction(mass)

Given a star's mass, determine the average number of companion stars (companion star fraction = CSF).

multiplicity_fraction(mass)

Given a star's mass, determine the probability that the star is in a multiple system (multiplicity fraction = MF).

random_q(x)

Generative function for companion mass ratio, equivalent to the inverse of the CDF.

companion_star_fraction(mass)

Given a star’s mass, determine the average number of companion stars (companion star fraction = CSF).

Parameters
massfloat or numpy array

Mass of primary star

Returns
csffloat or numpy array

Companion Star Fraction, the expected number of companions for a star at this mass.

multiplicity_fraction(mass)

Given a star’s mass, determine the probability that the star is in a multiple system (multiplicity fraction = MF).

Parameters
massfloat or numpy array

Mass of primary star.

Returns
mffloat or numpy array

Multiplicity Fraction, the fraction of stars at this mass that will have one or more companions.

random_q(x)

Generative function for companion mass ratio, equivalent to the inverse of the CDF.

q = m_compnaion / m_primary P(q) = q ** beta for q_min <= q <= 1

Parameters
xfloat or array_like

Random number between 0 and 1.

Returns
qfloat or array_like

companion mass ratio(s)

Resolved Multiplicity Classes

class imf.multiplicity.MultiplicityResolvedDK(a_amp=379.79953034, a_break=4.90441533, a_slope1=-1.80171539, a_slope2=4.23325571, a_std_slope=1.19713084, a_std_intercept=1.28974264, **kwargs)

Bases: MultiplicityUnresolved

Sub-class of MultiplicityUnresolved that adds semimajor axis and eccentricity information for multiple objects from distributions described in Duchene and Kraus 2013

Parameters
a_amp: float, optional

Ampltiude of the broken power law describing the log_semimajoraxis

a_break: float, optional

Break location on the x-axis of the broken power law describing the log_semimajoraxis

a_slope1: float, optional

Slope of the left side of the broken power law describing the log_semimajoraxis

a_slope2: float, optional

Slope of the right side of the broken power law describing the log_semimajoraxis

a_std_slope: float, optional

Slope of the line that fit sigma_log_semimajoraxis vs log_mass

a_std_intercept: float, optional

Intercept of the line that fit sigma_log_semimajoraxis vs log_mass

Methods

companion_star_fraction(mass)

Given a star's mass, determine the average number of companion stars (companion star fraction = CSF).

log_semimajoraxis(mass)

Generate the semimajor axis for a given mass.

multiplicity_fraction(mass)

Given a star's mass, determine the probability that the star is in a multiple system (multiplicity fraction = MF).

random_companion_count(x, CSF, MF)

Helper function: calculate number of companions.

random_e(x)

Generate random eccentricity from the inverse of the CDF where the PDF is f(e) = 2e from Duchene and Kraus 2013

random_is_multiple(x, MF)

Helper function: determine if star is in multiple system.

random_keplarian_parameters(x, y, z)

Generate random incliniation and angles of binary system

random_q(x)

Generative function for companion mass ratio, equivalent to the inverse of the CDF.