posydon.binary_evol.CE

posydon.binary_evol.CE.step_CEE

Common envelope evolution step.

Calculates the evolution of a star in a BinaryStar object. It uses the alpha-perscription and caclulates how much the orbit has to shrink in order to expel its envelope. If in that separation, one of the star fills its RL, then the system is considered a merger. Else the common envelope is lost and we are left with a binary system with the core of the donor star (which initiated the unstable CEE) and the core of the copmanion. For now it works with the donor star being either a type of H_giant (with a He core) or He_giant (with a CO core) and the companion star being either a MS or compact object star, not contribyting to the CE.

If profiles exist we are able to calculate on the spot the lambda parameter for the donor star, else we use the default values

param binary:

type binary:

BinaryStar (An object of class BinaryStar defined in POSYDON)

param verbose:

In case we want information about the CEE (the default is False).

type verbose:

Boolean

class posydon.binary_evol.CE.step_CEE.StepCEE(prescription=MODEL['prescription'], common_envelope_efficiency=MODEL['common_envelope_efficiency'], common_envelope_lambda_default=MODEL['common_envelope_lambda_default'], common_envelope_option_for_lambda=MODEL['common_envelope_option_for_lambda'], common_envelope_option_for_HG_star=MODEL['common_envelope_option_for_HG_star'], common_envelope_option_after_succ_CEE=MODEL['common_envelope_option_after_succ_CEE'], common_envelope_alpha_thermal=MODEL['common_envelope_alpha_thermal'], core_definition_H_fraction=MODEL['core_definition_H_fraction'], core_definition_He_fraction=MODEL['core_definition_He_fraction'], CEE_tolerance_err=MODEL['CEE_tolerance_err'], mass_loss_during_CEE_merged=MODEL['mass_loss_during_CEE_merged'], verbose=MODEL['verbose'], **kwargs)[source]

Bases: object

Compute supernova final remnant mass, fallback fraction & stellar state.

This consider the nearest neighboor of the He core mass of the star, previous to the collapse. Considering a set of data for which the He core mass of the compact object projenitos previous the collapse, the final remnant mass and final stellar state of the compact object is known.

Parameters:

verbose (bool) – If True, the messages will be prited in the console.

Keyword Arguments:

prescription (str) –

Prescription to use for computing the prediction of common enevelope evolution. Available options are:

  • ’alpha-lambda’ : Considers the the alpha-lambda prescription described in [1] and [2] to predict the outcome of the common envelope evolution. If the profile of the donor star is available then it is used to compute the value of lambda.

References

[1]

Webbink, R. F. (1984). Double white dwarfs as progenitors of R Coronae Borealis stars and Type I supernovae. The Astrophysical Journal, 277, 355-360.

[2]

De Kool, M. (1990). Common envelope evolution and double cores of planetary nebulae. The Astrophysical Journal, 358, 189-195.

Initialize a StepCEE instance.

CEE_adjust_binary_upon_ejection(binary, donor, mc1_f, rc1_f, donor_type, comp_star, mc2_f, rc2_f, comp_type, double_CE, separation_f, orbital_period_f, common_envelope_option_after_succ_CEE, core_definition_H_fraction, core_definition_He_fraction, verbose=False)[source]

Update the binary and component stars upon exiting a CEE.

The binary’s parameters (orbital period, separation, state, etc.) are updated along with the donor’s (and in the case of a double CE the companion’s) parameters as well. Note that certain parameters are set to np.nan if they are undetermined after the CE.

Parameters:
  • binary (BinaryStar object) – The binary system

  • donor (SingleStar object) – The donor star

  • mc1_f (float) – Final core mass of the donor (in Msun)

  • rc1_f (float) – Final core radius of the donor (in Rsun)

  • donor_type (string) – Descriptor for the stellar type of the donor’s core

  • comp_star (SingleStar object) – The companion star

  • mc2_f (float) – Final core mass of the companion (in Msun)

  • rc2_f (float) – Final core radius of the companion (in Rsun)

  • comp_type (string) – Descriptor for the stellar type of the companion or it’s core

  • double_CE (bool) – Whether the CEE is a double CE or not

  • separation_f (float) – Final binary separation upon exiting the CEE (in Rsun)

  • orbital_period_f (float) – Final orbital period upon exiting the CEE (in days)

  • common_envelope_option_after_succ_CEE (string) – Which type of post-common envelope evolution is used to remove the final layers around the core

  • core_definition_H_fraction (float) – The fractional abundance of H defining the He core (0.3, 0.1, or 0.01)

  • core_definition_He_fraction (float) – The fractional abundance of He defining the CO core (typically 0.1)

  • verbose (bool) – In case we want information about the CEE.

