Source code for posydon.visualization.plot_defaults

"""Default values for plotting routines.

This file contains the default parameters of each plotting routines.
PLOT_PROPERTIES:
    Each default plotting variable is contained in this dictionary.
DEFAULT_MARKERS_COLORS_LEGENDS:
    Each termination condition is associated with a marker shape, size, color
    and label.
"""


__authors__ = [
    "Simone Bavera <Simone.Bavera@unige.ch>",
    "Devina Misra <devina.misra@unige.ch>",
    "Scott Coughlin <scottcoughlin2014@u.northwestern.edu>",
    "Emmanouil Zapartas <ezapartas@gmail.com>",
    "Matthias Kruckow <Matthias.Kruckow@unige.ch>",
]


from matplotlib import rcParams
import shutil

PLOT_PROPERTIES = {
    'show_fig': False,
    'close_fig': True,
    'path_to_file': './',
    'fname': None,
    'figsize': (3.38, 3.38),
    'bbox_inches': 'tight',
    'dpi': 300,
    'log10_x': False,
    'log10_y': False,
    'log10_z': False,
    'xmin': None,
    'xmax': None,
    'ymin': None,
    'ymax': None,
    'zmin': None,
    'zmax': None,
    'title': None,
    'rcParams': {"text.usetex": True if shutil.which('latex') else False,
                 "font.family": "serif",
                 "font.sans-serif": ["Computer Modern Roman"]},
    'title_font_dict': {'fontsize': 10},
    'title_loc': 'center',
    'xlabel': None,
    'xlabel_kwargs': {
        'fontsize': 10
    },
    'ylabel': None,
    'ylabel_kwargs': {
        'fontsize': 10
    },
    'marker_size': 4,
    'hspace': None,
    'wspace': None,
    'const_R_lines': False,
    'colorbar': {
        'label': None,
        'label_size': 10,
        'orientation': 'horizontal',
        'fraction': 0.15,
        'pad': 0.2,
        'shrink': 1,
        'aspect': 20,
        'anchor': (0.0, 0.5),
        'panchor': (1.0, 0.5),
        'extend': 'neither',
        'bounds': [0.03, 0.7, 0.94, 0.05]
    },
    'legend1D': {
        'title': None,
        'lines_legend': None,
        'title_font_size': 8,
        'loc': 'upper right',
        'ncol': 1,
        'borderaxespad': None,
        'handletextpad': None,
        'columnspacing': 0.4,
        'prop': {
            'size': 8
        },
        'shrink_box': 1,
        'bbox_to_anchor': None
    },
    'legend2D': {
        'title': 'Termination flags',
        'title_font_size': 8,
        'loc': 'center left',
        'ncol': 1,
        'borderaxespad': None,
        'handletextpad': None,
        'columnspacing': 0.4,
        'prop': {
            'size': 8
        },
        'shrink_box': 0.85,
        'bbox_to_anchor': (1, 0.5)
    },
    'slice_text_kwargs': {
        'bbox': {'facecolor': 'white', 'alpha': 0.8, 'pad': 2},
        'ha': 'right',
        'va': 'bottom',
        'x': 0.95,
        'y': 0.05
    },
    'PdfPages': None
}

list_of_colors = ['#a6611a',
                  '#dfc27d',
                  [(31/255, 119/255, 180/255)],
                  [(255/255, 127/255, 14/255)]]

TF1_label_stable = 'Reached end life'
TF1_label_initial = 'Initial RLOF'
TF1_label_unstable = 'Unstable RLOF'
color_unstable = 'black'