CEE_adjust_binary_upon_merger(binary, donor, comp_star, m1_i, m2_i, donor_type, comp_type, Mejected_donor, Mejected_comp, verbose=False)[source]

Update the binary and component stars upon merging within a CEE.

The binary’s state and event are updated along with the donor and companion star masses and radii corresponding to a merger event.

Parameters:
  • binary (BinaryStar object) – The binary system

  • donor (SingleStar object) – The donor star

  • comp_star (SingleStar object) – The companion star

  • m1_i (float) – Mass of the donor upon entering a CE (in Msun)

  • m2_i (float) – Mass of the companion upon entering a CE (in Msun)

  • donor_type (string) – Descriptor for the stellar type of the donor’s core

  • comp_type (string) – Descriptor for the stellar type of the companion or it’s core

  • Mejected_donor (float) – How much mass is ejected from the donor upon merger (in Msun)

  • Mejected_comp (float) – How much mass is ejected from the companion upon merger (in Msun)

  • verbose (bool) – In case we want information about the CEE.

CEE_adjust_mass_loss_during_CEE_merged(donor, m1_i, mc1_i, rc1_i, comp_star, m2_i, mc2_i, rc2_i, separation_i, alpha_CE, radius1, radius2, double_CE, verbose=False)[source]

Calculate the amount of mass lost during a stellar merger in a CEE

From the stellar profiles the mass ejected until merger is calculated. Note that this function only returns non-zero mass-loss values if a profile is available.

Parameters:
  • donor (SingleStar object) – The donor star

  • m1_i (float) – Initial mass of the donor (in Msun)

  • mc1_i (float) – Initial core mass of the donor (in Msun)

  • rc1_i (float) – Initial core radius of the donor (in Rsun)

  • comp_star (SingleStar object) – The companion star

  • m2_i (float) – Initial mass of the companion (in Msun)

  • mc2_i (float) – Initial core mass of the companion (in Msun)

  • rc2_i (float) – Initial core radius of the companion (in Rsun)

  • separation_i (float) – Initial separation of the binary (in cm)

  • alpha_CE (float) – Common envelope efficiency parameter (unitless)

  • radius1 (float) – Initial radius of the donor (in Rsun)

  • radius2 (float) – Initial radius of the companion (in Rsun)

  • double_CE (bool) – Whether the CEE is a double CE or not

  • verbose (bool) – In case we want information about the CEE.

Returns:

  • Mejected_donor (float) – Mass ejected from the donor (in Msun)

  • Mejected_comp (float) – Mass ejected from the companion (in Msun)

CEE_adjust_post_CE_core_masses(donor, mc1_i, rc1_i, donor_type, comp_star, mc2_i, rc2_i, comp_type, double_CE, verbose=False)[source]

Calculate the post-common-envelope core masses and radii.

It determines the post-CE parameters based on the core properties. Note that these parameters may be updated in a subsequent step depending on assumptions about whether and how the final layers of the CE are removed from the cores.

Parameters:
  • donor (SingleStar object) – The donor star

  • mc1_i (float) – Core mass of the donor after the fast CE phase (in Msun)

  • rc1_i (float) – Core radius of the donor after the fast CE phase (in Rsun)

  • donor_type (string) – String dictating whether the donor has a ‘He_core’ or ‘CO_core’

  • comp_star (SingleStar object) – The companion star

  • mc2_i (float) – Core mass of the companion after the fast CE phase (in Msun)

  • rc2_i (float) – Core radius of the companion after the fast CE phase (in Rsun)

  • comp_type (string) – String dictating whether the companion has a ‘He_core’, ‘CO_core’, or ‘not_giant_companion’ (e.g. a compact object or MS star).

  • double_CE (bool) – In case we have a double CE situation.

  • verbose (bool) – In case we want information about the CEE.

Returns:

  • m1c_f (float) – Donor mass after the complete CE (in Msun)

  • r1c_f (float) – Donor radius after the complete CE (in Rsun)

  • m2c_f (float) – Companion mass after the complete CE (in Msun)

  • r2c_f (float) – Companion radius after the complete CE (in Rsun)

CEE_one_phase_variable_core_definition(donor, mc1_i, rc1_i, comp_star, mc2_i, rc2_i, separation_postCEE, verbose=False)[source]

Calculate the post-common-envelope parameters upon exiting a CEE.

This prescription assumes the he_core_mass/radius (or co_core_mass/radius for CEE of stripped_He*) are not further stripped beyond the core defined given by the core_definition_H/He_fraction. Hence, there are no changes on the orbit after successful ejection. Instead it is assumed that the defined core will become the remaining stripped object with core abundances at its surface.

Parameters:
  • donor (SingleStar object) – The donor star

  • mc1_i (float) – Core mass of the donor after the fast CE phase (in Msun)

  • rc1_i (float) – Core radius of the donor after the fast CE phase (in Rsun)

  • comp_star (SingleStar object) – The companion star

  • mc2_i (float) – Core mass of the companion after the fast CE phase (in Msun)

  • rc2_i (float) – Core radius of the companion after the fast CE phase (in Rsun)

  • separation_postCEE (float) – Binary’s separation after the fast CE phase (in cm)

  • verbose (bool) – In case we want information about the CEE.

Returns:

  • m1c_f (float) – Donor mass after the complete CE (in Msun)

  • r1c_f (float) – Donor radius after the complete CE (in Rsun)

  • m2c_f (float) – Companion mass after the complete CE (in Msun)

  • r2c_f (float) – Companion radius after the complete CE (in Rsun)

  • separation_f (float) – Binary’s final separation upon exiting the CE (in Rsun)

  • orbital_period_f (float) – Binary’s final orbital period upon exiting the CE (in days)

  • merger (bool) – Whether the binary merged in the CE

CEE_simple_alpha_prescription(binary, donor, comp_star, lambda1_CE, mc1_i, rc1_i, donor_type, lambda2_CE, mc2_i, rc2_i, comp_type, double_CE=False, verbose=False, common_envelope_option_after_succ_CEE=MODEL['common_envelope_option_after_succ_CEE'], core_definition_H_fraction=MODEL['core_definition_H_fraction'], core_definition_He_fraction=MODEL['core_definition_He_fraction'], mass_loss_during_CEE_merged=MODEL['mass_loss_during_CEE_merged'])[source]

Apply the alpha-lambda common-envelope prescription.

It uses energetics to calculate the shrinakge of the orbit (and possible merger) of the two components, as well as upadate their new masses, during a common-envelope phase.

Parameters:
  • binary (BinaryStar object) – Instance of the binary to evolve.

  • donor (SingleStar object) – The donor star

  • comp_star (SingleStar object) – The companion star

  • lambda1_CE (float) – Lambda previously calculated for the donor’s envelope binding energy.

  • mc1_i (float) – core mass of the donor

  • rc1_i (float) – core radius of the donor

  • donor_type (string) – String dictating whether the donor has a H-envelope or He-envelope

  • lambda2_CE (float) – Lambda previously calculated for the companion’s envelope binding energy.

  • mc2_i (float) – core mass of the companion

  • rc2_i (float) – core radius of the companion

  • comp_type (string) – String dictating whether the companion has a H-envelope or He-envelope.

  • double_CE (bool) – In case we have a double CE situation.

  • verbose (bool) – In case we want information about the CEE.

  • common_envelope_option_after_succ_CEE (str) –

    Options are:

    1. ”one_phase_variable_core_definition”

      he_core_mass/radius (or co_core_mass/radius for CEE of stripped_He*) are replaced according to the new core boundary used for CEE (based on core_definition_H/He_fraction) but no other change in period after succesful ejection at alpha-lambda prescription.

    2. ”two_phases_stableMT”

      he_core_mass/radius (or co_core_mass/radius for CEE of stripped_He*) staying as preCEE and after succesful ejection at alpha-lambda prescription, we assume an instantaneous stableMT phase (non-conservative, with mass lost from accretor) from the donor (or from donor and simultaneously the accretor at double_CE), taking away the extra “core” mass as defined by the core boundary used for CEE (based on core_definition_H/He_fraction).

    3. ”two_phases_windloss”

      he_core_mass/radius (or co_core_mass/radius for CEE of stripped_He*) staying as preCEE and after succesful ejection at alpha-lambda prescription, we assume a instantaneous windloss phase from the donor (or from donor and simultaneously the accretor at double_CE), taking away the extra “core” mass as defined by the core boundary used for CEE (based on core_definition_H/He_fraction).

  • core_definition_H_fraction (float) – The value of the H abundance to define the envelope-core boundary in He_cores.

  • core_definition_He_fraction (float) – The value of the He abundance to define the envelope-core boundary in CO_cores.

  • mass_loss_during_CEE_merged (Boolean) –

    If False, then no mass loss from this step for a merged CEE If True, then we remove mass according to the alpha-lambda prescription

    assuming a final separation where the inner core(s) RLOF starts, and the same lambda(s)