DEFAULT_MARKERS_COLORS_LEGENDS = {
    'termination_flag_1': {
        'terminate due to primary depleting carbon (inverse sn?)':
            ['s', 2, None, TF1_label_stable],
        'Primary has depleted central carbon':
            ['s', 2, None, TF1_label_stable],
        'Secondary has depleted central carbon':
            ['o', 2, None, TF1_label_stable],
        'Primary got stopped before central carbon depletion':
            ['s', 2, None, TF1_label_stable],
        'Secondary got stopped before central carbon depletion':
            ['o', 2, None, TF1_label_stable],
        'Primary enters pair-instability regime':
            ['s', 2, None, TF1_label_stable],
        'Secondary enters pair-instability regime':
            ['o', 2, None, TF1_label_stable],
        'Primary enters pulsational pair-instability regime':
            ['s', 2, None, TF1_label_stable],
        'Secondary enters pulsational pair-instability regime':
            ['o', 2, None, TF1_label_stable],
        'offcenter neon ignition for primary':
            ['s', 2, None, TF1_label_stable],
        'offcenter neon ignition for secondary':
            ['o', 2, None, TF1_label_stable],
        'forced_initial_RLO':
            ['.', 1, color_unstable, TF1_label_initial],
        'overflow from L1 at ZAMS':
            ['.', 1, color_unstable, TF1_label_initial],
        'Terminate because of overflowing initial model':
            ['.', 1, color_unstable, TF1_label_initial],
        'overflow from L2 point for q>1 at ZAMS':
            ['.', 1, color_unstable, TF1_label_initial],
        'overflow from L2 surface for q<1 at ZAMS':
            ['.', 1, color_unstable, TF1_label_initial],
        'overflow from L2 surface for q>1 at ZAMS':
            ['.', 1, color_unstable, TF1_label_initial],
        'overflow from L2 surface for q<1':
            ['D', 1, color_unstable, TF1_label_unstable],
        r'overflow from L2 (D_L2) distance for q(=Macc/Mdon)>1, '
        'donor is star 1':
            ['D', 1, color_unstable, TF1_label_unstable],
        r'overflow from L2 (R_L2) surface for q(=Macc/Mdon)<1, '
        'donor is star 1':
            ['D', 1, color_unstable, TF1_label_unstable],
        r'overflow from L2 (R_L2) surface for q(=Macc/Mdon)>1, '
        'donor is star 1':
            ['D', 1, color_unstable, TF1_label_unstable],
        r'overflow from L2 (D_L2) distance for q(=Macc/Mdon)<1, '
        'donor is star 1':
            ['D', 1, color_unstable, TF1_label_unstable],
        'overflow from L2 (R_L2) surface for q(=Macc/Mdon)<1, donor is star 2':
            ['D', 1, color_unstable, TF1_label_unstable],
        'overflow from L2 (R_L2) surface for q(=Macc/Mdon)>1, donor is star 2':
            ['D', 1, color_unstable, TF1_label_unstable],
        'reached maximum mass transfer rate: 10.0d0':
            ['D', 1, color_unstable, TF1_label_unstable],
        'Reached maximum mass transfer rate: 1d-1':
            ['D', 1, color_unstable, TF1_label_unstable],
        'Reached the critical mt rate':
            ['D', 1, color_unstable, TF1_label_unstable],
        'Reached TPAGB':
            ['s', 2, None, TF1_label_initial],
        'Both stars fill their Roche Lobe and at least one of them is off MS':
            ['D', 1, color_unstable, TF1_label_unstable],
        'Both stars fill their Roche Lobe and t_kh > t_acc':
            ['D', 1, color_unstable, TF1_label_unstable],
        'overflow from L2, t_kh > t_acc and w > w_crit_lim, donor is star 1':
            ['D', 1, color_unstable, TF1_label_unstable],
        'overflow from L2, t_kh > t_acc and w > w_crit_lim, donor is star 2':
            ['D', 1, color_unstable, TF1_label_unstable],
        'Terminate due to L2 overflow during case A':
            ['D', 1, color_unstable, TF1_label_unstable],
        'Reached maximum mass transfer rate: Exceeded photon trapping radius':
            ['D', 1, color_unstable, TF1_label_unstable],
        'Terminate because accretor (r-rl)/rl > accretor_overflow_terminate':
            ['D', 1, color_unstable, TF1_label_unstable],
        'logQ_limit':
            ['x', 1, 'red', 'logQ_limit'],
        'logQ_min_limit':
            ['x', 1, 'red', 'logQ_limit'],
        'min_timestep_limit':
            ['x', 1, 'red', 'Not converged'],
        'reach cluster timelimit':
            ['x', 1, 'red', 'Not converged'],
        'no termination code':
            ['x', 1, 'red', 'no termination code'],
        'envelope_mass_limit':
            ['s', 2, None, TF1_label_stable],
        'gamma_center_limit':
            ['s', 2, None, TF1_label_stable],
        'max_age':
            ['s', 2, None, TF1_label_stable],
        'Initial RLOF':
            ['.', 1, 'black', TF1_label_initial],
        'Not converged':
            ['x', 1, 'red', 'Not converged'],
        'fe_core_infall_limit':
            ['x', 1, 'tab:purple', 'fe_core_infall_limit'],
        'ignored_no_binary_history':
            ['.', 1, color_unstable, TF1_label_initial],
        'ignored_no_RLO':
            ['.', 1, color_unstable, TF1_label_initial],
        'unknown':
            ['+', 1, 'red', 'unknown'],

    },

    'termination_flag_2': {

        'initial_RLOF':
            ['+', 1, 'black', 'initial RLOF'],
        'forced_initial_RLO':
            ['+', 1, 'black', 'initial RLOF'],
        'ignored_no_binary_history':
            ['+', 1, 'black', 'initial RLOF'],
        'ignored_no_RLO':
            ['+', 1, 'black', 'initial RLOF'],
        'no_RLOF':
            ['.', 1, 'black', 'no RLOF'],
        'contact_during_MS':
            ['v', 1, 'black', 'contact during MS'],
        'L2_RLOF':
            ['^', 1, 'black', 'L2 RLOF'],

        'case_A1':
            ['s', 2, 'tab:blue', 'case A1'],
        'case_A1/B1':
            ['s', 2, 'tab:green', 'case A1/B1'],
        'case_A1/B1/A1':
            ['s', 2, 'lightgrey', 'case A1/B1/A1'],
        'case_A1/B1/C1':
            ['s', 2, 'yellow', 'case A1/B1/C1'],
        'case_A1/C1':
            ['s', 2, 'yellow', 'case A1/C1'],
        'case_A1/B1/BB1':
            ['s', 2, 'tab:red', 'case A1/B1/BB1'],
        'case_A1/B1/C1/BB1':
            ['s', 2, 'tab:cyan', 'case A1/B1/C1/BB1'],
        'case_B1':
            ['s', 2, 'tab:purple', 'case B1'],
        'case_B1/BB1':
            ['s', 2, 'tab:pink', 'case B1/BB1'],
        'case_B1/C1/BB1':
            ['s', 2, 'tab:gray', 'case B1/C1/BB1'],
        'case_B1/C1':
            ['s', 2, 'tab:orange', 'case B1/C1'],
        'case_C1':
            ['s', 2, 'black', 'case C1'],
        'case_C1/BB1':
            ['s', 2, 'brown', 'case C1/BB1'],
        'case_BA1':
            ['s', 2, 'tab:blue', 'case BA1'],
        'case_BB1':
            ['s', 2, 'tab:green', 'case BB1'],
        'case_BA1/BB1':
            ['s', 2, 'tab:red', 'case BA1/BB1'],

        'case_A2':
            ['o', 2, 'tab:blue', 'case A2'],
        'case_A2/B2':
            ['o', 2, 'tab:green', 'case A2/B2'],
        'case_A2/B2/A2':
            ['o', 2, 'lightgrey', 'case A2/B2/A2'],
        'case_A2/B2/C2':
            ['o', 2, 'yellow', 'case A2/B2/C2'],
        'case_A2/C2':
            ['o', 2, 'yellow', 'case A2/C2'],
        'case_A2/B2/BB2':
            ['o', 2, 'tab:red', 'case A2/B2/BB2'],
        'case_A2/B2/C2/BB2':
            ['o', 2, 'tab:cyan', 'case A2/B2/C2/BB2'],
        'case_B2':
            ['o', 2, 'tab:purple', 'case B2'],
        'case_B2/BB2':
            ['o', 2, 'tab:pink', 'case B2/BB2'],
        'case_B2/C2/BB2':
            ['o', 2, 'tab:gray', 'case B2/C2/BB2'],
        'case_B2/C2':
            ['o', 2, 'tab:orange', 'case B2/C2'],
        'case_C2':
            ['o', 2, 'black', 'case C2'],
        'case_C2/BB2':
            ['o', 2, 'brown', 'case C2/BB2'],
        'case_BA2':
            ['o', 2, 'tab:blue', 'case BA2'],
        'case_BB2':
            ['o', 2, 'tab:green', 'case BB2'],
        'case_BA2/BB2':
            ['o', 2, 'tab:red', 'case BA1/BB2'],

        'case_A1/A2':
            ['>', 2, 'tab:blue', 'case A1/A2'],
        'case_A1/A2/A1':
            ['>', 2, 'tab:green', 'case A1/A2/A1'],
        'case_A1/A2/B1':
            ['>', 2, 'tab:gray', 'case A1/A2/B1'],
        'case_A1/A2/B1/B2':
            ['>', 2, 'tab:orange', 'case A1/A2/B1/B2'],
        'case_A1/B1/BB1':
            ['>', 2, 'tab:purple', 'case A1/B1/BB1'],
        'case_A1/A2/B2':
            ['>', 2, 'tab:red', 'case A1/A2/B2'],
        'case_A1/B1/A2':
            ['>', 2, 'tab:pink', 'case A1/B1/B2'],
        'case_A1/B1/A2/B2':
            ['>', 2, 'tab:olive', 'case A1/B1/A2/B2'],
        'case_A1/B1/A2/B1/B2':
            ['>', 2, 'yellow', 'case A1/B1/A2/B1/B2'],
        'case_A1/B1/B2':
            ['>', 2, 'brown', 'case A1/B1/B2'],
        'case_A1/B1/B2/B1':
            ['>', 2, 'black', 'case A1/B1/B2/B1'],
        'case_A1/B2':
            ['>', 2, 'tab:cyan', 'case A1/B1/C1/BB1'],
        'case_B1/A2':
            ['<', 2, 'tab:blue', 'case B1/A2'],
        'case_B1/A2/B2':
            ['<', 2, 'tab:green', 'case B1/A2/B2'],
        'case_B1/B2':
            ['<', 2, 'tab:gray', 'case B1/B2'],
        'case_B1/B2/B1':
            ['<', 2, 'tab:red', 'case B1/B2/B1'],
        'case_B1/B2/BB1':
            ['<', 2, 'brown', 'case B1/B2/BB1'],
        'case_B1/B2/B1/B2/B1/B2/B1/B2/B1':
            ['<', 2, 'tab:pink', 'case B1/B2/B1/B2/B1/B2/B1/B2/B1'],
        'case_B1/B2/B1/C1':
            ['<', 2, 'tab:olive', 'case B1/B2/B1/C1'],
        'case_B1/B2/C1':
            ['<', 2, 'tab:purple', 'case B1/B2/C1'],
        'case_B1/B2/C1/BB1':
            ['<', 2, 'black', 'case B1/B2/C1/BB1'],
        'case_B1/C2':
            ['<', 2, 'tab:cyan', 'case B1/C1'],
        'case_B2/B1':
            ['v', 2, 'tab:blue', 'case B2/B1'],
        'case_B2/B1/C1':
            ['v', 2, 'tab:green', 'case B2/B1/C1'],
        'case_B2/C1':
            ['v', 2, 'tab:orange', 'case B2/C1'],
        'case_B1/A2/B2/C1':
            ['v', 2, 'tab:red', 'case B1/A2/B2/C1'],
        'case_A2/B1/B2':
            ['v', 2, 'tab:pink', 'case A2/B1/B2'],
        'case_A1/B1/B2/C1':
            ['v', 2, 'tab:purple', 'case A1/B1/B2/C1'],
        'case_A1/B1/B2/B1/C1':
            ['v', 2, 'tab:olive', 'case A1/B1/B2/B1/C1'],
        'case_A1/B1/A2/B2/C1':
            ['v', 2, 'brown', 'case A1/B1/A2/B2/C1'],
        'case_A1/B2/C1':
            ['v', 2, 'yellow', 'case A1/B2/C1'],
        'case_A1/A2/B2/C1':
            ['v', 2, 'black', 'case A1/A2/B2/C1'],
        'case_A2/A1':
            ['v', 2, 'tab:gray', 'case A2/A1'],

        'None':
            ['x', 1, 'tab:red', 'failed'],
    },

    'termination_flag_3': {
        'H-rich_non_burning':
            ['v', 2, 'tab:orange', 'H-rich H non-burning'],
        'accreted_He_Core_H_burning':
            ['v', 2, 'black', 'accreted He core H burning'],
        'H-rich_Core_H_burning':
            ['s', 2, 'tab:olive', 'H-rich core H burning'],
        'H-rich_Shell_H_burning':
            ['s', 2, 'tab:red', 'H-rich shell H burning'],
        'H-rich_Core_C_burning':
            ['s', 2, 'tab:pink', 'H-rich core C burning'],
        'H-rich_Central_C_depletion':
            ['s', 2, 'tab:brown', 'H-rich central C depletion'],
        'H-rich_Core_He_burning':
            ['s', 2, 'tab:blue', 'H-rich core He burning'],
        'H-rich_Central_He_depleted':
            ['s', 2, 'tab:green', 'H-rich shell He burning'],
        'stripped_He_Core_He_burning':
            ['o', 2, 'tab:blue', 'stripped He-star core He burning'],
        'stripped_He_Central_He_depleted':
            ['o', 2, 'tab:green', 'stripped He-star shell He burning'],
        'stripped_He_Core_C_burning':
            ['o', 2, 'tab:pink', 'stripped He-star core C burning'],
        'stripped_He_Central_C_depletion':
            ['o', 2, 'tab:brown', 'stripped He-star C depletion'],
        'stripped_He_non_burning':
            ['o', 2, 'gray', 'stripped He-star non burning'],
        'stripped_He_Core_H_burning':
            ['x', 1, 'black', 'unknown'],
        'stripped_He_Shell_H_burning':
            ['x', 1, 'black', 'unknown'],
        'undetermined_evolutionary_state':
            ['x', 1, 'black', 'unknown'],
        'BH':
            ['*', 1, 'black', 'BH'],
        'NS':
            ['*', 1, 'tab:gray', 'NS'],
        'ignored_no_binary_history':
            ['s', 2, 'tab:olive', 'H-rich core H burning'],
        'ignored_no_RLO':
            ['s', 2, 'tab:olive', 'H-rich core H burning'],
    },
    'termination_flag_4': {
        'H-rich_non_burning':
            ['v', 2, 'tab:orange', 'H-rich H non-burning'],
        'accreted_He_Core_H_burning':
            ['v', 2, 'black', 'accreted He core H burning'],
        'H-rich_Core_H_burning':
            ['s', 2, 'tab:olive', 'H-rich core H burning'],
        'H-rich_Shell_H_burning':
            ['s', 2, 'tab:red', 'H-rich shell H burning'],
        'H-rich_Core_C_burning':
            ['s', 2, 'tab:pink', 'H-rich core C burning'],
        'H-rich_Central_C_depletion':
            ['s', 2, 'tab:brown', 'H-rich central C depletion'],
        'H-rich_Core_He_burning':
            ['s', 2, 'tab:blue', 'H-rich core He burning'],
        'H-rich_Near_Central_C_depletion':
            ['s', 2, 'tab:purple', 'H-rich near central C depletion'],
        'H-rich_Central_He_depleted':
            ['s', 2, 'tab:green', 'H-rich shell He burning'],
        'stripped_He_Core_He_burning':
            ['o', 2, 'tab:blue', 'stripped He-star core He burning'],
        'stripped_He_Central_He_depleted':
            ['o', 2, 'tab:green', 'stripped He-star shell He burning'],
        'stripped_He_Core_C_burning':
            ['o', 2, 'tab:pink', 'stripped He-star core C burning'],
        'stripped_He_Central_C_depletion':
            ['o', 2, 'tab:brown', 'stripped He-star C depletion'],
        'stripped_He_non_burning':
            ['o', 2, 'gray', 'stripped He-star non burning'],
        'stripped_He_Core_H_burning':
            ['x', 1, 'black', 'unknown'],
        'stripped_He_Shell_H_burning':
            ['x', 1, 'black', 'unknown'],
        'undetermined_evolutionary_state':
            ['x', 1, 'black', 'unknown'],
        'BH':
            ['*', 1, 'black', 'BH'],
        'NS':
            ['*', 1, 'tab:gray', 'NS'],
        'ignored_no_binary_history':
            ['s', 2, 'tab:olive', 'H-rich core H buring'],
        'ignored_no_RLO':
            ['s', 2, 'tab:olive', 'H-rich core H buring'],
    },

    'combined_TF12': {
        'Stable contact':
            ['s', 2, list_of_colors[3], 'Stable contact phase'],
        'Stable case A':
            ['s', 2, list_of_colors[2], 'Last stable RLOF during MS'],
        'Stable case B':
            ['s', 2, list_of_colors[1], 'Last stable RLOF during postMS'],
        'Stable case C':
            ['s', 2, list_of_colors[1], 'Last stable RLOF during postMS'],
        'Stable case BA':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        'Stable case BB':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        # hot fix for case AA should be removed later:
        'Stable case AA':
            ['s', 2, list_of_colors[2], 'Last stable RLOF during MS'],
        'Stable case AB':
            ['s', 2, list_of_colors[1], 'Last stable RLOF during postMS'],
        'Stable case AC':
            ['s', 2, list_of_colors[1], 'Last stable RLOF during postMS'],
        'Stable case An':
            ['s', 2, list_of_colors[1], 'Last stable RLOF during postMS'],
        'Stable case ABA':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        'Stable case ABB':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        'Stable case BC':
            ['s', 2, list_of_colors[1], 'Last stable RLOF during postMS'],
        'Stable case Bn':
            ['s', 2, list_of_colors[1], 'Last stable RLOF during postMS'],
        'Stable case BBA':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        'Stable case BBB':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        'Stable case Cn':
            ['s', 2, list_of_colors[1], 'Last stable RLOF during postMS'],
        'Stable case CBA':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        'Stable case CBB':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        'Stable case BABB':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        'Stable case BAn':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        'Stable case BBn':
            ['s', 2, list_of_colors[0], 'Last stable RLOF during stripped He star'],
        'Stable case n':
            ['s', 2, list_of_colors[1], 'Last stable RLOF while non burning'],
        'Unstable contact':
            ['D', 1, list_of_colors[3], 'Unstable contact phase'],
        'Unstable case A':
            ['D', 1, list_of_colors[2], 'Unstable RLOF during MS'],
        'Unstable case B':
            ['D', 1, list_of_colors[1], 'Unstable RLOF during postMS'],
        'Unstable case C':
            ['D', 1, list_of_colors[1], 'Unstable RLOF during postMS'],
        'Unstable case BA':
            ['D', 1, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case BB':
            ['D', 1, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case AB':
            ['D', 1, list_of_colors[1], 'Unstable RLOF during postMS'],
        'Unstable case AC':
            ['D', 1, list_of_colors[1], 'Unstable RLOF during postMS'],
        'Unstable case An':
            ['D', 1, list_of_colors[1], 'Unstable RLOF during postMS'],
        'Unstable case ABA':
            ['D', 1, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case ABB':
            ['D', 1, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case BC':
            ['D', 1, list_of_colors[1], 'Unstable RLOF during postMS'],
        'Unstable case Bn':
            ['D', 1, list_of_colors[1], 'Unstable RLOF during postMS'],
        'Unstable case BBA':
            ['D', 2, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case BBB':
            ['D', 2, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case Cn':
            ['D', 1, list_of_colors[1], 'Unstable RLOF during postMS'],
        'Unstable case CBA':
            ['D', 2, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case CBB':
            ['D', 2, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case BABB':
            ['D', 2, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case BAn':
            ['D', 2, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case BBn':
            ['D', 2, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Unstable case n':
            ['D', 2, list_of_colors[1],
             'Unstable RLOF while non burning'],
        'Unstable L2 RLOF':
            ['D', 1, list_of_colors[0],
             'Unstable RLOF during stripped He star'],
        'Initial RLOF':
            ['.', 1, 'black', 'Initial RLOF'],
        'no_RLOF':
            ['s', 2, 'lightgrey', 'no RLOF'],
        'Not converged':
            ['x', 1, 'red', 'Not converged'],
        'unknown':
            ['+', 1, 'green', 'unknown'],
        'Reverse stable MT':
            ['s', 2, 'tab:olive', 'Stable reverse mass-transfer phase'],
        'Reverse unstable MT':
            ['D', 1, 'tab:olive', 'Unstable reverse mass-transfer phase'],
        },
    'debug': {
        'terminate due to primary depleting carbon (inverse sn?)':
            ['s', 2, None, TF1_label_stable],
        'Primary has depleted central carbon':
            ['s', 2, None, TF1_label_stable],
        'Secondary has depleted central carbon':
            ['o', 2, None, TF1_label_stable],
        'Primary got stopped before central carbon depletion':
            ['s', 2, None, TF1_label_stable],
        'Secondary got stopped before central carbon depletion':
            ['o', 2, None, TF1_label_stable],
        'Primary enters pair-instability regime':
            ['s', 2, None, TF1_label_stable],
        'Secondary enters pair-instability regime':
            ['o', 2, None, TF1_label_stable],
        'Primary enters pulsational pair-instability regime':
            ['s', 2, None, TF1_label_stable],
        'Secondary enters pulsational pair-instability regime':
            ['o', 2, None, TF1_label_stable],
        'offcenter neon ignition for primary':
            ['s', 2, None, TF1_label_stable],
        'offcenter neon ignition for secondary':
            ['o', 2, None, TF1_label_stable],
        'overflow from L1 at ZAMS':
            ['.', 1.5, None, TF1_label_initial],
        'Terminate because of overflowing initial model':
            ['.', 1.5, None, TF1_label_initial],
        'overflow from L2 point for q>1 at ZAMS':
            ['.', 1.5, None, TF1_label_initial],
        'overflow from L2 surface for q<1 at ZAMS':
            ['.', 1.5, None, TF1_label_initial],
        'overflow from L2 surface for q>1 at ZAMS':
            ['.', 1.5, None, TF1_label_initial],
        'overflow from L2 surface for q<1':
            ['D', 1, None, TF1_label_unstable],
        r'overflow from L2 (D_L2) distance for q(=Macc/Mdon)>1, '
        'donor is star 1':
            ['D', 1, None, TF1_label_unstable],
        r'overflow from L2 (R_L2) surface for q(=Macc/Mdon)<1, '
        'donor is star 1':
            ['D', 1, None, TF1_label_unstable],
        r'overflow from L2 (R_L2) surface for q(=Macc/Mdon)>1, '
        'donor is star 1':
            ['D', 1, None, TF1_label_unstable],
        r'overflow from L2 (D_L2) distance for q(=Macc/Mdon)<1, '
        'donor is star 1':
            ['D', 1, None, TF1_label_unstable],
        'overflow from L2 (R_L2) surface for q(=Macc/Mdon)<1, '
        'donor is star 2':
            ['D', 1, None, TF1_label_unstable],
        'overflow from L2 (R_L2) surface for q(=Macc/Mdon)>1, '
        'donor is star 2':
            ['D', 1, None, TF1_label_unstable],
        'reached maximum mass transfer rate: 10.0d0':
            ['D', 1, None, TF1_label_unstable],
        'Reached maximum mass transfer rate: 1d-1':
            ['D', 1, None, TF1_label_unstable],
        'Reached the critical mt rate':
            ['D', 1, None, TF1_label_unstable],
        'Reached TPAGB':
            ['s', 2, None, TF1_label_initial],
        'Both stars fill their Roche Lobe and at least one of them is off MS':
            ['D', 1, None, TF1_label_unstable],
        'Both stars fill their Roche Lobe and t_kh > t_acc':
            ['D', 1, None, TF1_label_unstable],
        'overflow from L2, t_kh > t_acc and w > w_crit_lim, donor is star 1':
            ['D', 1, None, TF1_label_unstable],
        'overflow from L2, t_kh > t_acc and w > w_crit_lim, donor is star 2':
            ['D', 1, None, TF1_label_unstable],
        'Terminate due to L2 overflow during case A':
            ['D', 1, None, TF1_label_unstable],
        'Reached maximum mass transfer rate: Exceeded photon trapping radius':
            ['D', 1, None, TF1_label_unstable],
        'Terminate because accretor (r-rl)/rl > accretor_overflow_terminate':
            ['D', 1, None, TF1_label_unstable],
        'logQ_limit':
            ['x', 1, None, 'logQ_limit'],
        'logQ_min_limit':
            ['x', 1, None, 'logQ_limit'],
        'min_timestep_limit':
            ['x', 1, None, 'Not converged'],
        'reach cluster timelimit':
            ['x', 1, None, 'Not converged'],
        'no termination code':
            ['x', 1, None, 'no termination code'],
        'envelope_mass_limit':
            ['s', 2, None, TF1_label_stable],
        'gamma_center_limit':
            ['s', 2, None, TF1_label_stable],
        'max_age':
            ['s', 2, None, TF1_label_stable],
        'Initial RLOF':
            ['.', 1.5, 'black', TF1_label_initial],
        'Not converged':
            ['x', 1, None, 'Not converged'],
        'ignored_no_binary_history':
            ['.', 1.5, color_unstable, TF1_label_initial],
        'ignored_no_RLO':
            ['.', 1.5, color_unstable, TF1_label_initial],
        'forced_initial_RLO':
            ['.', 1.5, 'black', TF1_label_initial],
        'unknown':
            ['+', 1, 'green', 'unknown'],
        'fe_core_infall_limit':
            ['x', 1, None, 'fe_core_infall_limit'],
    },
    'interpolation_class': {
        'initial_MT':
            ['.', 2, 'black', 'initial_MT'],
        'no_MT':
            ['o', 2, 'tab:pink', 'no_MT'],
        'not_converged':
            ['o', 2, 'tab:red', 'not_converged'],
        'stable_MT':
            ['o', 2, 'tab:orange', 'stable_MT'],
        'unstable_MT':
            ['o', 2, 'tab:purple', 'unstable_MT']
    },
    'interpolation_class_errors': {
        'initial_MT':
            ['.', 1, 'black', 'initial_MT'],
        'no_MT':
            ['o', 2, None, 'no_MT'],
        'not_converged':
            ['x', 1, 'tab:red', 'not_converged'],
        'stable_MT':
            ['s', 2, None, 'stable_MT'],
        'unstable_MT':
            ['D', 1, None, 'unstable_MT']
    },
    'SN_type': {
        'CCSN':
            ['o', 2, 'tab:blue', 'CCSN'],
        'ECSN':
            ['o', 2, 'tab:orange', 'ECSN'],
        'PPISN':
            ['o', 2, 'tab:pink', 'PPISN'],
        'PISN':
            ['o', 2, 'tab:red', 'PISN'],
        'WD':
            ['o', 2, 'tab:purple', 'WD'],
        'None':
            ['o', 2, 'black', 'intial MT / unstable MT / not converged'],
    },
    'state': {
        'BH':
            ['o', 2, 'tab:blue', 'BH'],
        'NS':
            ['o', 2, 'tab:orange', 'NS'],
        'WD':
            ['o', 2, 'tab:purple', 'WD'],
        'PISN':
            ['o', 2, 'tab:red', 'PISN'],
        'None':
            ['o', 2, 'black', 'intial MT / unstable MT / not converged'],
    }
}

[docs] def add_flag_to_MARKERS_COLORS_LEGENDS(MARKERS_COLORS_LEGENDS, flag): """Add not pre defined stuff to DEFAULT_MARKERS_COLORS_LEGENDS. Parameters ---------- MARKERS_COLORS_LEGENDS : dict of lists Dictionary with flags as keys given a list with marker, size, color, and legend text for each flag. flag : str The flag itself. """ if flag not in MARKERS_COLORS_LEGENDS.keys(): if ('case_' in flag): # unknown MT flag if '1' not in flag: # only star 1 is donor s = 'o' elif '2' not in flag: # only star 2 is donor s = 's' elif flag[-1]=='1': # star 1 is last donor s = '>' elif flag[-1]=='2': # star 2 is last donor s = '<' else: s = 'v' if '/' in flag: # multiple mass transfers if (('case_A' in flag) or ('case_BA' in flag)): # first MT is case A or case BA c = 'tab:cyan' elif (('case_C' in flag) or ('case_BC' in flag)): # first MT is case C or case BC c = 'tab:orange' elif (('case_B' in flag) or ('case_BB' in flag)): # first MT is case B or case BB # (needs to be behind case BA and BC) c = 'tab:pink' else: c = 'lightgrey' elif 'BA' in flag: # only case BA c = 'tab:red' elif 'BB' in flag: # only case BB c = 'brown' elif 'BC' in flag: # only case BC c = 'tab:gray' elif 'A' in flag: # only case A c = 'tab:blue' elif 'B' in flag: # only case B c = 'tab:green' elif 'C' in flag: # only case C c = 'tab:purple' else: c = 'black' MARKERS_COLORS_LEGENDS[flag] = [s, 2, c, flag.replace('_',' ')] else: MARKERS_COLORS_LEGENDS[flag] = ['+', 1, 'black', flag.replace('_',' ')]
DEFAULT_LABELS = { # extra 'mass_ratio': [r'$q$', r'$\log_{10}(q)$'], 'Z_Zsun': [r'$Z \, [Z_\odot]$', r'$\log_{10}(Z / Z_\odot)$'], # history1/history2 'star_age': [r'$t \, [\mathrm{yr}]$', r'$\log_{10}(t / \mathrm{yr})$'], 'star_mass': [r'$M_\mathrm{\star} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{\star} / M_\odot)$'], 'he_core_mass': [r'$M_\mathrm{He-core} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{He-core} / M_\odot)$'], 'c_core_mass': [r'$M_\mathrm{C-core} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{C-core} / M_\odot)$'], 'o_core_mass': [r'$M_\mathrm{O-core} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{O-core} / M_\odot)$'], 'co_core_mass': [r'$M_\mathrm{CO-core} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{CO-core} / M_\odot)$'], 'he_core_radius': [r'$R_\mathrm{He-core} \, R_\odot$', r'$\log_{10}(R_\mathrm{He-core} / R_\odot)$'], 'c_core_radius': [r'$R_\mathrm{C-core} \, [M_\odot]$', r'$\log_{10}(R_\mathrm{C-core} / R_\odot)$'], 'o_core_radius': [r'$R_\mathrm{O-core} \, [M_\odot]$', r'$\log_{10}(R_\mathrm{O-core} / R_\odot)$'], 'co_core_radius': [r'$R_\mathrm{CO-core} \, [M_\odot]$', r'$\log_{10}(R_\mathrm{CO-core} / R_\odot)$'], 'center_h1': [r'${}^1H_\mathrm{center}$', r'$\log_{10}({}^1H_\mathrm{center})$'], 'center_he4': [r'${}^4He_\mathrm{center}$', r'$\log_{10}({}^4He_\mathrm{center})$'], 'center_c12': [r'${}^{12}C_\mathrm{center}$', r'$\log_{10}({}^{12}C_\mathrm{center})$'], 'center_n14': [r'${}^{14}N_\mathrm{center}$', r'$\log_{10}({}^{14}N_\mathrm{center})$'], 'center_o16': [r'${}^{16}O_\mathrm{center}$', r'$\log_{10}({}^{16}O_\mathrm{center})$'], 'surface_h1': [r'${}^1H_\mathrm{surface}$', r'$\log_{10}({}^1H_\mathrm{surface})$'], 'surface_he4': [r'${}^4He_\mathrm{surface}$', r'$\log_{10}({}^4He_\mathrm{surface})$'], 'surface_c12': [r'${}^{12}C_\mathrm{surface}$', r'$\log_{10}({}^{12}C_\mathrm{surface})$'], 'surface_n14': [r'${}^{14}N_\mathrm{surface}$', r'$\log_{10}({}^{14}N_\mathrm{surface})$'], 'surface_o16': [r'${}^{16}O_\mathrm{surface}$', r'$\log_{10}({}^{16}O_\mathrm{surface})$'], 'c12_c12': [r'$c12_c12\,[L_\odot]$', r'$\log_{10}(c12_c12/L_\odot)$'], 'log_LH': [r'$\log_{10}(L_\mathrm{H}/L_\odot)$', 'log_log_LH'], 'log_LHe': [r'$\log_{10}(L_\mathrm{He}/L_\odot)$', 'log_log_LHe'], 'log_LZ': [r'$\log_{10}(L_\mathrm{Z}/L_\odot)$', 'log_log_LZ'], 'log_Lnuc': [r'$\log_{10}(L_\mathrm{nuc}/L_\odot)$', 'log_log_Lnuc'], 'log_Teff': [r'$\log_{10}(T_\mathrm{eff}/\mathrm{K})$', 'log_log_Teff'], 'log_L': [r'$\log_{10}(L_\mathrm{surf}/L_\odot)$', 'log_log_Lsurf'], 'log_R': [r'$\log_{10}(R/R_\odot)$', r'$\log_{10}(\log_{10}(R/R_\odot))$'], 'center_gamma': ['center_gamma', 'log_center_gamma'], 'avg_c_in_c_core': ['avg_c_in_c_core', 'log_avg_c_in_c_core'], 'surf_avg_omega': [r'$\omega_\mathrm{s}\,[\mathrm{yr}^{-1}]$', r'$\log_{10}(\omega_\mathrm{s}/\mathrm{yr}^{-1})'], 'surf_avg_omega_div_omega_crit': [r'$(\omega_\mathrm{s}/\omega_\mathrm{s,crit})$', r'$\log_{10}(\omega_\mathrm{s}/\omega_\mathrm{s,crit})$'], 'total_moment_of_inertia': [r'$I_\mathrm{tot}\,[g\,\mathrm{cm}^{2}]$', r'$\log_{10}(I_\mathrm{tot}/(g\,\mathrm{cm}^{2}))$'], 'spin_parameter': [r'$a_\star$', r'$\log_{10}(a_\star)$'], 'log_total_angular_momentum': [r'$\log_{10}(J_\mathrm{tot}/(g\,\mathrm{cm}^{2}\mathrm{s}^{-1}]))$', 'log_log_total_angular_momentum'], 'conv_env_top_mass': [r'$M_\mathrm{top-conv-env}\,[M_\odot]$', r'$\log_{10}(M_\mathrm{top-conv-env}/M_\odot)$'], 'conv_env_bot_mass': [r'$M_\mathrm{bot-conv-env}\,[M_\odot]$', r'$\log_{10}(M_\mathrm{bot-conv-env}/M_\odot)$'], 'conv_env_top_radius': [r'$R_\mathrm{top-conv-env}\,[R_\odot]$', r'$\log_{10}(R_\mathrm{top-conv-env}/M_\odot)$'], 'conv_env_bot_radius': [r'$R_\mathrm{bot-conv-env}\,[R_\odot]$', r'$\log_{10}(R_\mathrm{bot-conv-env}/M_\odot)$'], 'conv_env_turnover_time_g': [r'$t^\mathrm{turnover-g}_{conv-env}\,[\mathrm{yr}]$', r'$\log_{10}(t^\mathrm{turnover-g}_{conv-env}/\mathrm{yr})$'], 'conv_env_turnover_time_l_b': [r'$t^\mathrm{turnover-l-b}_{conv-env}\,[\mathrm{yr}]$', r'$\log_{10}(t^\mathrm{turnover-l-b}_{conv-env}/\mathrm{yr})$'], 'conv_env_turnover_time_l_t': [r'$t^\mathrm{turnover-l-t}_{conv-env}\,[\mathrm{yr}]$', r'$\log_{10}(t^\mathrm{turnover-l-t}_{conv-env}/\mathrm{yr})$'], 'envelope_binding_energy': [r'$E_\mathrm{env}\,[\mathrm{erg}]$', r'$\log_{10}(E_\mathrm{env}/(\mathrm{erg})$'], 'mass_conv_reg_fortides': [r'$M_\mathrm{conv-reg}\,[M_\odot]$', r'$\log_{10}(M_\mathrm{conv-reg}/M_\odot)$'], 'thickness_conv_reg_fortides': [r'$dR_\mathrm{conv-reg}\,[R_\odot]$', r'$\log_{10}(dR_\mathrm{conv-reg}/R_\odot)$'], 'radius_conv_reg_fortides': [r'$R_\mathrm{conv-reg}\,[R_\odot]$', r'$\log_{10}(R_\mathrm{conv-reg}/R_\odot)$'], 'lambda_CE_1cent': [r'$\lambda_\mathrm{CE,1\%}$', r'$\log_{10}(\lambda_\mathrm{CE,1\%})$'], 'lambda_CE_10cent': [r'$\lambda_\mathrm{CE,10\%}$', r'$\log_{10}(\lambda_\mathrm{CE,10\%})$'], 'lambda_CE_30cent': [r'$\lambda_\mathrm{CE,30\%}$', r'$\log_{10}(\lambda_\mathrm{CE,30\%})$'], 'lambda_CE_pure_He_star_10cent': [r'$\lambda_\mathrm{CE-He-star,10\%}$', r'$\log_{10}(\lambda_\mathrm{CE-He-star,30\%})$'], # binary_history 'model_number': ['model_number', 'log_model_number'], 'age': [r'$t \, [\mathrm{yr}]$', r'$\log_{10}(t / \mathrm{yr})$'], 'star_1_mass': [r'$M_\mathrm{1} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{1} / M_\odot)$'], 'star_2_mass': [r'$M_\mathrm{2} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{2} / M_\odot)$'], 'period_days': [r'$P_\mathrm{orb} \, [\mathrm{days}]$', r'$\log_{10}(P_\mathrm{orb} / \mathrm{days})$'], 'binary_separation': [r'$A \, [R_\odot]$', r'$\log_{10}(A / R_\odot)$'], 'rl_relative_overflow_1': ['relative RL overflow 1', 'log10 relative RL overflow 1'], 'rl_relative_overflow_2': ['relative RL overflow 2', 'log10 relative RL overflow 2'], 'lg_mtransfer_rate': [r'$\log_{10}(\dot{M}/(M_\odot\,\mathrm{yr}^{-1}))$', 'log_log_mtransfer_rate'], 'lg_system_mdot_1': [r'$\log_{10}(\dot{M}_1/(M_\odot\,\mathrm{yr}^{-1}))$', 'log_log_system_mdot_1'], 'lg_system_mdot_2': [r'$\log_{10}(\dot{M}_2/(M_\odot\,\mathrm{yr}^{-1}))$', 'log_log_system_mdot_2'], 'lg_wind_mdot_1': [r'$\log_{10}(\dot{M}_\mathrm{1,wind}/(M_\odot\,\mathrm{yr}^{-1}))$', 'log_log_wind_mdot_1'], 'lg_wind_mdot_2': [r'$\log_{10}(\dot{M}_\mathrm{2,wind}/(M_\odot\,\mathrm{yr}^{-1}))$', 'log_log_wind_mdot_2'], 'lg_mstar_dot_1': [r'$\log_{10}(\dot{M}_\mathrm{\star,1}/(M_\odot\,\mathrm{yr}^{-1}))$', 'log_log_star_dot_1'], 'lg_mstar_dot_2': [r'$\log_{10}(\dot{M}_\mathrm{\star,2}/(M_\odot\,\mathrm{yr}^{-1}))$', 'log_log_star_dot_1'], 'xfer_fraction': ['xfer_fraction', 'log_xfer_fraction'], 'trap_radius': [r'$R_\mathrm{trap}\,[R_\odot]$', r'$\log_{10}(R_\mathrm{trap}/R_\odot$)'], 'acc_radius': [r'$R_\mathrm{acc}\,[\mathrm{cm}]$', r'$\log_{10}(R_\mathrm{acc}/\mathrm{cm})$'], 't_sync_rad_1': [r'$t^1_\mathrm{sync-rad}\,[\mathrm{s}]$', r'$\log_{10}(t^1_\mathrm{sync-rad}/\mathrm{s})$'], 't_sync_conv_1': [r'$t^1_\mathrm{conv}\,[\mathrm{s}]$', r'$\log_{10}(t^1_\mathrm{conv}/\mathrm{s})$'], 't_sync_rad_2': [r'$t^2_\mathrm{sync-rad}\,[\mathrm{s}]$', r'$\log_{10}(t^2_\mathrm{sync-rad}/\mathrm{s})$'], 't_sync_conv_2': [r'$t^2_\mathrm{conv}\,[\mathrm{s}]$', r'$\log_{10}(t^2_\mathrm{conv}/\mathrm{s})$'], # POSYDON population synthesis 'z_formation': [r'$z_\mathrm{formation}$', r'$\log_{10}(z_\mathrm{formation})$'], 'z_merger': [r'$z_\mathrm{merger}$', r'$\log_{10}(z_\mathrm{merger})$'], 'm_tot': [r'$m_\mathrm{tot}\,[M_\odot]$', r'$\log_{10}(m_\mathrm{tot}/M_\odot)$'], 'm_chirp': [r'$m_\mathrm{chirp}\,[M_\odot]$', r'$\log_{10}(m_\mathrm{chirp}/M_\odot)$',], 'q': [r'$q$', r'$\log_{10}(q)$'], 'chi_eff': [r'$\chi_\mathrm{eff}$', r'$\log_{10}(\chi_\mathrm{eff})$'], 'S1_mass': [r'$m_\mathrm{CO}\,[M_\odot]$', r'$\log_{10}(m_\mathrm{CO}/M_\odot)$'], 'S2_mass': [r'$m_\mathrm{CO}\,[M_\odot]$' r'$\log_{10}(m_\mathrm{CO}/M_\odot)$'], 'S1_spin': [r'$\chi_\mathrm{CO}$', r'$\log_{10}(\chi_\mathrm{CO}$)'], 'S2_spin': [r'$\chi_\mathrm{CO}$', r'$\log_{10}(\chi_\mathrm{CO}$)'], 'S1_E_GRB': [r'$E_\mathrm{GRB}\,[\mathrm{erg}]$', r'$\log_{10}(E_\mathrm{GRB}/\mathrm{erg})$'], 'S2_E_GRB': [r'$E_\mathrm{GRB}\,[\mathrm{erg}]$', r'$\log_{10}(E_\mathrm{GRB}/\mathrm{erg})$'], 'S1_E_GRB_iso': [r'$E^\mathrm{iso}_\mathrm{GRB}\,[\mathrm{erg}]$', r'$\log_{10}(E^\mathrm{iso}_\mathrm{GRB}/\mathrm{erg})$'], 'S2_E_GRB_iso': [r'$E^\mathrm{iso}_\mathrm{GRB}\,[\mathrm{erg}]$', r'$\log_{10}(E^\mathrm{iso}_\mathrm{GRB}/\mathrm{erg})$'], 'S1_L_GRB_iso': [r'$L^\mathrm{iso}_\mathrm{GRB}\,[\mathrm{erg}\,\mathrm{s}^{-1}]$', r'$\log_{10}(L^\mathrm{iso}_\mathrm{GRB}/\mathrm{erg}\,\mathrm{s}^{-1})$'], 'S2_L_GRB_iso': [r'$L^\mathrm{iso}_\mathrm{GRB}\,[\mathrm{erg}\,\mathrm{s}^{-1}]$', r'$\log_{10}(L^\mathrm{iso}_\mathrm{GRB}/\mathrm{erg}\,\mathrm{s}^{-1})$'], 'S1_f_beaming': [r'$f_\mathrm{beaming}$', r'$\log_{10}(f_\mathrm{beaming})$'], 'S2_f_beaming': [r'$f_\mathrm{beaming}$', r'$\log_{10}(f_\mathrm{beaming})$'], 'S1_eta' : [r'$\eta$', r'$\log_{10}(\eta)$'], 'S2_eta' : [r'$\eta$', r'$\log_{10}(\eta)$'], # Termination flags (one entry for each key in DEFAULT_MARKERS_COLORS_LEGENDS) 'termination_flag_1' : [r'MESA termination\_code', r'MESA termination\_code'], 'termination_flag_2' : [r'Mass transfer history', r'Mass transfer history'], 'termination_flag_3' : [r'Final stellar state of star 1', r'Final stellar state of star 1'], 'termination_flag_4' : [r'Final stellar state of star 2', r'Final stellar state of star 2'], 'combined_TF12' : [r'Final mass transfer state', r'Final mass transfer state'], 'debug' : [r'Final binary state', r'Final binary state'], 'interpolation_class' : [r'Interpolation class', r'Interpolation class'], 'interpolation_class_errors' : [r'Interpolation class', r'Interpolation class'], 'SN_type' : [r'Supernova type', r'Supernova type'], 'CO_type' : [r'Compact object type', r'Compact object type'], 'state' : [r'Remnant state', r'Remnant state'], } # add core collapse MODEL variables for i in range(1, 11): DEFAULT_LABELS[f'MODEL{i:02d}_mass'] = [r'$M_\mathrm{CO} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{CO} / M_\odot)$'] DEFAULT_LABELS[f'MODEL{i:02d}_spin'] = [r'$\chi_\mathrm{CO}$', r'$\log_{10}(\chi_\mathrm{CO})$'] DEFAULT_LABELS[f'MODEL{i:02d}_m_disk_accreted'] = [r'$M_\mathrm{disk, acc} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{disk, acc} / M_\odot)$'] DEFAULT_LABELS[f'MODEL{i:02d}_m_disk_radiated'] = [r'$M_\mathrm{disk, rad} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{disk, rad} / M_\odot)$'] DEFAULT_LABELS[f'MODEL{i:02d}_M4'] = [r'$M_4 [= m/M_\odot]_{s=4}$', r'$\log_{10}(M_4)$'] DEFAULT_LABELS[f'MODEL{i:02d}_mu4'] = [r'$\mu_4 \, [(dm/M_\odot)/(dr/1000\mathrm{km/s})]_{s=4}$', r'$\log_{10}(\mu_4)$'] DEFAULT_LABELS[f'MODEL{i:02d}_h1_mass_ej'] = [r'$M_\mathrm{H,ej} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{H,ej} / M_\odot)$'] DEFAULT_LABELS[f'MODEL{i:02d}_he4_mass_ej'] = [r'$M_\mathrm{He,ej} \, [M_\odot]$', r'$\log_{10}(M_\mathrm{He,ej} / M_\odot)$'] # pre defined plottings PRE_SET_PLOTS = { 'combined_TF12' : { 'plot_dir_name' : 'TF12', 'term_flag' : 'combined_TF12' }, 'termination_flag_1' : { 'plot_dir_name' : 'TF1', 'zvar' : 'lg_mtransfer_rate', 'zmin' : -8, 'zmax' : -1 }, 'termination_flag_2' : { 'plot_dir_name' : 'TF2', 'term_flag' : 'termination_flag_2' }, 'termination_flag_3' : { 'plot_dir_name' : 'TF3', 'term_flag' : 'termination_flag_3' }, 'termination_flag_4' : { 'plot_dir_name' : 'TF4', 'term_flag' : 'termination_flag_4' }, 'rl_relative_overflow_1' : { 'plot_dir_name' : 'debug_rl_1', 'zvar' : 'rl_relative_overflow_1', 'term_flag' : 'debug', 'zmin' : -0.5, 'zmax' : 0.5 }, 'rl_relative_overflow_2' : { 'plot_dir_name' : 'debug_rl_2', 'zvar' : 'rl_relative_overflow_2', 'term_flag' : 'debug', 'zmin' : -0.5, 'zmax' : 0.5 }, 'lg_mtransfer_rate' : { 'plot_dir_name' : 'debug_mt', 'zvar' : 'lg_mtransfer_rate', 'term_flag' : 'debug', 'zmin' : -8, 'zmax' : -1 }, # SN stuff 'S1_MODEL_DEFAULT_CO_type' : { 'zvar' : None, 'term_flag' : 'S1_MODEL01_CO_type' }, 'S1_MODEL_DEFAULT_SN_type' : { 'zvar' : None, 'term_flag' : 'S1_MODEL01_SN_type' }, 'S1_MODEL_DEFAULT_mass' : { 'zlog' : True, 'zmin' : 0., 'zmax' : 2. }, 'S1_MODEL_DEFAULT_spin' : { 'zmin' : 0., 'zmax' : 1. }, 'S1_MODEL_DEFAULT_m_disk_radiated' : { 'zmin' : 0., 'zmax' : 3. }, 'S1_MODEL_DEFAULT_M4' : { 'zmin' : 1., 'zmax' : 4. }, 'S1_MODEL_DEFAULT_mu4' : { 'zmin' : 0.0, 'zmax' : .5 }, 'S1_MODEL_DEFAULT_h1_mass_ej' : { 'zmin' : 0., 'zmax' : 20 }, 'S1_MODEL_DEFAULT_he4_mass_ej' : { 'zmin' : 0., 'zmax' : 20 }, # interpolator stuff 'INTERP_ERROR_DEFAULT' : { 'term_flag' : None, 'zmin' : 0., 'zmax' : 0.1 }, }