CEE_two_phases_stableMT(donor, mc1_i, rc1_i, donor_type, comp_star, mc2_i, rc2_i, comp_type, double_CE, separation_postCEE, verbose=False)[source]

Calculate the post-common-envelope parameters upon exiting a CEE.

This prescription assumes the he_core_mass/radius (or co_core_mass/radius for CEE of stripped_He*) becomes the value determined by MESA pre CEE. It stripes the envelope between the core defined by the core_definition_H/He_fraction and the MESA core by assuming an instantaneous stable MT phase (non-conservative, with mass lost from the accretor) after the successful ejection of the outer envelope part lost during the fast CE phase.

Parameters:
  • donor (SingleStar object) – The donor star

  • mc1_i (float) – Core mass of the donor after the fast CE phase (in Msun)

  • rc1_i (float) – Core radius of the donor after the fast CE phase (in Rsun)

  • comp_star (SingleStar object) – The companion star

  • mc2_i (float) – Core mass of the companion after the fast CE phase (in Msun)

  • rc2_i (float) – Core radius of the companion after the fast CE phase (in Rsun)

  • separation_postCEE (float) – Binary’s separation after the fast CE phase (in cm)

  • verbose (bool) – In case we want information about the CEE.

Returns:

  • m1c_f (float) – Donor mass after the complete CE (in Msun)

  • r1c_f (float) – Donor radius after the complete CE (in Rsun)

  • m2c_f (float) – Companion mass after the complete CE (in Msun)

  • r2c_f (float) – Companion radius after the complete CE (in Rsun)

  • separation_f (float) – Binary’s final separation upon exiting the CE (in Rsun)

  • orbital_period_f (float) – Binary’s final orbital period upon exiting the CE (in days)

  • merger (bool) – Whether the binary merged in the CE

CEE_two_phases_windloss(donor, mc1_i, rc1_i, donor_type, comp_star, mc2_i, rc2_i, comp_type, double_CE, separation_postCEE, verbose=False)[source]

Calculate the post-common-envelope parameters upon exiting a CEE.

This prescription assumes the he_core_mass/radius (or co_core_mass/radius for CEE of stripped_He*) becomes the value determined by MESA pre CEE. It stripes the envelope between the core defined by the core_definition_H/He_fraction and the MESA core by assuming an instantaneous wind loss phase from the donor (or both components in case of a double CE) after the successful ejection of the outer envelope part lost during the fast CE phase.

Parameters:
  • donor (SingleStar object) – The donor star

  • mc1_i (float) – Core mass of the donor after the fast CE phase (in Msun)

  • rc1_i (float) – Core radius of the donor after the fast CE phase (in Rsun)

  • comp_star (SingleStar object) – The companion star

  • mc2_i (float) – Core mass of the companion after the fast CE phase (in Msun)

  • rc2_i (float) – Core radius of the companion after the fast CE phase (in Rsun)

  • separation_postCEE (float) – Binary’s separation after the fast CE phase (in cm)

  • verbose (bool) – In case we want information about the CEE.

Returns:

  • m1c_f (float) – Donor mass after the complete CE (in Msun)

  • r1c_f (float) – Donor radius after the complete CE (in Rsun)

  • m2c_f (float) – Companion mass after the complete CE (in Msun)

  • r2c_f (float) – Companion radius after the complete CE (in Rsun)

  • separation_f (float) – Binary’s final separation upon exiting the CE (in Rsun)

  • orbital_period_f (float) – Binary’s final orbital period upon exiting the CE (in days)

  • merger (bool) – Whether the binary merged in the CE

calculate_lambda_CE(donor, verbose=False)[source]

Calculate lambda_CE from an assumed constant value or from profile.

If lambda_CE is calculated from donor’s profile, we also pass a more accurate calculation of the donor core mass for the purposes of CEE.

Parameters:
  • donor (instance of SingleStar) – The donor star to calculate pre-CE quantities.

  • verbose (bool) – In case we want information about the CEE (the default is False).

Returns:

  • lambda_CE (float) – lambda_CE calculated either as an assumed constant value or calculated from profile

  • mc1_i (float) – If lambda_CE is calculated from donor’s profile, we also pass a more accurate calculation of the donor core mass for the purposes of CEE.

  • rc1_i (float) – The radius of the donor’s core