diff --git a/combined_multiple_plot_generator_scripts/general_plot_routine.py b/combined_multiple_plot_generator_scripts/general_plot_routine.py index c40a9fad0c6f7c66fc3fa37716c2644fd791abc1..95b53c903da8cf2706c68f512c318f92b6123212 100644 --- a/combined_multiple_plot_generator_scripts/general_plot_routine.py +++ b/combined_multiple_plot_generator_scripts/general_plot_routine.py @@ -21,7 +21,7 @@ import kippenhan_make_data_arrays as kipp_data_arrays import math as math import multiprocessing as mp from matplotlib.colors import TwoSlopeNorm - +import traceback def general_plot_routine(input_directory, output_directory, two_D_combined_pdf_filename, three_D_combined_pdf_filename, global_properties_x_axis_args, global_properties_plot_vars, @@ -113,7 +113,10 @@ def general_plot_routine(input_directory, output_directory, two_D_combined_pdf_f except KeyboardInterrupt: sys.exit() except: - print('***AN EXCEPTION OCCURED FOR ', var) + print('***AN EXCEPTION OCCURED FOR ', var, '*****') + print(' see traceback error below ::') + traceback.print_exc() + print(' ') # pool.close() # pool.join() @@ -134,30 +137,33 @@ def general_plot_routine(input_directory, output_directory, two_D_combined_pdf_f except KeyboardInterrupt: sys.exit() except: - print('***AN EXCEPTION OCCURED FOR ', lst) + print('***AN EXCEPTION OCCURED FOR ', lst, '*****') + print(' see traceback error below ::') + traceback.print_exc() + print(' ') pdf.close() print('Kippenhahn Plots PDF Created') def set_divider_value(divider_value): - if divider_value.lower() == 'none': + if str(divider_value).lower() == 'none': return 1 - elif divider_value.lower() == 'sec': + elif str(divider_value).lower() == 'sec': return 1/31536000 - elif divider_value.lower() == 'min': + elif str(divider_value).lower() == 'min': return 1/525600 - elif divider_value.lower() == 'hr': + elif str(divider_value).lower() == 'hr': return 1/8760 - elif divider_value.lower() == 'day': + elif str(divider_value).lower() == 'day': return 1/365 - elif divider_value.lower() == 'yr': + elif str(divider_value).lower() == 'yr': return 1 - elif divider_value.lower() == 'kyr': + elif str(divider_value).lower() == 'kyr': return 1e3 - elif divider_value.lower() == 'myr': + elif str(divider_value).lower() == 'myr': return 1e6 - elif divider_value.lower() == 'gyr': + elif str(divider_value).lower() == 'gyr': return 1e9 elif divider_value.lower() == 1: return 1 @@ -173,7 +179,7 @@ def make_2d_plot(a_attribute, x_axis_options, y_axis_dict, variable): fig = plt.figure(figsize=(12.8,9.6)) ax = fig.add_subplot(111) - if y_axis_dict[variable]['yaxis_label'].lower() == 'none': + if str(y_axis_dict[variable]['yaxis_label']).lower() == 'none': y_axis_label = variable else: y_axis_label = y_axis_dict[variable]['yaxis_label'] @@ -284,7 +290,7 @@ def make_3d_plot(input_dir, Kippenhahn_properties, ax = fig.add_subplot(111) bar_scheme = Kippenhahn_properties['color_bar_scheme_heatmap'] - if Kippenhahn_plot_vars[Kippenhahn_z_axis_variable]['colour_bar_name'].lower() == 'none': + if str(Kippenhahn_plot_vars[Kippenhahn_z_axis_variable]['colour_bar_name']).lower() == 'none': if Kippenhahn_z_axis_scale == 'log': bar_label = '$\\mathrm{LOG_{10}}$('+Kippenhahn_z_axis_variable+')' else: #elif Kippenhahn_z_axis_scale == 'linear': @@ -293,11 +299,11 @@ def make_3d_plot(input_dir, Kippenhahn_properties, bar_label = Kippenhahn_plot_vars[Kippenhahn_z_axis_variable]['colour_bar_name'] X, Y = np.meshgrid(c.xlist, c.ylist) - if Kippenhahn_properties['colorbar_min_val'].lower() != 'none': + if str(Kippenhahn_properties['colorbar_min_val']).lower() != 'none': colorbar_min_val = Kippenhahn_properties['colorbar_min_val'] else: colorbar_min_val = None - if Kippenhahn_properties['colorbar_max_val'].lower() != 'none': + if str(Kippenhahn_properties['colorbar_max_val']).lower() != 'none': colorbar_max_val = Kippenhahn_properties['colorbar_max_val'] else: colorbar_max_val = None @@ -323,18 +329,18 @@ def make_3d_plot(input_dir, Kippenhahn_properties, ax.ticklabel_format(axis='x', style=Kippenhahn_properties['x_axis_ticklabel_format'], scilimits=(0,0), useOffset=False) ax.ticklabel_format(axis='y', style=Kippenhahn_properties['y_axis_ticklabel_format'], scilimits=(0,0), useOffset=False) - if Kippenhahn_properties['x_axis_min_limit'].lower() != 'none' and Kippenhahn_properties['x_axis_max_limit'].lower() == 'none': + if str(Kippenhahn_properties['x_axis_min_limit']).lower() != 'none' and str(Kippenhahn_properties['x_axis_max_limit']).lower() == 'none': ax.set_xlim(left=Kippenhahn_properties['x_axis_min_limit']) - elif Kippenhahn_properties['x_axis_max_limit'].lower() != 'none' and Kippenhahn_properties['x_axis_min_limit'].lower() == 'none': + elif str(Kippenhahn_properties['x_axis_max_limit']).lower() != 'none' and str(Kippenhahn_properties['x_axis_min_limit']).lower() == 'none': ax.set_xlim(right=Kippenhahn_properties['x_axis_max_limit']) - elif Kippenhahn_properties['x_axis_min_limit'].lower() != 'none' and Kippenhahn_properties['x_axis_max_limit'].lower() != 'none': + elif str(Kippenhahn_properties['x_axis_min_limit']).lower() != 'none' and str(Kippenhahn_properties['x_axis_max_limit']).lower() != 'none': ax.set_xlim(left=Kippenhahn_properties['x_axis_min_limit'], right=Kippenhahn_properties['x_axis_max_limit']) - if Kippenhahn_properties['y_axis_min_limit'].lower() != 'none' and Kippenhahn_properties['y_axis_max_limit'].lower() == 'none': + if str(Kippenhahn_properties['y_axis_min_limit']).lower() != 'none' and str(Kippenhahn_properties['y_axis_max_limit']).lower() == 'none': ax.set_ylim(bottom=Kippenhahn_properties['y_axis_min_limit']) - elif Kippenhahn_properties['y_axis_max_limit'].lower() != 'none' and Kippenhahn_properties['y_axis_min_limit'].lower() == 'none': + elif str(Kippenhahn_properties['y_axis_max_limit']).lower() != 'none' and str(Kippenhahn_properties['y_axis_min_limit']).lower() == 'none': ax.set_ylim(top=Kippenhahn_properties['y_axis_max_limit']) - elif Kippenhahn_properties['y_axis_min_limit'].lower() != 'none' and Kippenhahn_properties['y_axis_max_limit'].lower() != 'none': + elif str(Kippenhahn_properties['y_axis_min_limit']).lower() != 'none' and str(Kippenhahn_properties['y_axis_max_limit']).lower() != 'none': ax.set_ylim(bottom=Kippenhahn_properties['y_axis_min_limit'], top=Kippenhahn_properties['y_axis_max_limit']) if Kippenhahn_properties['overlay_history_line'].lower() != 'none': @@ -400,11 +406,11 @@ def make_unity_comparison_plot(b_attribute, input_dir, Kippenhahn_properties, bar_scheme = Kippenhahn_properties['color_bar_scheme_heatmap'] X, Y = np.meshgrid(c.xlist, c.ylist) - if Kippenhahn_properties['colorbar_min_val'].lower() != 'none': + if str(Kippenhahn_properties['colorbar_min_val']).lower() != 'none': colorbar_min_val = Kippenhahn_properties['colorbar_min_val'] else: colorbar_min_val = None - if Kippenhahn_properties['colorbar_max_val'].lower() != 'none': + if str(Kippenhahn_properties['colorbar_max_val']).lower() != 'none': colorbar_max_val = Kippenhahn_properties['colorbar_max_val'] else: colorbar_max_val = None @@ -423,7 +429,7 @@ def make_unity_comparison_plot(b_attribute, input_dir, Kippenhahn_properties, ax.clabel(cs2, inline=True, fontsize=10) bar.add_lines(cs2) - if colour_bar_name.lower() != 'none': + if str(colour_bar_name).lower() != 'none': bar_label = colour_bar_name bar.set_label(bar_label) @@ -441,18 +447,18 @@ def make_unity_comparison_plot(b_attribute, input_dir, Kippenhahn_properties, ax.ticklabel_format(axis='x', style=Kippenhahn_properties['x_axis_ticklabel_format'], scilimits=(0,0), useOffset=False) ax.ticklabel_format(axis='y', style=Kippenhahn_properties['y_axis_ticklabel_format'], scilimits=(0,0), useOffset=False) - if Kippenhahn_properties['x_axis_min_limit'].lower() != 'none' and Kippenhahn_properties['x_axis_max_limit'].lower() == 'none': + if str(Kippenhahn_properties['x_axis_min_limit']).lower() != 'none' and str(Kippenhahn_properties['x_axis_max_limit']).lower() == 'none': ax.set_xlim(left=Kippenhahn_properties['x_axis_min_limit']) - elif Kippenhahn_properties['x_axis_max_limit'].lower() != 'none' and Kippenhahn_properties['x_axis_min_limit'].lower() == 'none': + elif str(Kippenhahn_properties['x_axis_max_limit']).lower() != 'none' and str(Kippenhahn_properties['x_axis_min_limit']).lower() == 'none': ax.set_xlim(right=Kippenhahn_properties['x_axis_max_limit']) - elif Kippenhahn_properties['x_axis_min_limit'].lower() != 'none' and Kippenhahn_properties['x_axis_max_limit'].lower() != 'none': + elif str(Kippenhahn_properties['x_axis_min_limit']).lower() != 'none' and str(Kippenhahn_properties['x_axis_max_limit']).lower() != 'none': ax.set_xlim(left=Kippenhahn_properties['x_axis_min_limit'], right=Kippenhahn_properties['x_axis_max_limit']) - if Kippenhahn_properties['y_axis_min_limit'].lower() != 'none' and Kippenhahn_properties['y_axis_max_limit'].lower() == 'none': + if str(Kippenhahn_properties['y_axis_min_limit']).lower() != 'none' and str(Kippenhahn_properties['y_axis_max_limit']).lower() == 'none': ax.set_ylim(bottom=Kippenhahn_properties['y_axis_min_limit']) - elif Kippenhahn_properties['y_axis_max_limit'].lower() != 'none' and Kippenhahn_properties['y_axis_min_limit'].lower() == 'none': + elif str(Kippenhahn_properties['y_axis_max_limit']).lower() != 'none' and str(Kippenhahn_properties['y_axis_min_limit']).lower() == 'none': ax.set_ylim(top=Kippenhahn_properties['y_axis_max_limit']) - elif Kippenhahn_properties['y_axis_min_limit'].lower() != 'none' and Kippenhahn_properties['y_axis_max_limit'].lower() != 'none': + elif str(Kippenhahn_properties['y_axis_min_limit']).lower() != 'none' and str(Kippenhahn_properties['y_axis_max_limit']).lower() != 'none': ax.set_ylim(bottom=Kippenhahn_properties['y_axis_min_limit'], top=Kippenhahn_properties['y_axis_max_limit']) if Kippenhahn_properties['overlay_history_line'].lower() != 'none': diff --git a/combined_multiple_plot_generator_scripts/historyreader.py b/combined_multiple_plot_generator_scripts/historyreader.py index 9b90d61521e9faa8d796c8c6c90475b21bed7687..d6de1ad739beeb87c7f0d05f8c014b2979d3421f 100644 --- a/combined_multiple_plot_generator_scripts/historyreader.py +++ b/combined_multiple_plot_generator_scripts/historyreader.py @@ -9,9 +9,9 @@ class HistoryReader: model_number_end = 'None', plot_columns='star_age star_mass'): - if model_number_start.lower() == 'none': + if str(model_number_start).lower() == 'none': model_number_start = 0 - if model_number_end.lower() == 'none': + if str(model_number_end).lower() == 'none': model_number_end = 1e12 self.file_name = file_name diff --git a/combined_multiple_plot_generator_scripts/kippenhan_data_read.py b/combined_multiple_plot_generator_scripts/kippenhan_data_read.py index 84a649eac5ff882834dccd63bcf4681c1bfdfe87..86523b9bb7680a626e455da2e03eb5870cc0e4d2 100644 --- a/combined_multiple_plot_generator_scripts/kippenhan_data_read.py +++ b/combined_multiple_plot_generator_scripts/kippenhan_data_read.py @@ -18,9 +18,9 @@ class Kipp_Data_Reader: model_number_end = 'None', ): - if model_number_start.lower() == 'none': + if str(model_number_start).lower() == 'none': model_number_start = 0 - if model_number_end.lower() == 'none': + if str(model_number_end).lower() == 'none': model_number_end = 1e12 self.profiles_paths = profiles_paths diff --git a/combined_multiple_plot_generator_scripts/kippenhan_make_data_arrays.py b/combined_multiple_plot_generator_scripts/kippenhan_make_data_arrays.py index dcdb1e10386723e5b07b9f168776a2e74ed89c17..3e64facbcb0a5e60a2e2eaed2085c4b88168a1e6 100644 --- a/combined_multiple_plot_generator_scripts/kippenhan_make_data_arrays.py +++ b/combined_multiple_plot_generator_scripts/kippenhan_make_data_arrays.py @@ -47,33 +47,33 @@ class Kippenhan_Make_Data_Arrays: #If logging y_axis: if self.z_axis_data_scale == 'log': - if self.z_axis_data_min_cutoff.lower() != 'none': + if str(self.z_axis_data_min_cutoff).lower() != 'none': if self.z_axis_data_min_cutoff_replacement < 1e0: self.z_axis_data_min_cutoff_replacement = 1e0 z_axis[z_axis < self.z_axis_data_min_cutoff] = self.z_axis_data_min_cutoff_replacement else: z_axis[z_axis < 0e0] = 1e0 - if self.z_axis_data_max_cutoff.lower() != 'none': + if str(self.z_axis_data_max_cutoff).lower() != 'none': z_axis[z_axis > self.z_axis_data_max_cutoff_replacement] = self.z_axis_data_max_cutoff_replacement z_axis = np.log10(z_axis) #else if linear y axis: elif self.z_axis_data_scale == 'symlog': - if self.z_axis_data_min_cutoff.lower() != 'none': + if str(self.z_axis_data_min_cutoff).lower() != 'none': z_axis[z_axis < self.z_axis_data_min_cutoff] = self.z_axis_data_min_cutoff_replacement - if self.z_axis_data_max_cutoff.lower() != 'none': + if str(self.z_axis_data_max_cutoff).lower() != 'none': z_axis[z_axis > self.z_axis_data_max_cutoff_replacement] = self.z_axis_data_max_cutoff_replacement z_axis = [0e0 if z >= -1e0 and z <= 1e0 else z for z in z_axis] z_axis = [np.log10(z) if z > 0e0 else z for z in z_axis] z_axis = [-np.log10(-z) if z < 0e0 else z for z in z_axis] else: - if self.z_axis_data_min_cutoff.lower() != 'none': + if str(self.z_axis_data_min_cutoff).lower() != 'none': z_axis[z_axis < self.z_axis_data_min_cutoff] = self.z_axis_data_min_cutoff_replacement - if self.z_axis_data_max_cutoff.lower() != 'none': + if str(self.z_axis_data_max_cutoff).lower() != 'none': z_axis[z_axis > self.z_axis_data_max_cutoff_replacement] = self.z_axis_data_max_cutoff_replacement - if self.x_axis_divide_by.lower() != 'none': + if str(self.x_axis_divide_by).lower() != 'none': x_axis = [x/self.x_axis_divide_by for x in x_axis] - if self.y_axis_divide_by.lower() != 'none': + if str(self.y_axis_divide_by).lower() != 'none': y_axis = [y/self.y_axis_divide_by for y in y_axis] all_ordered_y_points = sorted(list(set(y_axis)),reverse=False) #set() removes repeats, list() turns back into list, sorted(reverse=False) orders them in ascending size @@ -82,11 +82,11 @@ class Kippenhan_Make_Data_Arrays: reduced_y_points = all_ordered_y_points[::lin_selector] #creates a list with every nth element of all_ordered_y_points, nth = lin_selector x_axis_repeats_removed = list(dict.fromkeys(x_axis)) - if self.format_x_axis.lower() != 'none': + if str(self.format_x_axis).lower() != 'none': self.xlist = np.round(x_axis_repeats_removed, int(self.format_x_axis)) else: self.xlist = x_axis_repeats_removed - if self.format_y_axis.lower() != 'none': + if str(self.format_y_axis).lower() != 'none': self.ylist = np.round(reduced_y_points, int(self.format_y_axis)) else: self.ylist = reduced_y_points diff --git a/overproduction_plotters/Overproduction_comparison_graph.py b/overproduction_plotters/Overproduction_comparison_graph.py deleted file mode 100644 index 4c230fa1e70ff1f3639fb5add4902d085a126687..0000000000000000000000000000000000000000 --- a/overproduction_plotters/Overproduction_comparison_graph.py +++ /dev/null @@ -1,299 +0,0 @@ -import matplotlib.pyplot as plt -import numpy as np -import matplotlib.ticker as mticker -from matplotlib.lines import Line2D -import fastmesareader as fmr - -plotting_tings = 'ejected_h1 ejected_h2 ejected_h3 ejected_he3 ejected_he4 ejected_li6 ejected_li7 ejected_be7 ejected_be9 ejected_b8 ejected_b10 ejected_b11 ejected_c9 ejected_c11 ejected_c12 ejected_c13 ejected_n12 ejected_n13 ejected_n14 ejected_n15 ejected_o13 ejected_o14 ejected_o15 ejected_o16 ejected_o17 ejected_o18 ejected_f17 ejected_f18 ejected_f19 ejected_ne18 ejected_ne19 ejected_ne20 ejected_ne21 ejected_ne22 ejected_na20 ejected_na21 ejected_na22 ejected_na23 ejected_mg21 ejected_mg22 ejected_mg23 ejected_mg24 ejected_mg25 ejected_mg26 ejected_al23 ejected_al24 ejected_al25 ejected_al26 ejected_al27 ejected_si25 ejected_si26 ejected_si27 ejected_si28 ejected_si29 ejected_si30 ejected_p27 ejected_p28 ejected_p29 ejected_p30 ejected_p31 ejected_s29 ejected_s30 ejected_s31 ejected_s32 ejected_s33 ejected_s34 ejected_s35 ejected_s36 ejected_cl31 ejected_cl32 ejected_cl33 ejected_cl34 ejected_cl35 ejected_cl36 ejected_cl37 ejected_ar32 ejected_ar33 ejected_ar34 ejected_ar35 ejected_ar36 ejected_ar37 ejected_ar38 ejected_ar39 ejected_ar40 ejected_k35 ejected_k36 ejected_k37 ejected_k38 ejected_k39 ejected_k40 ejected_ca36 ejected_ca37 ejected_ca38 ejected_ca39 ejected_ca40 ejected_sc40' -h = fmr.FastMesaReader('LOGS/history.data', plotting_tings) -burst1_index = 13550 # the row of data in history.data to plot from. -burst2_index = 48070 # the row of data in history.data to plot from. - -fig = plt.figure(figsize=(12.8,9.6)) -ax = fig.add_subplot(111) - -x_centre_offset = -0.2 -y_offset_top = 0.5 - -# Burst 1 - -# H1 -H1 = (h.ejected_h1[burst1_index])/7.0945477357E-01 -ax.plot(1, H1, color='#0343df', marker='.', markersize=10) -ax.text(1+x_centre_offset, H1+H1*y_offset_top, 'H', fontsize=13) - -# He3=H3+He3 & He4 = B8+He4 -He3 = (h.ejected_h3[burst1_index]+h.ejected_he3[burst1_index])/8.4641515456E-05 -He4 = (h.ejected_b8[burst1_index]+h.ejected_he4[burst1_index])/2.7501644504E-01 -ax.plot((3,4),(He3,He4),linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(4+x_centre_offset, He4+He4*y_offset_top, 'He', fontsize=13) - -# Li7= Li7+Be7 -Li7 = (h.ejected_li7[burst1_index]+h.ejected_be7[burst1_index])/9.8556690166E-09 -ax.plot(7,Li7,color='#0343df',marker='.', markersize=10) -ax.text(7+x_centre_offset, Li7+Li7*y_offset_top, 'Li', fontsize=13) - -# C12 = N12+C12 & C13 = N13+O13+C13 -C12 = (h.ejected_n12[burst1_index]+h.ejected_c12[burst1_index])/2.3370919413E-03 -C13 = (h.ejected_n13[burst1_index]+h.ejected_o13[burst1_index]+h.ejected_c13[burst1_index])/2.8452149548E-05 -ax.plot((12,13),(C12,C13),linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(13+x_centre_offset, C13+C13*y_offset_top, 'C', fontsize=13) - -# N14 = O14+N14 & N15 = O15+N15 -N14 = (h.ejected_o14[burst1_index]+h.ejected_n14[burst1_index])/8.1299682160E-04 -N15 = (h.ejected_o15[burst1_index]+h.ejected_n15[burst1_index])/3.1966552925E-06 -ax.plot((14,15),(N14,N15),linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(15+x_centre_offset, N15+N15*y_offset_top, 'N', fontsize=13) - - -# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 -O16 = (h.ejected_o16[burst1_index])/6.8808895413E-03 -O17 = (h.ejected_f17[burst1_index]+h.ejected_o17[burst1_index])/2.7474252428E-06 -O18 = (h.ejected_f18[burst1_index]+h.ejected_ne18[burst1_index]+h.ejected_o18[burst1_index])/1.5531307205E-05 -ax.plot((16,17,18),(O16,O17,O18),linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(17+x_centre_offset, O17+O17*y_offset_top, 'O', fontsize=13) - -# F19 = Ne19+F19 -F19 = (h.ejected_ne19[burst1_index]+h.ejected_f19[burst1_index])/4.1844135602E-07 -ax.plot(19, F19, color='#0343df', marker='.', markersize=10) # F19 = Ne19+F19 -ax.text(19+x_centre_offset, F19+F19*y_offset_top, 'F', fontsize=13) - -# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 -Ne20 = (h.ejected_na20[burst1_index]+h.ejected_ne20[burst1_index])/1.6763950634E-03 -Ne21 = (h.ejected_na21[burst1_index]+h.ejected_mg21[burst1_index]+h.ejected_ne21[burst1_index])/4.2164622894E-06 -Ne22 = (h.ejected_mg22[burst1_index]+h.ejected_na22[burst1_index]+h.ejected_ne22[burst1_index])/1.3559077719E-04 -ax.plot((20,21,22),(Ne20,Ne21,Ne22),linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(21+x_centre_offset, Ne21-Ne21*y_offset_top, 'Ne', fontsize=13) - -# Na23 = Al23+Mg23+Na23 -Na23 = (h.ejected_al23[burst1_index]+h.ejected_mg23[burst1_index]+h.ejected_na23[burst1_index])/3.6352024324E-05 -ax.plot(23, Na23, color='#0343df', marker='.', markersize=10) -ax.text(23+x_centre_offset, Na23+Na23*y_offset_top, 'Na', fontsize=13) - -# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 -Mg24 = (h.ejected_al24[burst1_index]+h.ejected_mg24[burst1_index])/5.3250196132E-04 -Mg25 = (h.ejected_al25[burst1_index]+h.ejected_si25[burst1_index]+h.ejected_mg25[burst1_index])/7.0534596214E-05 -Mg26 = (h.ejected_mg26[burst1_index]+h.ejected_al26[burst1_index]+h.ejected_si26[burst1_index])/8.0477919874E-05 -ax.plot((24,25,26),(Mg24,Mg25,Mg26),linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(25+x_centre_offset, Mg25+Mg25*y_offset_top, 'Mg', fontsize=13) - -# Al27 = Si27+P27+Al27 -Al27 = (h.ejected_si27[burst1_index]+h.ejected_p27[burst1_index]+h.ejected_al27[burst1_index])/6.2568980455E-05 -ax.plot(27, Al27, color='#0343df', marker='.', markersize=10) -ax.text(27+x_centre_offset, Al27+Al27*y_offset_top, 'Al', fontsize=13) - -# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 -Si28 = (h.ejected_p28[burst1_index]+h.ejected_si28[burst1_index])/7.0715383917E-04 -Si29 = (h.ejected_p29[burst1_index]+h.ejected_s29[burst1_index]+h.ejected_si29[burst1_index])/3.7176525818E-05 -Si30 = (h.ejected_p30[burst1_index]+h.ejected_s30[burst1_index]+h.ejected_si30[burst1_index])/2.5392454637E-05 -ax.plot((28,29,30),(Si28,Si29,Si30),linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(29+x_centre_offset, Si29-Si29*y_offset_top, 'Si', fontsize=13) - -# P31 = S31+Cl31+P31 -P31 = (h.ejected_s31[burst1_index]+h.ejected_cl31[burst1_index]+h.ejected_p31[burst1_index])/7.0479812061E-06 -ax.plot(31, P31, color='#0343df', marker='.', markersize=10) -ax.text(31+x_centre_offset, P31-P31*y_offset_top, 'P', fontsize=13) - -# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 -S32 = (h.ejected_cl32[burst1_index]+h.ejected_ar32[burst1_index]+h.ejected_s32[burst1_index])/3.5061857535E-04 -S33 = (h.ejected_cl33[burst1_index]+h.ejected_ar33[burst1_index]+h.ejected_s33[burst1_index])/2.8564457061E-06 -S34 = (h.ejected_cl34[burst1_index]+h.ejected_ar34[burst1_index]+h.ejected_s34[burst1_index])/1.6577684516E-05 -ax.plot((32,33,34),(S32,S33,S34),linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(33+x_centre_offset, S33-S33*y_offset_top, 'S', fontsize=13) - - -# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 -Cl35 = (h.ejected_ar35[burst1_index]+h.ejected_k35[burst1_index]+h.ejected_s35[burst1_index]+h.ejected_cl35[burst1_index])/3.7581928546E-06 -Cl37 = (h.ejected_ar37[burst1_index]+h.ejected_k37[burst1_index]+h.ejected_ca37[burst1_index]+h.ejected_cl37[burst1_index])/1.2668835242E-06 -ax.plot((35,37),(Cl35,Cl37),linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(37+x_centre_offset, Cl37+Cl37*y_offset_top, 'Cl', fontsize=13) - -# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 -Ar36 = (h.ejected_k36[burst1_index]+h.ejected_ca36[burst1_index]+h.ejected_ar36[burst1_index]+h.ejected_cl36[burst1_index])/7.7311395865E-05 -Ar38 = (h.ejected_k38[burst1_index]+h.ejected_ca38[burst1_index]+h.ejected_ar38[burst1_index])/1.4884854207E-05 -ax.plot((36,38),(Ar36,Ar38),linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(38+x_centre_offset, Ar38-Ar38*y_offset_top, 'Ar', fontsize=13) - -# K39 = Ca39+K39+Ar39 -K39 = (h.ejected_ca39[burst1_index]+h.ejected_k39[burst1_index]+h.ejected_ar39[burst1_index])/3.7390184012E-06 -ax.plot(39,K39,linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(39+x_centre_offset, K39-K39*y_offset_top, 'K', fontsize=13) - -# Ca40 = Sc40+K40+Ca40 -Ca40 = (h.ejected_ca40[burst1_index]+h.ejected_k40[burst1_index]+h.ejected_sc40[burst1_index])/6.4097458307E-05 -ax.plot(40,Ca40,linewidth='1',color='#0343df',marker='.', markersize=10) -ax.text(40+x_centre_offset, Ca40+Ca40*y_offset_top, 'Ca', fontsize=13) - -# Burst 2 - -# H1 -H1 = (h.ejected_h1[burst2_index])/7.0945477357E-01 -ax.plot(1, H1, color='#e50000', marker='.', markersize=10) - -# He3=H3+He3 & He4 = B8+He4 -He3 = (h.ejected_h3[burst2_index]+h.ejected_he3[burst2_index])/8.4641515456E-05 -He4 = (h.ejected_b8[burst2_index]+h.ejected_he4[burst2_index])/2.7501644504E-01 -ax.plot((3,4),(He3,He4),linewidth='1',color='#e50000',marker='.', markersize=10) - -# Li7= Li7+Be7 -Li7 = (h.ejected_li7[burst2_index]+h.ejected_be7[burst2_index])/9.8556690166E-09 -ax.plot(7,Li7,color='#e50000',marker='.', markersize=10) - -# C12 = N12+C12 & C13 = N13+O13+C13 -C12 = (h.ejected_n12[burst2_index]+h.ejected_c12[burst2_index])/2.3370919413E-03 -C13 = (h.ejected_n13[burst2_index]+h.ejected_o13[burst2_index]+h.ejected_c13[burst2_index])/2.8452149548E-05 -ax.plot((12,13),(C12,C13),linewidth='1',color='#e50000',marker='.', markersize=10) - -# N14 = O14+N14 & N15 = O15+N15 -N14 = (h.ejected_o14[burst2_index]+h.ejected_n14[burst2_index])/8.1299682160E-04 -N15 = (h.ejected_o15[burst2_index]+h.ejected_n15[burst2_index])/3.1966552925E-06 -ax.plot((14,15),(N14,N15),linewidth='1',color='#e50000',marker='.', markersize=10) - - -# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 -O16 = (h.ejected_o16[burst2_index])/6.8808895413E-03 -O17 = (h.ejected_f17[burst2_index]+h.ejected_o17[burst2_index])/2.7474252428E-06 -O18 = (h.ejected_f18[burst2_index]+h.ejected_ne18[burst2_index]+h.ejected_o18[burst2_index])/1.5531307205E-05 -ax.plot((16,17,18),(O16,O17,O18),linewidth='1',color='#e50000',marker='.', markersize=10) - -# F19 = Ne19+F19 -F19 = (h.ejected_ne19[burst2_index]+h.ejected_f19[burst2_index])/4.1844135602E-07 -ax.plot(19, F19, color='#e50000', marker='.', markersize=10) # F19 = Ne19+F19 - -# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 -Ne20 = (h.ejected_na20[burst2_index]+h.ejected_ne20[burst2_index])/1.6763950634E-03 -Ne21 = (h.ejected_na21[burst2_index]+h.ejected_mg21[burst2_index]+h.ejected_ne21[burst2_index])/4.2164622894E-06 -Ne22 = (h.ejected_mg22[burst2_index]+h.ejected_na22[burst2_index]+h.ejected_ne22[burst2_index])/1.3559077719E-04 -ax.plot((20,21,22),(Ne20,Ne21,Ne22),linewidth='1',color='#e50000',marker='.', markersize=10) - -# Na23 = Al23+Mg23+Na23 -Na23 = (h.ejected_al23[burst2_index]+h.ejected_mg23[burst2_index]+h.ejected_na23[burst2_index])/3.6352024324E-05 -ax.plot(23, Na23, color='#e50000', marker='.', markersize=10) - -# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 -Mg24 = (h.ejected_al24[burst2_index]+h.ejected_mg24[burst2_index])/5.3250196132E-04 -Mg25 = (h.ejected_al25[burst2_index]+h.ejected_si25[burst2_index]+h.ejected_mg25[burst2_index])/7.0534596214E-05 -Mg26 = (h.ejected_mg26[burst2_index]+h.ejected_al26[burst2_index]+h.ejected_si26[burst2_index])/8.0477919874E-05 -ax.plot((24,25,26),(Mg24,Mg25,Mg26),linewidth='1',color='#e50000',marker='.', markersize=10) - -# Al27 = Si27+P27+Al27 -Al27 = (h.ejected_si27[burst2_index]+h.ejected_p27[burst2_index]+h.ejected_al27[burst2_index])/6.2568980455E-05 -ax.plot(27, Al27, color='#e50000', marker='.', markersize=10) - -# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 -Si28 = (h.ejected_p28[burst2_index]+h.ejected_si28[burst2_index])/7.0715383917E-04 -Si29 = (h.ejected_p29[burst2_index]+h.ejected_s29[burst2_index]+h.ejected_si29[burst2_index])/3.7176525818E-05 -Si30 = (h.ejected_p30[burst2_index]+h.ejected_s30[burst2_index]+h.ejected_si30[burst2_index])/2.5392454637E-05 -ax.plot((28,29,30),(Si28,Si29,Si30),linewidth='1',color='#e50000',marker='.', markersize=10) - -# P31 = S31+Cl31+P31 -P31 = (h.ejected_s31[burst2_index]+h.ejected_cl31[burst2_index]+h.ejected_p31[burst2_index])/7.0479812061E-06 -ax.plot(31, P31, color='#e50000', marker='.', markersize=10) - -# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 -S32 = (h.ejected_cl32[burst2_index]+h.ejected_ar32[burst2_index]+h.ejected_s32[burst2_index])/3.5061857535E-04 -S33 = (h.ejected_cl33[burst2_index]+h.ejected_ar33[burst2_index]+h.ejected_s33[burst2_index])/2.8564457061E-06 -S34 = (h.ejected_cl34[burst2_index]+h.ejected_ar34[burst2_index]+h.ejected_s34[burst2_index])/1.6577684516E-05 -ax.plot((32,33,34),(S32,S33,S34),linewidth='1',color='#e50000',marker='.', markersize=10) - - -# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 -Cl35 = (h.ejected_ar35[burst2_index]+h.ejected_k35[burst2_index]+h.ejected_s35[burst2_index]+h.ejected_cl35[burst2_index])/3.7581928546E-06 -Cl37 = (h.ejected_ar37[burst2_index]+h.ejected_k37[burst2_index]+h.ejected_ca37[burst2_index]+h.ejected_cl37[burst2_index])/1.2668835242E-06 -ax.plot((35,37),(Cl35,Cl37),linewidth='1',color='#e50000',marker='.', markersize=10) - -# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 -Ar36 = (h.ejected_k36[burst2_index]+h.ejected_ca36[burst2_index]+h.ejected_ar36[burst2_index]+h.ejected_cl36[burst2_index])/7.7311395865E-05 -Ar38 = (h.ejected_k38[burst2_index]+h.ejected_ca38[burst2_index]+h.ejected_ar38[burst2_index])/1.4884854207E-05 -ax.plot((36,38),(Ar36,Ar38),linewidth='1',color='#e50000',marker='.', markersize=10) - -# K39 = Ca39+K39+Ar39 -K39 = (h.ejected_ca39[burst2_index]+h.ejected_k39[burst2_index]+h.ejected_ar39[burst2_index])/3.7390184012E-06 -ax.plot(39,K39,linewidth='1',color='#e50000',marker='.', markersize=10) - -# Ca40 = Sc40+K40+Ca40 -Ca40 = (h.ejected_ca40[burst2_index]+h.ejected_k40[burst2_index]+h.ejected_sc40[burst2_index])/6.4097458307E-05 -ax.plot(40,Ca40,linewidth='1',color='#e50000',marker='.', markersize=10) - - -legend_elements = [Line2D([0], [0], marker='.', color='#0343df', label='Outburst 1', - markersize=10), - Line2D([0], [0], marker='.', color='#e50000', label='Outburst 4', - markersize=10)] -ax.legend(handles=legend_elements, frameon=False, loc='lower right',prop={'size': 18}) - - -# legend_elements = [Line2D([0], [0], marker='.', color='#0343df', label='Burst 1', -# markersize=5)] -# ax.legend(handles=legend_elements, loc='lower right') - -ax.set_xscale('linear') -ax.set_yscale('log') -ax.set_xlim(0,41) -ax.set_yticks([1e-10,1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10]) #replaces tick labels from '10^x' to 'x' -ax.set_yticklabels(['-10','-9','-8','-7','-6','-5','-4','-3','-2','-1','0','1','2','3','4','5','6','7','8','9','10']) #replaces tick labels from '10^x' to 'x' -ax.tick_params(axis='x', labelsize=16) -ax.tick_params(axis='y', labelsize=16) -ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) -ax.grid(which='major', linestyle=':', linewidth='1') -plt.minorticks_on() -ax.grid(which='minor', linestyle=':', linewidth='0.4') -ax.hlines(1, 0, 50, color='#000000', linestyle='--', linewidth=0.5) - -ax.set_xlabel('Mass Number', fontsize=20) -ax.set_ylabel('Mean Overproduction Factor $\\mathrm{Log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) -# ax.set_ylabel('Mean Overproduction Factor $\\mathrm{\\frac{X_{i}}{X_{i,\\odot}}}$', fontsize=16) - - -plt.show() -# plt.savefig('overproduction_comparison_plot.pdf', dpi=500) - - - - - - -# Elements not considered when graphing due to not being interested in their abundance -# h2 - Stable -# li6 - Stable -# be9 - Stable -# b10 - Stable -# b11 - Stable -# c9 - decays to B9 which decyas to Be9 which we're not interested in -# c11 - T1/2 = 30.364 min, decays to B11 which we're not interested in -# s36 - Stable -# ar40 - Stable - - - -# Solar Composition Values: -# Taken from Lodders09.data within $MESA_dir/data/chem_data/Lodders09.data -# H1 = 7.0945477357E-01 -# He3 = 8.4641515456E-05 -# He4 = 2.7501644504E-01 -# Li7 = 9.8556690166E-09 -# C12 = 2.3370919413E-03 -# C13 = 2.8452149548E-05 -# N14 = 8.1299682160E-04 -# N15 = 3.1966552925E-06 -# O16 = 6.8808895413E-03 -# O17 = 2.7474252428E-06 -# O18 = 1.5531307205E-05 -# F19 = 4.1844135602E-07 -# Ne21 = 4.2164622894E-06 -# Na23 = 3.6352024324E-05 -# Mg24 = 5.3250196132E-04 -# Mg25 = 7.0534596214E-05 -# Al27 = 6.2568980455E-05 -# Si29 = 3.7176525818E-05 -# Si30 = 2.5392454637E-05 -# P31 = 7.0479812061E-06 -# S32 = 3.5061857535E-04 -# S33 = 2.8564457061E-06 -# S34 = 1.6577684516E-05 -# Cl35 = 3.7581928546E-06 -# Cl37 = 1.2668835242E-06 -# Ar36 = 7.7311395865E-05 -# Ar38 = 1.4884854207E-05 -# K39 = 3.7390184012E-06 -# Ca40 = 6.4097458307E-05 \ No newline at end of file diff --git a/overproduction_plotters/Overproduction_comparison_graph_Asplund09.py b/overproduction_plotters/Overproduction_comparison_graph_Asplund09.py new file mode 100644 index 0000000000000000000000000000000000000000..3f0d9348e716270fc01e1e0b86f4422527150ca7 --- /dev/null +++ b/overproduction_plotters/Overproduction_comparison_graph_Asplund09.py @@ -0,0 +1,396 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +from matplotlib.lines import Line2D +import fastmesareader as fmr + +plotting_tings = 'ejected_h1 ejected_h2 ejected_h3 ejected_he3 ejected_he4 ejected_li6 ejected_li7 ejected_be7 ejected_be9 ejected_b8 ejected_b10 ejected_b11 ejected_c9 ejected_c11 ejected_c12 ejected_c13 ejected_n12 ejected_n13 ejected_n14 ejected_n15 ejected_o13 ejected_o14 ejected_o15 ejected_o16 ejected_o17 ejected_o18 ejected_f17 ejected_f18 ejected_f19 ejected_ne18 ejected_ne19 ejected_ne20 ejected_ne21 ejected_ne22 ejected_na20 ejected_na21 ejected_na22 ejected_na23 ejected_mg21 ejected_mg22 ejected_mg23 ejected_mg24 ejected_mg25 ejected_mg26 ejected_al23 ejected_al24 ejected_al25 ejected_al26 ejected_al27 ejected_si25 ejected_si26 ejected_si27 ejected_si28 ejected_si29 ejected_si30 ejected_p27 ejected_p28 ejected_p29 ejected_p30 ejected_p31 ejected_s29 ejected_s30 ejected_s31 ejected_s32 ejected_s33 ejected_s34 ejected_s35 ejected_s36 ejected_cl31 ejected_cl32 ejected_cl33 ejected_cl34 ejected_cl35 ejected_cl36 ejected_cl37 ejected_ar32 ejected_ar33 ejected_ar34 ejected_ar35 ejected_ar36 ejected_ar37 ejected_ar38 ejected_ar39 ejected_ar40 ejected_k35 ejected_k36 ejected_k37 ejected_k38 ejected_k39 ejected_k40 ejected_ca36 ejected_ca37 ejected_ca38 ejected_ca39 ejected_ca40 ejected_sc40' +h = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +burst2_index = -1 # the row of data in history.data to plot from. +burst1_index = -1 # the row of data in history.data to plot from. + + +fig, ax = plt.subplots(2, 1, sharex=True, figsize=(12.8,14.4), gridspec_kw={'height_ratios': [2, 1]}) +fig.subplots_adjust(hspace=0) +fig.tight_layout() +plt.gcf().subplots_adjust(hspace=0,bottom=0.05, left=0.12) + +x_centre_offset = -0.2 +y_offset_top = 0.5 +y_offset_bot = 0.7 + + +# From Asplund et. al. 2009 +H1_solar_mass_frac = 0.738085238 +He3_solar_mass_frac = 4.1251e-05 +He4_solar_mass_frac = 0.248458749 +Li7_solar_mass_frac = 5.347553867866217e-11 +C12_solar_mass_frac = 0.0023479921849246885 +C13_solar_mass_frac = 2.6264022162801824e-05 +N14_solar_mass_frac = 0.0006943429738573174 +N15_solar_mass_frac = 1.5936949716182629e-06 +O16_solar_mass_frac = 0.005745050422480951 +O17_solar_mass_frac = 2.182566435670741e-06 +O18_solar_mass_frac = 1.1517500979792827e-05 +F19_solar_mass_frac = 5.070647693536659e-07 +Ne20_solar_mass_frac = 0.0011625972594930384 +Ne21_solar_mass_frac = 2.7869381311259143e-06 +Ne22_solar_mass_frac = 8.548569964958532e-05 +Na23_solar_mass_frac = 2.9368444780430237e-05 +Mg24_solar_mass_frac = 0.0005544455826402614 +Mg25_solar_mass_frac = 7.019187019119655e-05 +Mg26_solar_mass_frac = 7.72812490805074e-05 +Al27_solar_mass_frac = 5.5900159597141475e-05 +Si28_solar_mass_frac = 0.0006137862206959798 +Si29_solar_mass_frac = 3.116657246812484e-05 +Si30_solar_mass_frac = 2.054523456687628e-05 +P31_solar_mass_frac = 5.852484710740299e-06 +S32_solar_mass_frac = 0.0002941173102666167 +S33_solar_mass_frac = 2.354673504715355e-06 +S34_solar_mass_frac = 1.3291512283195887e-05 +Cl35_solar_mass_frac = 6.160022812039695e-06 +Cl37_solar_mass_frac = 1.9688011679546237e-06 +Ar36_solar_mass_frac = 5.618233360211754e-05 +Ar38_solar_mass_frac = 1.021494559543339e-05 +K39_solar_mass_frac = 2.85828500433324e-06 +Ca40_solar_mass_frac = 6.230278628930155e-05 + + + +# Burst 2 + +# H1 +H1_2 = (h.ejected_h1[burst2_index])/H1_solar_mass_frac +ax[0].plot(1, H1_2, color='black', marker='^', markersize=8) + +# He3=H3+He3 & He4 = B8+He4 +He3_2 = (h.ejected_h3[burst2_index]+h.ejected_he3[burst2_index])/He3_solar_mass_frac +He4_2 = (h.ejected_b8[burst2_index]+h.ejected_he4[burst2_index])/He4_solar_mass_frac +ax[0].plot((3,4),(He3_2,He4_2),linewidth='1',color='black',marker='^', markersize=8) + +# Li7= Li7+Be7 +Li7_2 = (h.ejected_li7[burst2_index]+h.ejected_be7[burst2_index])/Li7_solar_mass_frac +ax[0].plot(7,Li7_2,color='black',marker='^', markersize=8) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_2 = (h.ejected_n12[burst2_index]+h.ejected_c12[burst2_index])/C12_solar_mass_frac +C13_2 = (h.ejected_n13[burst2_index]+h.ejected_o13[burst2_index]+h.ejected_c13[burst2_index])/C13_solar_mass_frac +ax[0].plot((12,13),(C12_2,C13_2),linewidth='1',color='black',marker='^', markersize=8) + +# N14 = O14+N14 & N15 = O15+N15 +N14_2 = (h.ejected_o14[burst2_index]+h.ejected_n14[burst2_index])/N14_solar_mass_frac +N15_2 = (h.ejected_o15[burst2_index]+h.ejected_n15[burst2_index])/N15_solar_mass_frac +ax[0].plot((14,15),(N14_2,N15_2),linewidth='1',color='black',marker='^', markersize=8) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_2 = (h.ejected_o16[burst2_index])/O16_solar_mass_frac +O17_2 = (h.ejected_f17[burst2_index]+h.ejected_o17[burst2_index])/O17_solar_mass_frac +O18_2 = (h.ejected_f18[burst2_index]+h.ejected_ne18[burst2_index]+h.ejected_o18[burst2_index])/O18_solar_mass_frac +ax[0].plot((16,17,18),(O16_2,O17_2,O18_2),linewidth='1',color='black',marker='^', markersize=8) + +# F19 = Ne19+F19 +F19_2 = (h.ejected_ne19[burst2_index]+h.ejected_f19[burst2_index])/F19_solar_mass_frac +ax[0].plot(19, F19_2, color='black', marker='^', markersize=8) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_2 = (h.ejected_na20[burst2_index]+h.ejected_ne20[burst2_index])/Ne20_solar_mass_frac +Ne21_2 = (h.ejected_na21[burst2_index]+h.ejected_mg21[burst2_index]+h.ejected_ne21[burst2_index])/Ne21_solar_mass_frac +Ne22_2 = (h.ejected_mg22[burst2_index]+h.ejected_na22[burst2_index]+h.ejected_ne22[burst2_index])/Ne22_solar_mass_frac +ax[0].plot((20,21,22),(Ne20_2,Ne21_2,Ne22_2),linewidth='1',color='black',marker='^', markersize=8) + +# Na23 = Al23+Mg23+Na23 +Na23_2 = (h.ejected_al23[burst2_index]+h.ejected_mg23[burst2_index]+h.ejected_na23[burst2_index])/Na23_solar_mass_frac +ax[0].plot(23, Na23_2, color='black', marker='^', markersize=8) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_2 = (h.ejected_al24[burst2_index]+h.ejected_mg24[burst2_index])/Mg24_solar_mass_frac +Mg25_2 = (h.ejected_al25[burst2_index]+h.ejected_si25[burst2_index]+h.ejected_mg25[burst2_index])/Mg25_solar_mass_frac +Mg26_2 = (h.ejected_mg26[burst2_index]+h.ejected_al26[burst2_index]+h.ejected_si26[burst2_index])/Mg26_solar_mass_frac +ax[0].plot((24,25,26),(Mg24_2,Mg25_2,Mg26_2),linewidth='1',color='black',marker='^', markersize=8) + +# Al27 = Si27+P27+Al27 +Al27_2 = (h.ejected_si27[burst2_index]+h.ejected_p27[burst2_index]+h.ejected_al27[burst2_index])/Al27_solar_mass_frac +ax[0].plot(27, Al27_2, color='black', marker='^', markersize=8) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_2 = (h.ejected_p28[burst2_index]+h.ejected_si28[burst2_index])/Si28_solar_mass_frac +Si29_2 = (h.ejected_p29[burst2_index]+h.ejected_s29[burst2_index]+h.ejected_si29[burst2_index])/Si29_solar_mass_frac +Si30_2 = (h.ejected_p30[burst2_index]+h.ejected_s30[burst2_index]+h.ejected_si30[burst2_index])/Si30_solar_mass_frac +ax[0].plot((28,29,30),(Si28_2,Si29_2,Si30_2),linewidth='1',color='black',marker='^', markersize=8) + +# P31 = S31+Cl31+P31 +P31_2 = (h.ejected_s31[burst2_index]+h.ejected_cl31[burst2_index]+h.ejected_p31[burst2_index])/P31_solar_mass_frac +ax[0].plot(31, P31_2, color='black', marker='^', markersize=8) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_2 = (h.ejected_cl32[burst2_index]+h.ejected_ar32[burst2_index]+h.ejected_s32[burst2_index])/S32_solar_mass_frac +S33_2 = (h.ejected_cl33[burst2_index]+h.ejected_ar33[burst2_index]+h.ejected_s33[burst2_index])/S33_solar_mass_frac +S34_2 = (h.ejected_cl34[burst2_index]+h.ejected_ar34[burst2_index]+h.ejected_s34[burst2_index])/S34_solar_mass_frac +ax[0].plot((32,33,34),(S32_2,S33_2,S34_2),linewidth='1',color='black',marker='^', markersize=8) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_2 = (h.ejected_ar35[burst2_index]+h.ejected_k35[burst2_index]+h.ejected_s35[burst2_index]+h.ejected_cl35[burst2_index])/Cl35_solar_mass_frac +Cl37_2 = (h.ejected_ar37[burst2_index]+h.ejected_k37[burst2_index]+h.ejected_ca37[burst2_index]+h.ejected_cl37[burst2_index])/Cl37_solar_mass_frac +ax[0].plot((35,37),(Cl35_2,Cl37_2),linewidth='1',color='black',marker='^', markersize=8) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_2 = (h.ejected_k36[burst2_index]+h.ejected_ca36[burst2_index]+h.ejected_ar36[burst2_index]+h.ejected_cl36[burst2_index])/Ar36_solar_mass_frac +Ar38_2 = (h.ejected_k38[burst2_index]+h.ejected_ca38[burst2_index]+h.ejected_ar38[burst2_index])/Ar38_solar_mass_frac +ax[0].plot((36,38),(Ar36_2,Ar38_2),linewidth='1',color='black',marker='^', markersize=8) + +# K39 = Ca39+K39+Ar39 +K39_2 = (h.ejected_ca39[burst2_index]+h.ejected_k39[burst2_index]+h.ejected_ar39[burst2_index])/K39_solar_mass_frac +ax[0].plot(39,K39_2,linewidth='1',color='black',marker='^', markersize=8) + +# Ca40 = Sc40+K40+Ca40 +Ca40_2 = (h.ejected_ca40[burst2_index]+h.ejected_k40[burst2_index]+h.ejected_sc40[burst2_index])/Ca40_solar_mass_frac +ax[0].plot(40,Ca40_2,linewidth='1',color='black',marker='^', markersize=8) + + +# Burst 1 + +# plotting_tings = 'ejected_h1 ejected_h2 ejected_h3 ejected_he3 ejected_he4 ejected_li6 ejected_li7 ejected_be7 ejected_be9 ejected_b8 ejected_b10 ejected_b11 ejected_c9 ejected_c11 ejected_c12 ejected_c13 ejected_n12 ejected_n13 ejected_n14 ejected_n15 ejected_o13 ejected_o14 ejected_o15 ejected_o16 ejected_o17 ejected_o18 ejected_f17 ejected_f18 ejected_f19 ejected_ne18 ejected_ne19 ejected_ne20 ejected_ne21 ejected_ne22 ejected_na20 ejected_na21 ejected_na22 ejected_na23 ejected_mg21 ejected_mg22 ejected_mg23 ejected_mg24 ejected_mg25 ejected_mg26 ejected_al23 ejected_al24 ejected_al25 ejected_al26 ejected_al27 ejected_si25 ejected_si26 ejected_si27 ejected_si28 ejected_si29 ejected_si30 ejected_p27 ejected_p28 ejected_p29 ejected_p30 ejected_p31 ejected_s29 ejected_s30 ejected_s31 ejected_s32 ejected_s33 ejected_s34 ejected_s35 ejected_s36 ejected_cl31 ejected_cl32 ejected_cl33 ejected_cl34 ejected_cl35 ejected_cl36 ejected_cl37 ejected_ar32 ejected_ar33 ejected_ar34 ejected_ar35 ejected_ar36 ejected_ar37 ejected_ar38 ejected_ar39 ejected_ar40 ejected_k35 ejected_k36 ejected_k37 ejected_k38 ejected_k39 ejected_k40 ejected_ca36 ejected_ca37 ejected_ca38 ejected_ca39 ejected_ca40 ejected_sc40' +# h = fmr.FastMesaReader('../20pcZ_ONe_1p25Msun/LOGS/history.data', plotting_tings) +# burst2_index = -1 # the row of data in history.data to plot from. +# burst1_index = -1 # the row of data in history.data to plot from. + +# H1 +H1_1 = (h.ejected_h1[burst1_index])/H1_solar_mass_frac +ax[0].plot(1, H1_1, color='#0343df', marker='.', markersize=12) + +# He3=H3+He3 & He4 = B8+He4 +He3_1 = (h.ejected_h3[burst1_index]+h.ejected_he3[burst1_index])/He3_solar_mass_frac +He4_1 = (h.ejected_b8[burst1_index]+h.ejected_he4[burst1_index])/He4_solar_mass_frac +ax[0].plot((3,4),(He3_1,He4_1),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Li7= Li7+Be7 +Li7_1 = (h.ejected_li7[burst1_index]+h.ejected_be7[burst1_index])/Li7_solar_mass_frac +ax[0].plot(7,Li7_1,color='#0343df',marker='.', markersize=12) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_1 = (h.ejected_n12[burst1_index]+h.ejected_c12[burst1_index])/C12_solar_mass_frac +C13_1 = (h.ejected_n13[burst1_index]+h.ejected_o13[burst1_index]+h.ejected_c13[burst1_index])/C13_solar_mass_frac +ax[0].plot((12,13),(C12_1,C13_1),linewidth='1',color='#0343df',marker='.', markersize=12) + +# N14 = O14+N14 & N15 = O15+N15 +N14_1 = (h.ejected_o14[burst1_index]+h.ejected_n14[burst1_index])/N14_solar_mass_frac +N15_1 = (h.ejected_o15[burst1_index]+h.ejected_n15[burst1_index])/N15_solar_mass_frac +ax[0].plot((14,15),(N14_1,N15_1),linewidth='1',color='#0343df',marker='.', markersize=12) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_1 = (h.ejected_o16[burst1_index])/O16_solar_mass_frac +O17_1 = (h.ejected_f17[burst1_index]+h.ejected_o17[burst1_index])/O17_solar_mass_frac +O18_1 = (h.ejected_f18[burst1_index]+h.ejected_ne18[burst1_index]+h.ejected_o18[burst1_index])/O18_solar_mass_frac +ax[0].plot((16,17,18),(O16_1,O17_1,O18_1),linewidth='1',color='#0343df',marker='.', markersize=12) + +# F19 = Ne19+F19 +F19_1 = (h.ejected_ne19[burst1_index]+h.ejected_f19[burst1_index])/F19_solar_mass_frac +ax[0].plot(19, F19_1, color='#0343df', marker='.', markersize=12) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_1 = (h.ejected_na20[burst1_index]+h.ejected_ne20[burst1_index])/Ne20_solar_mass_frac +Ne21_1 = (h.ejected_na21[burst1_index]+h.ejected_mg21[burst1_index]+h.ejected_ne21[burst1_index])/Ne21_solar_mass_frac +Ne22_1 = (h.ejected_mg22[burst1_index]+h.ejected_na22[burst1_index]+h.ejected_ne22[burst1_index])/Ne22_solar_mass_frac +ax[0].plot((20,21,22),(Ne20_1,Ne21_1,Ne22_1),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Na23 = Al23+Mg23+Na23 +Na23_1 = (h.ejected_al23[burst1_index]+h.ejected_mg23[burst1_index]+h.ejected_na23[burst1_index])/Na23_solar_mass_frac +ax[0].plot(23, Na23_1, color='#0343df', marker='.', markersize=12) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_1 = (h.ejected_al24[burst1_index]+h.ejected_mg24[burst1_index])/Mg24_solar_mass_frac +Mg25_1 = (h.ejected_al25[burst1_index]+h.ejected_si25[burst1_index]+h.ejected_mg25[burst1_index])/Mg25_solar_mass_frac +Mg26_1 = (h.ejected_mg26[burst1_index]+h.ejected_al26[burst1_index]+h.ejected_si26[burst1_index])/Mg26_solar_mass_frac +ax[0].plot((24,25,26),(Mg24_1,Mg25_1,Mg26_1),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Al27 = Si27+P27+Al27 +Al27_1 = (h.ejected_si27[burst1_index]+h.ejected_p27[burst1_index]+h.ejected_al27[burst1_index])/Al27_solar_mass_frac +ax[0].plot(27, Al27_1, color='#0343df', marker='.', markersize=12) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_1 = (h.ejected_p28[burst1_index]+h.ejected_si28[burst1_index])/Si28_solar_mass_frac +Si29_1 = (h.ejected_p29[burst1_index]+h.ejected_s29[burst1_index]+h.ejected_si29[burst1_index])/Si29_solar_mass_frac +Si30_1 = (h.ejected_p30[burst1_index]+h.ejected_s30[burst1_index]+h.ejected_si30[burst1_index])/Si30_solar_mass_frac +ax[0].plot((28,29,30),(Si28_1,Si29_1,Si30_1),linewidth='1',color='#0343df',marker='.', markersize=12) + +# P31 = S31+Cl31+P31 +P31_1 = (h.ejected_s31[burst1_index]+h.ejected_cl31[burst1_index]+h.ejected_p31[burst1_index])/P31_solar_mass_frac +ax[0].plot(31, P31_1, color='#0343df', marker='.', markersize=12) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_1 = (h.ejected_cl32[burst1_index]+h.ejected_ar32[burst1_index]+h.ejected_s32[burst1_index])/S32_solar_mass_frac +S33_1 = (h.ejected_cl33[burst1_index]+h.ejected_ar33[burst1_index]+h.ejected_s33[burst1_index])/S33_solar_mass_frac +S34_1 = (h.ejected_cl34[burst1_index]+h.ejected_ar34[burst1_index]+h.ejected_s34[burst1_index])/S34_solar_mass_frac +ax[0].plot((32,33,34),(S32_1,S33_1,S34_1),linewidth='1',color='#0343df',marker='.', markersize=12) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_1 = (h.ejected_ar35[burst1_index]+h.ejected_k35[burst1_index]+h.ejected_s35[burst1_index]+h.ejected_cl35[burst1_index])/Cl35_solar_mass_frac +Cl37_1 = (h.ejected_ar37[burst1_index]+h.ejected_k37[burst1_index]+h.ejected_ca37[burst1_index]+h.ejected_cl37[burst1_index])/Cl37_solar_mass_frac +ax[0].plot((35,37),(Cl35_1,Cl37_1),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_1 = (h.ejected_k36[burst1_index]+h.ejected_ca36[burst1_index]+h.ejected_ar36[burst1_index]+h.ejected_cl36[burst1_index])/Ar36_solar_mass_frac +Ar38_1 = (h.ejected_k38[burst1_index]+h.ejected_ca38[burst1_index]+h.ejected_ar38[burst1_index])/Ar38_solar_mass_frac +ax[0].plot((36,38),(Ar36_1,Ar38_1),linewidth='1',color='#0343df',marker='.', markersize=12) + +# K39 = Ca39+K39+Ar39 +K39_1 = (h.ejected_ca39[burst1_index]+h.ejected_k39[burst1_index]+h.ejected_ar39[burst1_index])/K39_solar_mass_frac +ax[0].plot(39,K39_1,linewidth='1',color='#0343df',marker='.', markersize=12) + +# Ca40 = Sc40+K40+Ca40 +Ca40_1 = (h.ejected_ca40[burst1_index]+h.ejected_k40[burst1_index]+h.ejected_sc40[burst1_index])/Ca40_solar_mass_frac +ax[0].plot(40,Ca40_1,linewidth='1',color='#0343df',marker='.', markersize=12) + + +ax[0].text(1+x_centre_offset, H1_1+H1_1*y_offset_top, 'H', fontsize=13) +ax[0].text(4+x_centre_offset, He4_1+He4_1*y_offset_top, 'He', fontsize=13) +ax[0].text(7+x_centre_offset, Li7_1+Li7_1*y_offset_top, 'Li', fontsize=13) +ax[0].text(13+x_centre_offset, C13_1+C13_1*y_offset_top, 'C', fontsize=13) +ax[0].text(15+x_centre_offset, N15_1+N15_1*y_offset_top, 'N', fontsize=13) +ax[0].text(17+x_centre_offset, O17_1+O17_1*y_offset_top, 'O', fontsize=13) +ax[0].text(19+x_centre_offset, F19_1+F19_1*y_offset_top, 'F', fontsize=13) +ax[0].text(21+x_centre_offset, Ne21_1-Ne21_1*y_offset_top, 'Ne', fontsize=13) +ax[0].text(23+x_centre_offset, Na23_1+Na23_1*y_offset_top, 'Na', fontsize=13) +ax[0].text(25+x_centre_offset, Mg25_1+Mg25_1*y_offset_top, 'Mg', fontsize=13) +ax[0].text(27+x_centre_offset, Al27_1+Al27_1*y_offset_top, 'Al', fontsize=13) +ax[0].text(29+x_centre_offset, Si29_1-Si29_1*y_offset_top, 'Si', fontsize=13) +ax[0].text(31+x_centre_offset, P31_1-P31_1*y_offset_top, 'P', fontsize=13) +ax[0].text(33+x_centre_offset, S33_1-S33_1*y_offset_top, 'S', fontsize=13) +ax[0].text(37+x_centre_offset, Cl37_1+Cl37_1*y_offset_top, 'Cl', fontsize=13) +ax[0].text(38+x_centre_offset, Ar38_1-Ar38_1*y_offset_top, 'Ar', fontsize=13) +ax[0].text(39+x_centre_offset, K39_1-K39_1*y_offset_top, 'K', fontsize=13) +ax[0].text(40+x_centre_offset, Ca40_1+Ca40_1*y_offset_top, 'Ca', fontsize=13) + + +legend_elements = [Line2D([0], [0], marker='.', color='#0343df', label='Burst 1', + markersize=10), + Line2D([0], [0], marker='^', color='black', label='Burst 2', + markersize=10)] +ax[0].legend(handles=legend_elements, frameon=False, loc='lower right',prop={'size': 18}) + +# legend_elements = [Line2D([0], [0], marker='.', color='#0343df', label='Burst 1', +# markersize=5)] +# ax.legend(handles=legend_elements, loc='lower right') + +ax[1].plot(1, H1_1/H1_2, color='#0343df', marker='.', markersize=12) +ax[1].plot((3,4),(He3_1/He3_2,He4_1/He4_2),linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot(7,Li7_1/Li7_2,color='#0343df',marker='.', markersize=12) +ax[1].plot((12,13),(C12_1/C12_2,C13_1/C13_2),linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot((14,15),(N14_1/N14_2,N15_1/N15_2),linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot((16,17,18),(O16_1/O16_2,O17_1/O17_2,O18_1/O18_2),linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot(19, F19_1/F19_2, color='#0343df', marker='.', markersize=12) +ax[1].plot((20,21,22),(Ne20_1/Ne20_2,Ne21_1/Ne21_2,Ne22_1/Ne22_2),linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot(23, Na23_1/Na23_2, color='#0343df', marker='.', markersize=12) +ax[1].plot((24,25,26),(Mg24_1/Mg24_2,Mg25_1/Mg25_2,Mg26_1/Mg26_2),linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot(27, Al27_1/Al27_2, color='#0343df', marker='.', markersize=12) +ax[1].plot((28,29,30),(Si28_1/Si28_2,Si29_1/Si29_2,Si30_1/Si30_2),linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot(31, P31_1/P31_2, color='#0343df', marker='.', markersize=12) +ax[1].plot((32,33,34),(S32_1/S32_2,S33_1/S33_2,S34_1/S34_2),linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot((35,37),(Cl35_1/Cl35_2,Cl37_1/Cl37_2),linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot((36,38),(Ar36_1/Ar36_2,Ar38_1/Ar38_2),linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot(39,K39_1/K39_2,linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].plot(40,Ca40_1/Ca40_2,linewidth='1',color='#0343df',marker='.', markersize=12) +ax[1].text(1+x_centre_offset, H1_1/H1_2+(H1_1/H1_2)*y_offset_top, 'H', fontsize=13) +ax[1].text(4+x_centre_offset, He4_1/He4_2+(He4_1/He4_2)*y_offset_top, 'He', fontsize=13) +ax[1].text(7+x_centre_offset, Li7_1/Li7_2+(Li7_1/Li7_2)*y_offset_top, 'Li', fontsize=13) +ax[1].text(13+x_centre_offset, C13_1/C13_2+(C13_1/C13_2)*y_offset_top, 'C', fontsize=13) +ax[1].text(15+x_centre_offset, N15_1/N15_2+(N15_1/N15_2)*y_offset_top, 'N', fontsize=13) +ax[1].text(17+x_centre_offset, O17_1/O17_2-(O17_1/O17_2)*y_offset_top, 'O', fontsize=13) +ax[1].text(19+x_centre_offset, F19_1/F19_2+(F19_1/F19_2)*y_offset_top, 'F', fontsize=13) +ax[1].text(21+x_centre_offset, Ne21_1/Ne21_2-(Ne21_1/Ne21_2)*y_offset_top, 'Ne', fontsize=13) +ax[1].text(23+x_centre_offset, Na23_1/Na23_2+(Na23_1/Na23_2)*y_offset_top, 'Na', fontsize=13) +ax[1].text(25+x_centre_offset, Mg25_1/Mg25_2+(Mg25_1/Mg25_2)*y_offset_top, 'Mg', fontsize=13) +ax[1].text(27+x_centre_offset, Al27_1/Al27_2+(Al27_1/Al27_2)*y_offset_top, 'Al', fontsize=13) +ax[1].text(29+x_centre_offset, Si29_1/Si29_2-(Si29_1/Si29_2)*y_offset_top, 'Si', fontsize=13) +ax[1].text(31+x_centre_offset, P31_1/P31_2+(P31_1/P31_2)*y_offset_top, 'P', fontsize=13) +ax[1].text(33+x_centre_offset, S33_1/S33_2-(S33_1/S33_2)*y_offset_bot, 'S', fontsize=13) +ax[1].text(37+x_centre_offset, Cl37_1/Cl37_2+(Cl37_1/Cl37_2)*y_offset_top, 'Cl', fontsize=13) +ax[1].text(38+x_centre_offset, Ar38_1/Ar38_2+(Ar38_1/Ar38_2)*y_offset_top, 'Ar', fontsize=13) +ax[1].text(39+x_centre_offset, K39_1/K39_2+(K39_1/K39_2)*y_offset_top, 'K', fontsize=13) +ax[1].text(40+x_centre_offset, Ca40_1/Ca40_2+(Ca40_1/Ca40_2)*y_offset_top, 'Ca', fontsize=13) + + +ax[1].set_xlim(0,41) +ax[1].tick_params(axis='x', labelsize=16) +ax[1].set_xscale('linear') +ax[0].set_yscale('log') +ax[1].set_yscale('log') +ax[0].set_yticks([1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10]) #replaces tick labels from '10^x' to 'x' +ax[0].set_yticklabels(['-8','-7','-6','-5','-4','-3','-2','-1','0','1','2','3','4','5','6','7','8','9','10']) #replaces tick labels from '10^x' to 'x' +ax[1].set_yticks([1e-2,1e-1,1,1e1,1e2]) #replaces tick labels from '10^x' to 'x' +ax[1].set_yticklabels(['-2','-1','0','1','2']) #replaces tick labels from '10^x' to 'x' +ax[0].tick_params(axis='y', labelsize=16) +ax[1].tick_params(axis='y', labelsize=16) +ax[0].xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax[0].grid(which='major', linestyle=':', linewidth='1') +plt.minorticks_on() +ax[0].grid(which='minor', linestyle=':', linewidth='0.4') +ax[0].hlines(1, 0, 50, color='#000000', linestyle='--', linewidth=0.5) + +ax[1].xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax[1].grid(which='major', linestyle=':', linewidth='1') +ax[1].grid(which='minor', linestyle=':', linewidth='0.4') + +ax[1].set_xlabel('Mass number', fontsize=20) +ax[0].set_ylabel('Mean overproduction\nfactor $\\mathrm{log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) +ax[1].set_ylabel('$\\mathrm{log_{10}}\\left(\\dfrac{X_{i,\\mathrm{burst \\ 1}}}{X_{i,\\mathrm{burst \\ 2}}}\\right)$', fontsize=20) + +# ax[0].set_ylim(0,0) +# ax[1].set_ylim(0,0) + +# plt.show() +plt.savefig('overproduction_comparison_plot.pdf', dpi=500) + + + + + + +# Elements not considered when graphing due to not being interested in their abundance +# h2 - Stable +# li6 - Stable +# be9 - Stable +# b10 - Stable +# b11 - Stable +# c9 - decays to B9 which decyas to Be9 which we're not interested in +# c11 - T1/2 = 30.364 min, decays to B11 which we're not interested in +# s36 - Stable +# ar40 - Stable + + + +# Solar Composition Values: +# Taken from Lodders09.data within $MESA_dir/data/chem_data/Lodders09.data +# H1 = 7.0945477357E-01 +# He3 = 8.4641515456E-05 +# He4 = 2.7501644504E-01 +# Li7 = 9.8556690166E-09 +# C12 = 2.3370919413E-03 +# C13 = 2.8452149548E-05 +# N14 = 8.1299682160E-04 +# N15 = 3.1966552925E-06 +# O16 = 6.8808895413E-03 +# O17 = 2.7474252428E-06 +# O18 = 1.5531307205E-05 +# F19 = 4.1844135602E-07 +# Ne21 = 4.2164622894E-06 +# Na23 = 3.6352024324E-05 +# Mg24 = 5.3250196132E-04 +# Mg25 = 7.0534596214E-05 +# Al27 = 6.2568980455E-05 +# Si29 = 3.7176525818E-05 +# Si30 = 2.5392454637E-05 +# P31 = 7.0479812061E-06 +# S32 = 3.5061857535E-04 +# S33 = 2.8564457061E-06 +# S34 = 1.6577684516E-05 +# Cl35 = 3.7581928546E-06 +# Cl37 = 1.2668835242E-06 +# Ar36 = 7.7311395865E-05 +# Ar38 = 1.4884854207E-05 +# K39 = 3.7390184012E-06 +# Ca40 = 6.4097458307E-05 \ No newline at end of file diff --git a/overproduction_plotters/Overproduction_five_comparison_graph_Asplund09.py b/overproduction_plotters/Overproduction_five_comparison_graph_Asplund09.py new file mode 100644 index 0000000000000000000000000000000000000000..fb245fe706b05ae79e8f94cd942d6020ce3c4207 --- /dev/null +++ b/overproduction_plotters/Overproduction_five_comparison_graph_Asplund09.py @@ -0,0 +1,631 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +from matplotlib.lines import Line2D +import fastmesareader as fmr + +plotting_tings = 'ejected_h1 ejected_h2 ejected_h3 ejected_he3 ejected_he4 ejected_li6 ejected_li7 ejected_be7 ejected_be9 ejected_b8 ejected_b10 ejected_b11 ejected_c9 ejected_c11 ejected_c12 ejected_c13 ejected_n12 ejected_n13 ejected_n14 ejected_n15 ejected_o13 ejected_o14 ejected_o15 ejected_o16 ejected_o17 ejected_o18 ejected_f17 ejected_f18 ejected_f19 ejected_ne18 ejected_ne19 ejected_ne20 ejected_ne21 ejected_ne22 ejected_na20 ejected_na21 ejected_na22 ejected_na23 ejected_mg21 ejected_mg22 ejected_mg23 ejected_mg24 ejected_mg25 ejected_mg26 ejected_al23 ejected_al24 ejected_al25 ejected_al26 ejected_al27 ejected_si25 ejected_si26 ejected_si27 ejected_si28 ejected_si29 ejected_si30 ejected_p27 ejected_p28 ejected_p29 ejected_p30 ejected_p31 ejected_s29 ejected_s30 ejected_s31 ejected_s32 ejected_s33 ejected_s34 ejected_s35 ejected_s36 ejected_cl31 ejected_cl32 ejected_cl33 ejected_cl34 ejected_cl35 ejected_cl36 ejected_cl37 ejected_ar32 ejected_ar33 ejected_ar34 ejected_ar35 ejected_ar36 ejected_ar37 ejected_ar38 ejected_ar39 ejected_ar40 ejected_k35 ejected_k36 ejected_k37 ejected_k38 ejected_k39 ejected_k40 ejected_ca36 ejected_ca37 ejected_ca38 ejected_ca39 ejected_ca40 ejected_sc40' +a = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +b = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +c = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +d = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +e = fmr.FastMesaReader('LOGS/history.data', plotting_tings) + + +plota_index = -1 +plotb_index = -1 +plotc_index = -1 +plotd_index = -1 +plote_index = -1 + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + +x_centre_offset = -0.3 #-0.2 +x_centre_offset_2 = -0.2 +y_offset_top = 0.5 +y_offset_bot = 0.55 + +# From Asplund et. al. 2009 +H1_solar_mass_frac = 0.738085238 +He3_solar_mass_frac = 4.1251e-05 +He4_solar_mass_frac = 0.248458749 +Li7_solar_mass_frac = 5.347553867866217e-11 +C12_solar_mass_frac = 0.0023479921849246885 +C13_solar_mass_frac = 2.6264022162801824e-05 +N14_solar_mass_frac = 0.0006943429738573174 +N15_solar_mass_frac = 1.5936949716182629e-06 +O16_solar_mass_frac = 0.005745050422480951 +O17_solar_mass_frac = 2.182566435670741e-06 +O18_solar_mass_frac = 1.1517500979792827e-05 +F19_solar_mass_frac = 5.070647693536659e-07 +Ne20_solar_mass_frac = 0.0011625972594930384 +Ne21_solar_mass_frac = 2.7869381311259143e-06 +Ne22_solar_mass_frac = 8.548569964958532e-05 +Na23_solar_mass_frac = 2.9368444780430237e-05 +Mg24_solar_mass_frac = 0.0005544455826402614 +Mg25_solar_mass_frac = 7.019187019119655e-05 +Mg26_solar_mass_frac = 7.72812490805074e-05 +Al27_solar_mass_frac = 5.5900159597141475e-05 +Si28_solar_mass_frac = 0.0006137862206959798 +Si29_solar_mass_frac = 3.116657246812484e-05 +Si30_solar_mass_frac = 2.054523456687628e-05 +P31_solar_mass_frac = 5.852484710740299e-06 +S32_solar_mass_frac = 0.0002941173102666167 +S33_solar_mass_frac = 2.354673504715355e-06 +S34_solar_mass_frac = 1.3291512283195887e-05 +Cl35_solar_mass_frac = 6.160022812039695e-06 +Cl37_solar_mass_frac = 1.9688011679546237e-06 +Ar36_solar_mass_frac = 5.618233360211754e-05 +Ar38_solar_mass_frac = 1.021494559543339e-05 +K39_solar_mass_frac = 2.85828500433324e-06 +Ca40_solar_mass_frac = 6.230278628930155e-05 + + +H1_1 = (a.ejected_h1[plota_index])/H1_solar_mass_frac +ax.plot(1, H1_1, color='tab:orange', marker='s', markersize=6) + +# He3=H3+He3 & He4 = B8+He4 +He3_1 = (a.ejected_h3[plota_index]+a.ejected_he3[plota_index])/He3_solar_mass_frac +He4_1 = (a.ejected_b8[plota_index]+a.ejected_he4[plota_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_1,He4_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Li7= Li7+Be7 +Li7_1 = (a.ejected_li7[plota_index]+a.ejected_be7[plota_index])/Li7_solar_mass_frac +ax.plot(7,Li7_1,color='tab:orange',marker='s', markersize=6) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_1 = (a.ejected_n12[plota_index]+a.ejected_c12[plota_index])/C12_solar_mass_frac +C13_1 = (a.ejected_n13[plota_index]+a.ejected_o13[plota_index]+a.ejected_c13[plota_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_1,C13_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# N14 = O14+N14 & N15 = O15+N15 +N14_1 = (a.ejected_o14[plota_index]+a.ejected_n14[plota_index])/N14_solar_mass_frac +N15_1 = (a.ejected_o15[plota_index]+a.ejected_n15[plota_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_1,N15_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_1 = (a.ejected_o16[plota_index])/O16_solar_mass_frac +O17_1 = (a.ejected_f17[plota_index]+a.ejected_o17[plota_index])/O17_solar_mass_frac +O18_1 = (a.ejected_f18[plota_index]+a.ejected_ne18[plota_index]+a.ejected_o18[plota_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_1,O17_1,O18_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# F19 = Ne19+F19 +F19_1 = (a.ejected_ne19[plota_index]+a.ejected_f19[plota_index])/F19_solar_mass_frac +ax.plot(19, F19_1, color='tab:orange', marker='s', markersize=6) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_1 = (a.ejected_na20[plota_index]+a.ejected_ne20[plota_index])/Ne20_solar_mass_frac +Ne21_1 = (a.ejected_na21[plota_index]+a.ejected_mg21[plota_index]+a.ejected_ne21[plota_index])/Ne21_solar_mass_frac +Ne22_1 = (a.ejected_mg22[plota_index]+a.ejected_na22[plota_index]+a.ejected_ne22[plota_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_1,Ne21_1,Ne22_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Na23 = Al23+Mg23+Na23 +Na23_1 = (a.ejected_al23[plota_index]+a.ejected_mg23[plota_index]+a.ejected_na23[plota_index])/Na23_solar_mass_frac +ax.plot(23, Na23_1, color='tab:orange', marker='s', markersize=6) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_1 = (a.ejected_al24[plota_index]+a.ejected_mg24[plota_index])/Mg24_solar_mass_frac +Mg25_1 = (a.ejected_al25[plota_index]+a.ejected_si25[plota_index]+a.ejected_mg25[plota_index])/Mg25_solar_mass_frac +Mg26_1 = (a.ejected_mg26[plota_index]+a.ejected_al26[plota_index]+a.ejected_si26[plota_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_1,Mg25_1,Mg26_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Al27 = Si27+P27+Al27 +Al27_1 = (a.ejected_si27[plota_index]+a.ejected_p27[plota_index]+a.ejected_al27[plota_index])/Al27_solar_mass_frac +ax.plot(27, Al27_1, color='tab:orange', marker='s', markersize=6) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_1 = (a.ejected_p28[plota_index]+a.ejected_si28[plota_index])/Si28_solar_mass_frac +Si29_1 = (a.ejected_p29[plota_index]+a.ejected_s29[plota_index]+a.ejected_si29[plota_index])/Si29_solar_mass_frac +Si30_1 = (a.ejected_p30[plota_index]+a.ejected_s30[plota_index]+a.ejected_si30[plota_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_1,Si29_1,Si30_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# P31 = S31+Cl31+P31 +P31_1 = (a.ejected_s31[plota_index]+a.ejected_cl31[plota_index]+a.ejected_p31[plota_index])/P31_solar_mass_frac +ax.plot(31, P31_1, color='tab:orange', marker='s', markersize=6) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_1 = (a.ejected_cl32[plota_index]+a.ejected_ar32[plota_index]+a.ejected_s32[plota_index])/S32_solar_mass_frac +S33_1 = (a.ejected_cl33[plota_index]+a.ejected_ar33[plota_index]+a.ejected_s33[plota_index])/S33_solar_mass_frac +S34_1 = (a.ejected_cl34[plota_index]+a.ejected_ar34[plota_index]+a.ejected_s34[plota_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_1,S33_1,S34_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_1 = (a.ejected_ar35[plota_index]+a.ejected_k35[plota_index]+a.ejected_s35[plota_index]+a.ejected_cl35[plota_index])/Cl35_solar_mass_frac +Cl37_1 = (a.ejected_ar37[plota_index]+a.ejected_k37[plota_index]+a.ejected_ca37[plota_index]+a.ejected_cl37[plota_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_1,Cl37_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_1 = (a.ejected_k36[plota_index]+a.ejected_ca36[plota_index]+a.ejected_ar36[plota_index]+a.ejected_cl36[plota_index])/Ar36_solar_mass_frac +Ar38_1 = (a.ejected_k38[plota_index]+a.ejected_ca38[plota_index]+a.ejected_ar38[plota_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_1,Ar38_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# K39 = Ca39+K39+Ar39 +K39_1 = (a.ejected_ca39[plota_index]+a.ejected_k39[plota_index]+a.ejected_ar39[plota_index])/K39_solar_mass_frac +ax.plot(39,K39_1,linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Ca40 = Sc40+K40+Ca40 +Ca40_1 = (a.ejected_ca40[plota_index]+a.ejected_k40[plota_index]+a.ejected_sc40[plota_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_1,linewidth='1',color='tab:orange',marker='s', markersize=6) + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + + +# H1 +H1_2 = (b.ejected_h1[plotb_index])/H1_solar_mass_frac +ax.plot(1, H1_2, color='black', marker='^', markersize=8) + +# He3=H3+He3 & He4 = B8+He4 +He3_2 = (b.ejected_h3[plotb_index]+b.ejected_he3[plotb_index])/He3_solar_mass_frac +He4_2 = (b.ejected_b8[plotb_index]+b.ejected_he4[plotb_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_2,He4_2),linewidth='1',color='black',marker='^', markersize=8) + +# Li7= Li7+Be7 +Li7_2 = (b.ejected_li7[plotb_index]+b.ejected_be7[plotb_index])/Li7_solar_mass_frac +ax.plot(7,Li7_2,color='black',marker='^', markersize=8) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_2 = (b.ejected_n12[plotb_index]+b.ejected_c12[plotb_index])/C12_solar_mass_frac +C13_2 = (b.ejected_n13[plotb_index]+b.ejected_o13[plotb_index]+b.ejected_c13[plotb_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_2,C13_2),linewidth='1',color='black',marker='^', markersize=8) + +# N14 = O14+N14 & N15 = O15+N15 +N14_2 = (b.ejected_o14[plotb_index]+b.ejected_n14[plotb_index])/N14_solar_mass_frac +N15_2 = (b.ejected_o15[plotb_index]+b.ejected_n15[plotb_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_2,N15_2),linewidth='1',color='black',marker='^', markersize=8) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_2 = (b.ejected_o16[plotb_index])/O16_solar_mass_frac +O17_2 = (b.ejected_f17[plotb_index]+b.ejected_o17[plotb_index])/O17_solar_mass_frac +O18_2 = (b.ejected_f18[plotb_index]+b.ejected_ne18[plotb_index]+b.ejected_o18[plotb_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_2,O17_2,O18_2),linewidth='1',color='black',marker='^', markersize=8) + +# F19 = Ne19+F19 +F19_2 = (b.ejected_ne19[plotb_index]+b.ejected_f19[plotb_index])/F19_solar_mass_frac +ax.plot(19, F19_2, color='black', marker='^', markersize=8) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_2 = (b.ejected_na20[plotb_index]+b.ejected_ne20[plotb_index])/Ne20_solar_mass_frac +Ne21_2 = (b.ejected_na21[plotb_index]+b.ejected_mg21[plotb_index]+b.ejected_ne21[plotb_index])/Ne21_solar_mass_frac +Ne22_2 = (b.ejected_mg22[plotb_index]+b.ejected_na22[plotb_index]+b.ejected_ne22[plotb_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_2,Ne21_2,Ne22_2),linewidth='1',color='black',marker='^', markersize=8) + +# Na23 = Al23+Mg23+Na23 +Na23_2 = (b.ejected_al23[plotb_index]+b.ejected_mg23[plotb_index]+b.ejected_na23[plotb_index])/Na23_solar_mass_frac +ax.plot(23, Na23_2, color='black', marker='^', markersize=8) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_2 = (b.ejected_al24[plotb_index]+b.ejected_mg24[plotb_index])/Mg24_solar_mass_frac +Mg25_2 = (b.ejected_al25[plotb_index]+b.ejected_si25[plotb_index]+b.ejected_mg25[plotb_index])/Mg25_solar_mass_frac +Mg26_2 = (b.ejected_mg26[plotb_index]+b.ejected_al26[plotb_index]+b.ejected_si26[plotb_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_2,Mg25_2,Mg26_2),linewidth='1',color='black',marker='^', markersize=8) + +# Al27 = Si27+P27+Al27 +Al27_2 = (b.ejected_si27[plotb_index]+b.ejected_p27[plotb_index]+b.ejected_al27[plotb_index])/Al27_solar_mass_frac +ax.plot(27, Al27_2, color='black', marker='^', markersize=8) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_2 = (b.ejected_p28[plotb_index]+b.ejected_si28[plotb_index])/Si28_solar_mass_frac +Si29_2 = (b.ejected_p29[plotb_index]+b.ejected_s29[plotb_index]+b.ejected_si29[plotb_index])/Si29_solar_mass_frac +Si30_2 = (b.ejected_p30[plotb_index]+b.ejected_s30[plotb_index]+b.ejected_si30[plotb_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_2,Si29_2,Si30_2),linewidth='1',color='black',marker='^', markersize=8) + +# P31 = S31+Cl31+P31 +P31_2 = (b.ejected_s31[plotb_index]+b.ejected_cl31[plotb_index]+b.ejected_p31[plotb_index])/P31_solar_mass_frac +ax.plot(31, P31_2, color='black', marker='^', markersize=8) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_2 = (b.ejected_cl32[plotb_index]+b.ejected_ar32[plotb_index]+b.ejected_s32[plotb_index])/S32_solar_mass_frac +S33_2 = (b.ejected_cl33[plotb_index]+b.ejected_ar33[plotb_index]+b.ejected_s33[plotb_index])/S33_solar_mass_frac +S34_2 = (b.ejected_cl34[plotb_index]+b.ejected_ar34[plotb_index]+b.ejected_s34[plotb_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_2,S33_2,S34_2),linewidth='1',color='black',marker='^', markersize=8) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_2 = (b.ejected_ar35[plotb_index]+b.ejected_k35[plotb_index]+b.ejected_s35[plotb_index]+b.ejected_cl35[plotb_index])/Cl35_solar_mass_frac +Cl37_2 = (b.ejected_ar37[plotb_index]+b.ejected_k37[plotb_index]+b.ejected_ca37[plotb_index]+b.ejected_cl37[plotb_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_2,Cl37_2),linewidth='1',color='black',marker='^', markersize=8) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_2 = (b.ejected_k36[plotb_index]+b.ejected_ca36[plotb_index]+b.ejected_ar36[plotb_index]+b.ejected_cl36[plotb_index])/Ar36_solar_mass_frac +Ar38_2 = (b.ejected_k38[plotb_index]+b.ejected_ca38[plotb_index]+b.ejected_ar38[plotb_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_2,Ar38_2),linewidth='1',color='black',marker='^', markersize=8) + +# K39 = Ca39+K39+Ar39 +K39_2 = (b.ejected_ca39[plotb_index]+b.ejected_k39[plotb_index]+b.ejected_ar39[plotb_index])/K39_solar_mass_frac +ax.plot(39,K39_2,linewidth='1',color='black',marker='^', markersize=8) + +# Ca40 = Sc40+K40+Ca40 +Ca40_2 = (b.ejected_ca40[plotb_index]+b.ejected_k40[plotb_index]+b.ejected_sc40[plotb_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_2,linewidth='1',color='black',marker='^', markersize=8) + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + +H1_3 = (c.ejected_h1[plotc_index])/H1_solar_mass_frac +ax.plot(1, H1_3, color='#0343df', marker='.', markersize=12) + +# He3=H3+He3 & He4 = B8+He4 +He3_3 = (c.ejected_h3[plotc_index]+c.ejected_he3[plotc_index])/He3_solar_mass_frac +He4_3 = (c.ejected_b8[plotc_index]+c.ejected_he4[plotc_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_3,He4_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Li7= Li7+Be7 +Li7_3 = (c.ejected_li7[plotc_index]+c.ejected_be7[plotc_index])/Li7_solar_mass_frac +ax.plot(7,Li7_3,color='#0343df',marker='.', markersize=12) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_3 = (c.ejected_n12[plotc_index]+c.ejected_c12[plotc_index])/C12_solar_mass_frac +C13_3 = (c.ejected_n13[plotc_index]+c.ejected_o13[plotc_index]+c.ejected_c13[plotc_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_3,C13_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# N14 = O14+N14 & N15 = O15+N15 +N14_3 = (c.ejected_o14[plotc_index]+c.ejected_n14[plotc_index])/N14_solar_mass_frac +N15_3 = (c.ejected_o15[plotc_index]+c.ejected_n15[plotc_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_3,N15_3),linewidth='1',color='#0343df',marker='.', markersize=12) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_3 = (c.ejected_o16[plotc_index])/O16_solar_mass_frac +O17_3 = (c.ejected_f17[plotc_index]+c.ejected_o17[plotc_index])/O17_solar_mass_frac +O18_3 = (c.ejected_f18[plotc_index]+c.ejected_ne18[plotc_index]+c.ejected_o18[plotc_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_3,O17_3,O18_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# F19 = Ne19+F19 +F19_3 = (c.ejected_ne19[plotc_index]+c.ejected_f19[plotc_index])/F19_solar_mass_frac +ax.plot(19, F19_3, color='#0343df', marker='.', markersize=12) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_3 = (c.ejected_na20[plotc_index]+c.ejected_ne20[plotc_index])/Ne20_solar_mass_frac +Ne21_3 = (c.ejected_na21[plotc_index]+c.ejected_mg21[plotc_index]+c.ejected_ne21[plotc_index])/Ne21_solar_mass_frac +Ne22_3 = (c.ejected_mg22[plotc_index]+c.ejected_na22[plotc_index]+c.ejected_ne22[plotc_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_3,Ne21_3,Ne22_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Na23 = Al23+Mg23+Na23 +Na23_3 = (c.ejected_al23[plotc_index]+c.ejected_mg23[plotc_index]+c.ejected_na23[plotc_index])/Na23_solar_mass_frac +ax.plot(23, Na23_3, color='#0343df', marker='.', markersize=12) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_3 = (c.ejected_al24[plotc_index]+c.ejected_mg24[plotc_index])/Mg24_solar_mass_frac +Mg25_3 = (c.ejected_al25[plotc_index]+c.ejected_si25[plotc_index]+c.ejected_mg25[plotc_index])/Mg25_solar_mass_frac +Mg26_3 = (c.ejected_mg26[plotc_index]+c.ejected_al26[plotc_index]+c.ejected_si26[plotc_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_3,Mg25_3,Mg26_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Al27 = Si27+P27+Al27 +Al27_3 = (c.ejected_si27[plotc_index]+c.ejected_p27[plotc_index]+c.ejected_al27[plotc_index])/Al27_solar_mass_frac +ax.plot(27, Al27_3, color='#0343df', marker='.', markersize=12) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_3 = (c.ejected_p28[plotc_index]+c.ejected_si28[plotc_index])/Si28_solar_mass_frac +Si29_3 = (c.ejected_p29[plotc_index]+c.ejected_s29[plotc_index]+c.ejected_si29[plotc_index])/Si29_solar_mass_frac +Si30_3 = (c.ejected_p30[plotc_index]+c.ejected_s30[plotc_index]+c.ejected_si30[plotc_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_3,Si29_3,Si30_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# P31 = S31+Cl31+P31 +P31_3 = (c.ejected_s31[plotc_index]+c.ejected_cl31[plotc_index]+c.ejected_p31[plotc_index])/P31_solar_mass_frac +ax.plot(31, P31_3, color='#0343df', marker='.', markersize=12) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_3 = (c.ejected_cl32[plotc_index]+c.ejected_ar32[plotc_index]+c.ejected_s32[plotc_index])/S32_solar_mass_frac +S33_3 = (c.ejected_cl33[plotc_index]+c.ejected_ar33[plotc_index]+c.ejected_s33[plotc_index])/S33_solar_mass_frac +S34_3 = (c.ejected_cl34[plotc_index]+c.ejected_ar34[plotc_index]+c.ejected_s34[plotc_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_3,S33_3,S34_3),linewidth='1',color='#0343df',marker='.', markersize=12) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_3 = (c.ejected_ar35[plotc_index]+c.ejected_k35[plotc_index]+c.ejected_s35[plotc_index]+c.ejected_cl35[plotc_index])/Cl35_solar_mass_frac +Cl37_3 = (c.ejected_ar37[plotc_index]+c.ejected_k37[plotc_index]+c.ejected_ca37[plotc_index]+c.ejected_cl37[plotc_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_3,Cl37_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_3 = (c.ejected_k36[plotc_index]+c.ejected_ca36[plotc_index]+c.ejected_ar36[plotc_index]+c.ejected_cl36[plotc_index])/Ar36_solar_mass_frac +Ar38_3 = (c.ejected_k38[plotc_index]+c.ejected_ca38[plotc_index]+c.ejected_ar38[plotc_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_3,Ar38_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# K39 = Ca39+K39+Ar39 +K39_3 = (c.ejected_ca39[plotc_index]+c.ejected_k39[plotc_index]+c.ejected_ar39[plotc_index])/K39_solar_mass_frac +ax.plot(39,K39_3,linewidth='1',color='#0343df',marker='.', markersize=12) + +# Ca40 = Sc40+K40+Ca40 +Ca40_3 = (c.ejected_ca40[plotc_index]+c.ejected_k40[plotc_index]+c.ejected_sc40[plotc_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_3,linewidth='1',color='#0343df',marker='.', markersize=12) + + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + + +H1_4 = (d.ejected_h1[plotd_index])/H1_solar_mass_frac +ax.plot(1, H1_4, color='r', marker='x', markersize=7) + +# He3=H3+He3 & He4 = B8+He4 +He3_4 = (d.ejected_h3[plotd_index]+d.ejected_he3[plotd_index])/He3_solar_mass_frac +He4_4 = (d.ejected_b8[plotd_index]+d.ejected_he4[plotd_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_4,He4_4),linewidth='1',color='r',marker='x', markersize=7) + +# Li7= Li7+Be7 +Li7_4 = (d.ejected_li7[plotd_index]+d.ejected_be7[plotd_index])/Li7_solar_mass_frac +ax.plot(7,Li7_4,color='r',marker='x', markersize=7) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_4 = (d.ejected_n12[plotd_index]+d.ejected_c12[plotd_index])/C12_solar_mass_frac +C13_4 = (d.ejected_n13[plotd_index]+d.ejected_o13[plotd_index]+d.ejected_c13[plotd_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_4,C13_4),linewidth='1',color='r',marker='x', markersize=7) + +# N14 = O14+N14 & N15 = O15+N15 +N14_4 = (d.ejected_o14[plotd_index]+d.ejected_n14[plotd_index])/N14_solar_mass_frac +N15_4 = (d.ejected_o15[plotd_index]+d.ejected_n15[plotd_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_4,N15_4),linewidth='1',color='r',marker='x', markersize=7) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_4 = (d.ejected_o16[plotd_index])/O16_solar_mass_frac +O17_4 = (d.ejected_f17[plotd_index]+d.ejected_o17[plotd_index])/O17_solar_mass_frac +O18_4 = (d.ejected_f18[plotd_index]+d.ejected_ne18[plotd_index]+d.ejected_o18[plotd_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_4,O17_4,O18_4),linewidth='1',color='r',marker='x', markersize=7) + +# F19 = Ne19+F19 +F19_4 = (d.ejected_ne19[plotd_index]+d.ejected_f19[plotd_index])/F19_solar_mass_frac +ax.plot(19, F19_4, color='r', marker='x', markersize=7) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_4 = (d.ejected_na20[plotd_index]+d.ejected_ne20[plotd_index])/Ne20_solar_mass_frac +Ne21_4 = (d.ejected_na21[plotd_index]+d.ejected_mg21[plotd_index]+d.ejected_ne21[plotd_index])/Ne21_solar_mass_frac +Ne22_4 = (d.ejected_mg22[plotd_index]+d.ejected_na22[plotd_index]+d.ejected_ne22[plotd_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_4,Ne21_4,Ne22_4),linewidth='1',color='r',marker='x', markersize=7) + +# Na23 = Al23+Mg23+Na23 +Na23_4 = (d.ejected_al23[plotd_index]+d.ejected_mg23[plotd_index]+d.ejected_na23[plotd_index])/Na23_solar_mass_frac +ax.plot(23, Na23_4, color='r', marker='x', markersize=7) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_4 = (d.ejected_al24[plotd_index]+d.ejected_mg24[plotd_index])/Mg24_solar_mass_frac +Mg25_4 = (d.ejected_al25[plotd_index]+d.ejected_si25[plotd_index]+d.ejected_mg25[plotd_index])/Mg25_solar_mass_frac +Mg26_4 = (d.ejected_mg26[plotd_index]+d.ejected_al26[plotd_index]+d.ejected_si26[plotd_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_4,Mg25_4,Mg26_4),linewidth='1',color='r',marker='x', markersize=7) + +# Al27 = Si27+P27+Al27 +Al27_4 = (d.ejected_si27[plotd_index]+d.ejected_p27[plotd_index]+d.ejected_al27[plotd_index])/Al27_solar_mass_frac +ax.plot(27, Al27_4, color='r', marker='x', markersize=7) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_4 = (d.ejected_p28[plotd_index]+d.ejected_si28[plotd_index])/Si28_solar_mass_frac +Si29_4 = (d.ejected_p29[plotd_index]+d.ejected_s29[plotd_index]+d.ejected_si29[plotd_index])/Si29_solar_mass_frac +Si30_4 = (d.ejected_p30[plotd_index]+d.ejected_s30[plotd_index]+d.ejected_si30[plotd_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_4,Si29_4,Si30_4),linewidth='1',color='r',marker='x', markersize=7) + +# P31 = S31+Cl31+P31 +P31_4 = (d.ejected_s31[plotd_index]+d.ejected_cl31[plotd_index]+d.ejected_p31[plotd_index])/P31_solar_mass_frac +ax.plot(31, P31_4, color='r', marker='x', markersize=7) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_4 = (d.ejected_cl32[plotd_index]+d.ejected_ar32[plotd_index]+d.ejected_s32[plotd_index])/S32_solar_mass_frac +S33_4 = (d.ejected_cl33[plotd_index]+d.ejected_ar33[plotd_index]+d.ejected_s33[plotd_index])/S33_solar_mass_frac +S34_4 = (d.ejected_cl34[plotd_index]+d.ejected_ar34[plotd_index]+d.ejected_s34[plotd_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_4,S33_4,S34_4),linewidth='1',color='r',marker='x', markersize=7) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_4 = (d.ejected_ar35[plotd_index]+d.ejected_k35[plotd_index]+d.ejected_s35[plotd_index]+d.ejected_cl35[plotd_index])/Cl35_solar_mass_frac +Cl37_4 = (d.ejected_ar37[plotd_index]+d.ejected_k37[plotd_index]+d.ejected_ca37[plotd_index]+d.ejected_cl37[plotd_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_4,Cl37_4),linewidth='1',color='r',marker='x', markersize=7) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_4 = (d.ejected_k36[plotd_index]+d.ejected_ca36[plotd_index]+d.ejected_ar36[plotd_index]+d.ejected_cl36[plotd_index])/Ar36_solar_mass_frac +Ar38_4 = (d.ejected_k38[plotd_index]+d.ejected_ca38[plotd_index]+d.ejected_ar38[plotd_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_4,Ar38_4),linewidth='1',color='r',marker='x', markersize=7) + +# K39 = Ca39+K39+Ar39 +K39_4 = (d.ejected_ca39[plotd_index]+d.ejected_k39[plotd_index]+d.ejected_ar39[plotd_index])/K39_solar_mass_frac +ax.plot(39,K39_4,linewidth='1',color='r',marker='x', markersize=7) + +# Ca40 = Sc40+K40+Ca40 +Ca40_4 = (d.ejected_ca40[plotd_index]+d.ejected_k40[plotd_index]+d.ejected_sc40[plotd_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_4,linewidth='1',color='r',marker='x', markersize=7) + + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + + +H1_5 = (e.ejected_h1[plote_index])/H1_solar_mass_frac +ax.plot(1, H1_5, color='g', marker='+', markersize=8) + +# He3=H3+He3 & He4 = B8+He4 +He3_5 = (e.ejected_h3[plote_index]+e.ejected_he3[plote_index])/He3_solar_mass_frac +He4_5 = (e.ejected_b8[plote_index]+e.ejected_he4[plote_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_5,He4_5),linewidth='1',color='g',marker='+', markersize=8) + +# Li7= Li7+Be7 +Li7_5 = (e.ejected_li7[plote_index]+e.ejected_be7[plote_index])/Li7_solar_mass_frac +ax.plot(7,Li7_5,color='g',marker='+', markersize=8) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_5 = (e.ejected_n12[plote_index]+e.ejected_c12[plote_index])/C12_solar_mass_frac +C13_5 = (e.ejected_n13[plote_index]+e.ejected_o13[plote_index]+e.ejected_c13[plote_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_5,C13_5),linewidth='1',color='g',marker='+', markersize=8) + +# N14 = O14+N14 & N15 = O15+N15 +N14_5 = (e.ejected_o14[plote_index]+e.ejected_n14[plote_index])/N14_solar_mass_frac +N15_5 = (e.ejected_o15[plote_index]+e.ejected_n15[plote_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_5,N15_5),linewidth='1',color='g',marker='+', markersize=8) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_5 = (e.ejected_o16[plote_index])/O16_solar_mass_frac +O17_5 = (e.ejected_f17[plote_index]+e.ejected_o17[plote_index])/O17_solar_mass_frac +O18_5 = (e.ejected_f18[plote_index]+e.ejected_ne18[plote_index]+e.ejected_o18[plote_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_5,O17_5,O18_5),linewidth='1',color='g',marker='+', markersize=8) + +# F19 = Ne19+F19 +F19_5 = (e.ejected_ne19[plote_index]+e.ejected_f19[plote_index])/F19_solar_mass_frac +ax.plot(19, F19_5, color='g', marker='+', markersize=8) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_5 = (e.ejected_na20[plote_index]+e.ejected_ne20[plote_index])/Ne20_solar_mass_frac +Ne21_5 = (e.ejected_na21[plote_index]+e.ejected_mg21[plote_index]+e.ejected_ne21[plote_index])/Ne21_solar_mass_frac +Ne22_5 = (e.ejected_mg22[plote_index]+e.ejected_na22[plote_index]+e.ejected_ne22[plote_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_5,Ne21_5,Ne22_5),linewidth='1',color='g',marker='+', markersize=8) + +# Na23 = Al23+Mg23+Na23 +Na23_5 = (e.ejected_al23[plote_index]+e.ejected_mg23[plote_index]+e.ejected_na23[plote_index])/Na23_solar_mass_frac +ax.plot(23, Na23_5, color='g', marker='+', markersize=8) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_5 = (e.ejected_al24[plote_index]+e.ejected_mg24[plote_index])/Mg24_solar_mass_frac +Mg25_5 = (e.ejected_al25[plote_index]+e.ejected_si25[plote_index]+e.ejected_mg25[plote_index])/Mg25_solar_mass_frac +Mg26_5 = (e.ejected_mg26[plote_index]+e.ejected_al26[plote_index]+e.ejected_si26[plote_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_5,Mg25_5,Mg26_5),linewidth='1',color='g',marker='+', markersize=8) + +# Al27 = Si27+P27+Al27 +Al27_5 = (e.ejected_si27[plote_index]+e.ejected_p27[plote_index]+e.ejected_al27[plote_index])/Al27_solar_mass_frac +ax.plot(27, Al27_5, color='g', marker='+', markersize=8) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_5 = (e.ejected_p28[plote_index]+e.ejected_si28[plote_index])/Si28_solar_mass_frac +Si29_5 = (e.ejected_p29[plote_index]+e.ejected_s29[plote_index]+e.ejected_si29[plote_index])/Si29_solar_mass_frac +Si30_5 = (e.ejected_p30[plote_index]+e.ejected_s30[plote_index]+e.ejected_si30[plote_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_5,Si29_5,Si30_5),linewidth='1',color='g',marker='+', markersize=8) + +# P31 = S31+Cl31+P31 +P31_5 = (e.ejected_s31[plote_index]+e.ejected_cl31[plote_index]+e.ejected_p31[plote_index])/P31_solar_mass_frac +ax.plot(31, P31_5, color='g', marker='+', markersize=8) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_5 = (e.ejected_cl32[plote_index]+e.ejected_ar32[plote_index]+e.ejected_s32[plote_index])/S32_solar_mass_frac +S33_5 = (e.ejected_cl33[plote_index]+e.ejected_ar33[plote_index]+e.ejected_s33[plote_index])/S33_solar_mass_frac +S34_5 = (e.ejected_cl34[plote_index]+e.ejected_ar34[plote_index]+e.ejected_s34[plote_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_5,S33_5,S34_5),linewidth='1',color='g',marker='+', markersize=8) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_5 = (e.ejected_ar35[plote_index]+e.ejected_k35[plote_index]+e.ejected_s35[plote_index]+e.ejected_cl35[plote_index])/Cl35_solar_mass_frac +Cl37_5 = (e.ejected_ar37[plote_index]+e.ejected_k37[plote_index]+e.ejected_ca37[plote_index]+e.ejected_cl37[plote_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_5,Cl37_5),linewidth='1',color='g',marker='+', markersize=8) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_5 = (e.ejected_k36[plote_index]+e.ejected_ca36[plote_index]+e.ejected_ar36[plote_index]+e.ejected_cl36[plote_index])/Ar36_solar_mass_frac +Ar38_5 = (e.ejected_k38[plote_index]+e.ejected_ca38[plote_index]+e.ejected_ar38[plote_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_5,Ar38_5),linewidth='1',color='g',marker='+', markersize=8) + +# K39 = Ca39+K39+Ar39 +K39_5 = (e.ejected_ca39[plote_index]+e.ejected_k39[plote_index]+e.ejected_ar39[plote_index])/K39_solar_mass_frac +ax.plot(39,K39_5,linewidth='1',color='g',marker='+', markersize=8) + +# Ca40 = Sc40+K40+Ca40 +Ca40_5 = (e.ejected_ca40[plote_index]+e.ejected_k40[plote_index]+e.ejected_sc40[plote_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_5,linewidth='1',color='g',marker='+', markersize=8) + + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + + + +H1_list = [H1_1,H1_2,H1_3,H1_4,H1_5] +H1 = max(H1_list) +ax.text(1+x_centre_offset, H1+H1*y_offset_top, 'H', fontsize=13) +He4_list = [He4_1,He4_2,He4_3,He4_4,He4_5] +He4 = max(He4_list) +ax.text(4+x_centre_offset, He4+He4*y_offset_top, 'He', fontsize=13) +Li7_list = [Li7_1,Li7_2,Li7_3,Li7_4,Li7_5] +Li7 = max(Li7_list) +ax.text(7+x_centre_offset, Li7+Li7*y_offset_top, 'Li', fontsize=13) +C13_list = [C13_1,C13_2,C13_3,C13_4,C13_5] +C13 = max(C13_list) +ax.text(13+x_centre_offset_2, C13+C13*y_offset_top, 'C', fontsize=13) +N15_list = [N15_1,N15_2,N15_3,N15_4,N15_5] +N15 = max(N15_list) +ax.text(15+x_centre_offset_2, N15+N15*y_offset_top, 'N', fontsize=13) +O17_list = [O17_1,O17_2,O17_3,O17_4,O17_5] +O17 = max(O17_list) +ax.text(17+x_centre_offset, O17+O17*y_offset_top, 'O', fontsize=13) +F19_list = [F19_1,F19_2,F19_3,F19_4,F19_5] +F19 = max(F19_list) +ax.text(19+x_centre_offset_2, F19+F19*y_offset_top, 'F', fontsize=13) +Ne21_list = [Ne21_1,Ne21_2,Ne21_3,Ne21_4,Ne21_5] +Ne21 = min(Ne21_list) +ax.text(21+x_centre_offset, Ne21-Ne21*y_offset_bot, 'Ne', fontsize=13) +Na23_list = [Na23_1,Na23_2,Na23_3,Na23_4,Na23_5] +Na23 = max(Na23_list) +ax.text(23+x_centre_offset, Na23+Na23*y_offset_top, 'Na', fontsize=13) +Mg25_list = [Mg25_1,Mg25_2,Mg25_3,Mg25_4,Mg25_5] +Mg25 = max(Mg25_list) +ax.text(25+x_centre_offset, Mg25+Mg25*y_offset_top, 'Mg', fontsize=13) +Al27_list = [Al27_1,Al27_2,Al27_3,Al27_4,Al27_5] +Al27 = max(Al27_list) +ax.text(27+x_centre_offset, Al27+Al27*y_offset_top, 'Al', fontsize=13) +Si29_list = [Si29_1,Si29_2,Si29_3,Si29_4,Si29_5] +Si29 = min(Si29_list) +ax.text(29+x_centre_offset, Si29-Si29*y_offset_bot, 'Si', fontsize=13) +P31_list = [P31_1,P31_2,P31_3,P31_4,P31_5] +P31 = max(P31_list) +ax.text(31+x_centre_offset, P31+P31*y_offset_top, 'P', fontsize=13) +S33_list = [S33_1,S33_2,S33_3,S33_4,S33_5] +S33 = max(S33_list) +ax.text(33+x_centre_offset, S33+S33*y_offset_top, 'S', fontsize=13) +Cl37_list = [Cl37_1,Cl37_2,Cl37_3,Cl37_4,Cl37_5] +Cl37 = max(Cl37_list) +ax.text(37+x_centre_offset, Cl37+Cl37*y_offset_top, 'Cl', fontsize=13) +Ar38_list = [Ar38_1,Ar38_2,Ar38_3,Ar38_4,Ar38_5] +Ar38 = max(Ar38_list) +ax.text(38+x_centre_offset, Ar38+Ar38*y_offset_top, 'Ar', fontsize=13) +K39_list = [K39_1,K39_2,K39_3,K39_4,K39_5] +K39 = max(K39_list) +ax.text(39+x_centre_offset, K39+K39*y_offset_top, 'K', fontsize=13) +Ca40_list = [Ca40_1,Ca40_2,Ca40_3,Ca40_4,Ca40_5] +Ca40 = max(Ca40_list) +ax.text(40+x_centre_offset, Ca40+Ca40*y_offset_top, 'Ca', fontsize=13) + + + + +legend_elements = [Line2D([0], [0], marker='s', color='tab:orange', label='Burst 1', + markersize=7), + Line2D([0], [0], marker='^', color='black', label='Burst 2', + markersize=9), + Line2D([0], [0], marker='.', color='#0343df', label='Burst 3', + markersize=13), + Line2D([0], [0], marker='x', color='r', label='Burst 4', + markersize=8), + Line2D([0], [0], marker='+', color='g', label='Burst 5', + markersize=9)] +ax.legend(handles=legend_elements, frameon=False, loc='lower right',prop={'size': 18}) + + +ax.set_xscale('linear') +ax.set_yscale('log') +ax.set_xlim(0,41) +ax.set_yticks([1e-10,1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10]) #replaces tick labels from '10^x' to 'x' +ax.set_yticklabels(['-10','-9','-8','-7','-6','-5','-4','-3','-2','-1','0','1','2','3','4','5','6','7','8','9','10']) #replaces tick labels from '10^x' to 'x' +ax.tick_params(axis='x', labelsize=16) +ax.tick_params(axis='y', labelsize=16) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='1') +plt.minorticks_on() +ax.grid(which='minor', linestyle=':', linewidth='0.4') +ax.hlines(1, 0, 50, color='#000000', linestyle='--', linewidth=0.5) + +ax.set_xlabel('Mass number', fontsize=20) +ax.set_ylabel('Mean overproduction factor $\\mathrm{log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) +# ax.set_ylabel('Mean Overproduction Factor $\\mathrm{\\frac{X_{i}}{X_{i,\\odot}}}$', fontsize=16) + + +plt.show() +# plt.savefig('Asplund_overproduction_plot_quadruple_comparison.pdf', dpi=500) + + + + + + +# Elements not considered when graphing due to not being interested in their abundance +# h2 - Stable +# li6 - Stable +# be9 - Stable +# b10 - Stable +# b11 - Stable +# c9 - decays to B9 which decyas to Be9 which we're not interested in +# c11 - T1/2 = 30.364 min, decays to B11 which we're not interested in +# s36 - Stable +# ar40 - Stable + diff --git a/overproduction_plotters/Overproduction_graph_Asplund09.py b/overproduction_plotters/Overproduction_graph_Asplund09.py new file mode 100644 index 0000000000000000000000000000000000000000..599c15f1257daedc514415bf29369c9779381ec2 --- /dev/null +++ b/overproduction_plotters/Overproduction_graph_Asplund09.py @@ -0,0 +1,202 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +from matplotlib.lines import Line2D +import fastmesareader as fmr + +plotting_tings = 'ejected_h1 ejected_h2 ejected_h3 ejected_he3 ejected_he4 ejected_li6 ejected_li7 ejected_be7 ejected_be9 ejected_b8 ejected_b10 ejected_b11 ejected_c9 ejected_c11 ejected_c12 ejected_c13 ejected_n12 ejected_n13 ejected_n14 ejected_n15 ejected_o13 ejected_o14 ejected_o15 ejected_o16 ejected_o17 ejected_o18 ejected_f17 ejected_f18 ejected_f19 ejected_ne18 ejected_ne19 ejected_ne20 ejected_ne21 ejected_ne22 ejected_na20 ejected_na21 ejected_na22 ejected_na23 ejected_mg21 ejected_mg22 ejected_mg23 ejected_mg24 ejected_mg25 ejected_mg26 ejected_al23 ejected_al24 ejected_al25 ejected_al26 ejected_al27 ejected_si25 ejected_si26 ejected_si27 ejected_si28 ejected_si29 ejected_si30 ejected_p27 ejected_p28 ejected_p29 ejected_p30 ejected_p31 ejected_s29 ejected_s30 ejected_s31 ejected_s32 ejected_s33 ejected_s34 ejected_s35 ejected_s36 ejected_cl31 ejected_cl32 ejected_cl33 ejected_cl34 ejected_cl35 ejected_cl36 ejected_cl37 ejected_ar32 ejected_ar33 ejected_ar34 ejected_ar35 ejected_ar36 ejected_ar37 ejected_ar38 ejected_ar39 ejected_ar40 ejected_k35 ejected_k36 ejected_k37 ejected_k38 ejected_k39 ejected_k40 ejected_ca36 ejected_ca37 ejected_ca38 ejected_ca39 ejected_ca40 ejected_sc40' +h = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +row_index = -1 # the row of data in history.data to plot from. + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + +x_centre_offset = -0.2 +y_offset_top = 0.4 + +# From Asplund et. al. 2009 +H1_solar_mass_frac = 0.738085238 +He3_solar_mass_frac = 4.1251e-05 +He4_solar_mass_frac = 0.248458749 +Li7_solar_mass_frac = 5.347553867866217e-11 +C12_solar_mass_frac = 0.0023479921849246885 +C13_solar_mass_frac = 2.6264022162801824e-05 +N14_solar_mass_frac = 0.0006943429738573174 +N15_solar_mass_frac = 1.5936949716182629e-06 +O16_solar_mass_frac = 0.005745050422480951 +O17_solar_mass_frac = 2.182566435670741e-06 +O18_solar_mass_frac = 1.1517500979792827e-05 +F19_solar_mass_frac = 5.070647693536659e-07 +Ne20_solar_mass_frac = 0.0011625972594930384 +Ne21_solar_mass_frac = 2.7869381311259143e-06 +Ne22_solar_mass_frac = 8.548569964958532e-05 +Na23_solar_mass_frac = 2.9368444780430237e-05 +Mg24_solar_mass_frac = 0.0005544455826402614 +Mg25_solar_mass_frac = 7.019187019119655e-05 +Mg26_solar_mass_frac = 7.72812490805074e-05 +Al27_solar_mass_frac = 5.5900159597141475e-05 +Si28_solar_mass_frac = 0.0006137862206959798 +Si29_solar_mass_frac = 3.116657246812484e-05 +Si30_solar_mass_frac = 2.054523456687628e-05 +P31_solar_mass_frac = 5.852484710740299e-06 +S32_solar_mass_frac = 0.0002941173102666167 +S33_solar_mass_frac = 2.354673504715355e-06 +S34_solar_mass_frac = 1.3291512283195887e-05 +Cl35_solar_mass_frac = 6.160022812039695e-06 +Cl37_solar_mass_frac = 1.9688011679546237e-06 +Ar36_solar_mass_frac = 5.618233360211754e-05 +Ar38_solar_mass_frac = 1.021494559543339e-05 +K39_solar_mass_frac = 2.85828500433324e-06 +Ca40_solar_mass_frac = 6.230278628930155e-05 + +# H1 +H1 = (h.ejected_h1[row_index])/H1_solar_mass_frac +ax.plot(1, H1, color='#0343df', marker='.', markersize=12) +ax.text(1+x_centre_offset, H1+H1*y_offset_top, 'H', fontsize=13) + +# He3=H3+He3 & He4 = B8+He4 +He3 = (h.ejected_h3[row_index]+h.ejected_he3[row_index])/He3_solar_mass_frac +He4 = (h.ejected_b8[row_index]+h.ejected_he4[row_index])/He4_solar_mass_frac +ax.plot((3,4),(He3,He4),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(4+x_centre_offset, He4+He4*y_offset_top, 'He', fontsize=13) + +# Li7= Li7+Be7 +Li7 = (h.ejected_li7[row_index]+h.ejected_be7[row_index])/Li7_solar_mass_frac +ax.plot(7,Li7,color='#0343df',marker='.', markersize=12) +ax.text(7+x_centre_offset, Li7+Li7*y_offset_top, 'Li', fontsize=13) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12 = (h.ejected_n12[row_index]+h.ejected_c12[row_index])/C12_solar_mass_frac +C13 = (h.ejected_n13[row_index]+h.ejected_o13[row_index]+h.ejected_c13[row_index])/C13_solar_mass_frac +ax.plot((12,13),(C12,C13),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(13+x_centre_offset, C13+C13*y_offset_top, 'C', fontsize=13) + +# N14 = O14+N14 & N15 = O15+N15 +N14 = (h.ejected_o14[row_index]+h.ejected_n14[row_index])/N14_solar_mass_frac +N15 = (h.ejected_o15[row_index]+h.ejected_n15[row_index])/N15_solar_mass_frac +ax.plot((14,15),(N14,N15),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(15+x_centre_offset, N15-N15*y_offset_top, 'N', fontsize=13) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16 = (h.ejected_o16[row_index])/O16_solar_mass_frac +O17 = (h.ejected_f17[row_index]+h.ejected_o17[row_index])/O17_solar_mass_frac +O18 = (h.ejected_f18[row_index]+h.ejected_ne18[row_index]+h.ejected_o18[row_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16,O17,O18),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(17+x_centre_offset, O17+O17*y_offset_top, 'O', fontsize=13) + +# F19 = Ne19+F19 +F19 = (h.ejected_ne19[row_index]+h.ejected_f19[row_index])/F19_solar_mass_frac +ax.plot(19, F19, color='#0343df', marker='.', markersize=12) # F19 = Ne19+F19 +ax.text(19+x_centre_offset, F19+F19*y_offset_top, 'F', fontsize=13) + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20 = (h.ejected_na20[row_index]+h.ejected_ne20[row_index])/Ne20_solar_mass_frac +Ne21 = (h.ejected_na21[row_index]+h.ejected_mg21[row_index]+h.ejected_ne21[row_index])/Ne21_solar_mass_frac +Ne22 = (h.ejected_mg22[row_index]+h.ejected_na22[row_index]+h.ejected_ne22[row_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20,Ne21,Ne22),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(21+x_centre_offset, Ne21-Ne21*y_offset_top, 'Ne', fontsize=13) + +# Na23 = Al23+Mg23+Na23 +Na23 = (h.ejected_al23[row_index]+h.ejected_mg23[row_index]+h.ejected_na23[row_index])/Na23_solar_mass_frac +ax.plot(23, Na23, color='#0343df', marker='.', markersize=12) +ax.text(23+x_centre_offset, Na23+Na23*y_offset_top, 'Na', fontsize=13) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24 = (h.ejected_al24[row_index]+h.ejected_mg24[row_index])/Mg24_solar_mass_frac +Mg25 = (h.ejected_al25[row_index]+h.ejected_si25[row_index]+h.ejected_mg25[row_index])/Mg25_solar_mass_frac +Mg26 = (h.ejected_mg26[row_index]+h.ejected_al26[row_index]+h.ejected_si26[row_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24,Mg25,Mg26),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(25+x_centre_offset, Mg25+Mg25*y_offset_top, 'Mg', fontsize=13) + +# Al27 = Si27+P27+Al27 +Al27 = (h.ejected_si27[row_index]+h.ejected_p27[row_index]+h.ejected_al27[row_index])/Al27_solar_mass_frac +ax.plot(27, Al27, color='#0343df', marker='.', markersize=12) +ax.text(27+x_centre_offset, Al27+Al27*y_offset_top, 'Al', fontsize=13) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28 = (h.ejected_p28[row_index]+h.ejected_si28[row_index])/Si28_solar_mass_frac +Si29 = (h.ejected_p29[row_index]+h.ejected_s29[row_index]+h.ejected_si29[row_index])/Si29_solar_mass_frac +Si30 = (h.ejected_p30[row_index]+h.ejected_s30[row_index]+h.ejected_si30[row_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28,Si29,Si30),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(29+x_centre_offset, Si29-Si29*y_offset_top, 'Si', fontsize=13) + +# P31 = S31+Cl31+P31 +P31 = (h.ejected_s31[row_index]+h.ejected_cl31[row_index]+h.ejected_p31[row_index])/P31_solar_mass_frac +ax.plot(31, P31, color='#0343df', marker='.', markersize=12) +ax.text(31+x_centre_offset, P31-P31*y_offset_top, 'P', fontsize=13) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32 = (h.ejected_cl32[row_index]+h.ejected_ar32[row_index]+h.ejected_s32[row_index])/S32_solar_mass_frac +S33 = (h.ejected_cl33[row_index]+h.ejected_ar33[row_index]+h.ejected_s33[row_index])/S33_solar_mass_frac +S34 = (h.ejected_cl34[row_index]+h.ejected_ar34[row_index]+h.ejected_s34[row_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32,S33,S34),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(33+x_centre_offset, S33-S33*y_offset_top, 'S', fontsize=13) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35 = (h.ejected_ar35[row_index]+h.ejected_k35[row_index]+h.ejected_s35[row_index]+h.ejected_cl35[row_index])/Cl35_solar_mass_frac +Cl37 = (h.ejected_ar37[row_index]+h.ejected_k37[row_index]+h.ejected_ca37[row_index]+h.ejected_cl37[row_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35,Cl37),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(37+x_centre_offset, Cl37+Cl37*y_offset_top, 'Cl', fontsize=13) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36 = (h.ejected_k36[row_index]+h.ejected_ca36[row_index]+h.ejected_ar36[row_index]+h.ejected_cl36[row_index])/Ar36_solar_mass_frac +Ar38 = (h.ejected_k38[row_index]+h.ejected_ca38[row_index]+h.ejected_ar38[row_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36,Ar38),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(38+x_centre_offset, Ar38+Ar38*y_offset_top, 'Ar', fontsize=13) + +# K39 = Ca39+K39+Ar39 +K39 = (h.ejected_ca39[row_index]+h.ejected_k39[row_index]+h.ejected_ar39[row_index])/K39_solar_mass_frac +ax.plot(39,K39,linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(39+x_centre_offset, K39+K39*y_offset_top, 'K', fontsize=13) + +# Ca40 = Sc40+K40+Ca40 +Ca40 = (h.ejected_ca40[row_index]+h.ejected_k40[row_index]+h.ejected_sc40[row_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40,linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(40+x_centre_offset, Ca40+Ca40*y_offset_top, 'Ca', fontsize=13) + + +# legend_elements = [Line2D([0], [0], marker='.', color='#0343df', label='Burst 1', +# markersize=5)] +# ax.legend(handles=legend_elements, loc='lower right') + +ax.set_xscale('linear') +ax.set_yscale('log') +ax.set_xlim(0,41) +ax.set_yticks([1e-10,1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10]) #replaces tick labels from '10^x' to 'x' +ax.set_yticklabels(['-10','-9','-8','-7','-6','-5','-4','-3','-2','-1','0','1','2','3','4','5','6','7','8','9','10']) #replaces tick labels from '10^x' to 'x' +ax.tick_params(axis='x', labelsize=16) +ax.tick_params(axis='y', labelsize=16) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='1') +plt.minorticks_on() +ax.grid(which='minor', linestyle=':', linewidth='0.4') +ax.hlines(1, 0, 50, color='#000000', linestyle='--', linewidth=0.5) + +ax.set_xlabel('Mass number', fontsize=20) +ax.set_ylabel('Mean overproduction factor $\\mathrm{log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) +# ax.set_ylabel('Mean Overproduction Factor $\\mathrm{\\frac{X_{i}}{X_{i,\\odot}}}$', fontsize=16) + + +# plt.show() +plt.savefig('Asplund_overproduction_plot_photoshperic_Li7.pdf', dpi=500) + + + + + + +# Elements not considered when graphing due to not being interested in their abundance +# h2 - Stable +# li6 - Stable +# be9 - Stable +# b10 - Stable +# b11 - Stable +# c9 - decays to B9 which decyas to Be9 which we're not interested in +# c11 - T1/2 = 30.364 min, decays to B11 which we're not interested in +# s36 - Stable +# ar40 - Stable + + + diff --git a/overproduction_plotters/Overproduction_graph_Asplund09_with_meteoritic_Li7_abundance.py b/overproduction_plotters/Overproduction_graph_Asplund09_with_meteoritic_Li7_abundance.py new file mode 100644 index 0000000000000000000000000000000000000000..e72657adac94ffec24e3aff1709ba05c1e655f2e --- /dev/null +++ b/overproduction_plotters/Overproduction_graph_Asplund09_with_meteoritic_Li7_abundance.py @@ -0,0 +1,202 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +from matplotlib.lines import Line2D +import fastmesareader as fmr + +plotting_tings = 'ejected_h1 ejected_h2 ejected_h3 ejected_he3 ejected_he4 ejected_li6 ejected_li7 ejected_be7 ejected_be9 ejected_b8 ejected_b10 ejected_b11 ejected_c9 ejected_c11 ejected_c12 ejected_c13 ejected_n12 ejected_n13 ejected_n14 ejected_n15 ejected_o13 ejected_o14 ejected_o15 ejected_o16 ejected_o17 ejected_o18 ejected_f17 ejected_f18 ejected_f19 ejected_ne18 ejected_ne19 ejected_ne20 ejected_ne21 ejected_ne22 ejected_na20 ejected_na21 ejected_na22 ejected_na23 ejected_mg21 ejected_mg22 ejected_mg23 ejected_mg24 ejected_mg25 ejected_mg26 ejected_al23 ejected_al24 ejected_al25 ejected_al26 ejected_al27 ejected_si25 ejected_si26 ejected_si27 ejected_si28 ejected_si29 ejected_si30 ejected_p27 ejected_p28 ejected_p29 ejected_p30 ejected_p31 ejected_s29 ejected_s30 ejected_s31 ejected_s32 ejected_s33 ejected_s34 ejected_s35 ejected_s36 ejected_cl31 ejected_cl32 ejected_cl33 ejected_cl34 ejected_cl35 ejected_cl36 ejected_cl37 ejected_ar32 ejected_ar33 ejected_ar34 ejected_ar35 ejected_ar36 ejected_ar37 ejected_ar38 ejected_ar39 ejected_ar40 ejected_k35 ejected_k36 ejected_k37 ejected_k38 ejected_k39 ejected_k40 ejected_ca36 ejected_ca37 ejected_ca38 ejected_ca39 ejected_ca40 ejected_sc40' +h = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +row_index = -1 # the row of data in history.data to plot from. + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + +x_centre_offset = -0.2 +y_offset_top = 0.4 + +# From Asplund et. al. 2009 with meteoritic Li7 abundance +H1_solar_mass_frac = 0.738085238 +He3_solar_mass_frac = 4.1251e-05 +He4_solar_mass_frac = 0.248458749 +Li7_solar_mass_frac = 8.672710822368672e-09 +C12_solar_mass_frac = 0.0023479905505876756 +C13_solar_mass_frac = 2.6264003881538447e-05 +N14_solar_mass_frac = 0.0006943424905548477 +N15_solar_mass_frac = 1.5936938623153032e-06 +O16_solar_mass_frac = 0.005745046423596879 +O17_solar_mass_frac = 2.182564916479522e-06 +O18_solar_mass_frac = 1.151749296295262e-05 +F19_solar_mass_frac = 5.070644164075505e-07 +Ne20_solar_mass_frac = 0.0011625964502587724 +Ne21_solar_mass_frac = 2.7869361912573875e-06 +Ne22_solar_mass_frac = 8.548564014664323e-05 +Na23_solar_mass_frac = 2.9368424338310953e-05 +Mg24_solar_mass_frac = 0.0005544451967143868 +Mg25_solar_mass_frac = 7.019182133363551e-05 +Mg26_solar_mass_frac = 7.728119528833269e-05 +Al27_solar_mass_frac = 5.590012068742941e-05 +Si28_solar_mass_frac = 0.0006137857934656232 +Si29_solar_mass_frac = 3.116655077440572e-05 +Si30_solar_mass_frac = 2.0545220266216546e-05 +P31_solar_mass_frac = 5.852480637075811e-06 +S32_solar_mass_frac = 0.0002941171055441268 +S33_solar_mass_frac = 2.354671865727761e-06 +S34_solar_mass_frac = 1.329150303154223e-05 +Cl35_solar_mass_frac = 6.160018524311079e-06 +Cl37_solar_mass_frac = 1.968799797556272e-06 +Ar36_solar_mass_frac = 5.6182294495996205e-05 +Ar38_solar_mass_frac = 1.0214938485246322e-05 +K39_solar_mass_frac = 2.8582830148032043e-06 +Ca40_solar_mass_frac = 6.230274292299466e-05 + +# H1 +H1 = (h.ejected_h1[row_index])/H1_solar_mass_frac +ax.plot(1, H1, color='#0343df', marker='.', markersize=12) +ax.text(1+x_centre_offset, H1+H1*y_offset_top, 'H', fontsize=13) + +# He3=H3+He3 & He4 = B8+He4 +He3 = (h.ejected_h3[row_index]+h.ejected_he3[row_index])/He3_solar_mass_frac +He4 = (h.ejected_b8[row_index]+h.ejected_he4[row_index])/He4_solar_mass_frac +ax.plot((3,4),(He3,He4),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(4+x_centre_offset, He4+He4*y_offset_top, 'He', fontsize=13) + +# Li7= Li7+Be7 +Li7 = (h.ejected_li7[row_index]+h.ejected_be7[row_index])/Li7_solar_mass_frac +ax.plot(7,Li7,color='#0343df',marker='.', markersize=12) +ax.text(7+x_centre_offset, Li7+Li7*y_offset_top, 'Li', fontsize=13) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12 = (h.ejected_n12[row_index]+h.ejected_c12[row_index])/C12_solar_mass_frac +C13 = (h.ejected_n13[row_index]+h.ejected_o13[row_index]+h.ejected_c13[row_index])/C13_solar_mass_frac +ax.plot((12,13),(C12,C13),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(13+x_centre_offset, C13+C13*y_offset_top, 'C', fontsize=13) + +# N14 = O14+N14 & N15 = O15+N15 +N14 = (h.ejected_o14[row_index]+h.ejected_n14[row_index])/N14_solar_mass_frac +N15 = (h.ejected_o15[row_index]+h.ejected_n15[row_index])/N15_solar_mass_frac +ax.plot((14,15),(N14,N15),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(15+x_centre_offset, N15-N15*y_offset_top, 'N', fontsize=13) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16 = (h.ejected_o16[row_index])/O16_solar_mass_frac +O17 = (h.ejected_f17[row_index]+h.ejected_o17[row_index])/O17_solar_mass_frac +O18 = (h.ejected_f18[row_index]+h.ejected_ne18[row_index]+h.ejected_o18[row_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16,O17,O18),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(17+x_centre_offset, O17+O17*y_offset_top, 'O', fontsize=13) + +# F19 = Ne19+F19 +F19 = (h.ejected_ne19[row_index]+h.ejected_f19[row_index])/F19_solar_mass_frac +ax.plot(19, F19, color='#0343df', marker='.', markersize=12) # F19 = Ne19+F19 +ax.text(19+x_centre_offset, F19+F19*y_offset_top, 'F', fontsize=13) + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20 = (h.ejected_na20[row_index]+h.ejected_ne20[row_index])/Ne20_solar_mass_frac +Ne21 = (h.ejected_na21[row_index]+h.ejected_mg21[row_index]+h.ejected_ne21[row_index])/Ne21_solar_mass_frac +Ne22 = (h.ejected_mg22[row_index]+h.ejected_na22[row_index]+h.ejected_ne22[row_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20,Ne21,Ne22),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(21+x_centre_offset, Ne21-Ne21*y_offset_top, 'Ne', fontsize=13) + +# Na23 = Al23+Mg23+Na23 +Na23 = (h.ejected_al23[row_index]+h.ejected_mg23[row_index]+h.ejected_na23[row_index])/Na23_solar_mass_frac +ax.plot(23, Na23, color='#0343df', marker='.', markersize=12) +ax.text(23+x_centre_offset, Na23+Na23*y_offset_top, 'Na', fontsize=13) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24 = (h.ejected_al24[row_index]+h.ejected_mg24[row_index])/Mg24_solar_mass_frac +Mg25 = (h.ejected_al25[row_index]+h.ejected_si25[row_index]+h.ejected_mg25[row_index])/Mg25_solar_mass_frac +Mg26 = (h.ejected_mg26[row_index]+h.ejected_al26[row_index]+h.ejected_si26[row_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24,Mg25,Mg26),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(25+x_centre_offset, Mg25+Mg25*y_offset_top, 'Mg', fontsize=13) + +# Al27 = Si27+P27+Al27 +Al27 = (h.ejected_si27[row_index]+h.ejected_p27[row_index]+h.ejected_al27[row_index])/Al27_solar_mass_frac +ax.plot(27, Al27, color='#0343df', marker='.', markersize=12) +ax.text(27+x_centre_offset, Al27+Al27*y_offset_top, 'Al', fontsize=13) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28 = (h.ejected_p28[row_index]+h.ejected_si28[row_index])/Si28_solar_mass_frac +Si29 = (h.ejected_p29[row_index]+h.ejected_s29[row_index]+h.ejected_si29[row_index])/Si29_solar_mass_frac +Si30 = (h.ejected_p30[row_index]+h.ejected_s30[row_index]+h.ejected_si30[row_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28,Si29,Si30),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(29+x_centre_offset, Si29-Si29*y_offset_top, 'Si', fontsize=13) + +# P31 = S31+Cl31+P31 +P31 = (h.ejected_s31[row_index]+h.ejected_cl31[row_index]+h.ejected_p31[row_index])/P31_solar_mass_frac +ax.plot(31, P31, color='#0343df', marker='.', markersize=12) +ax.text(31+x_centre_offset, P31-P31*y_offset_top, 'P', fontsize=13) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32 = (h.ejected_cl32[row_index]+h.ejected_ar32[row_index]+h.ejected_s32[row_index])/S32_solar_mass_frac +S33 = (h.ejected_cl33[row_index]+h.ejected_ar33[row_index]+h.ejected_s33[row_index])/S33_solar_mass_frac +S34 = (h.ejected_cl34[row_index]+h.ejected_ar34[row_index]+h.ejected_s34[row_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32,S33,S34),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(33+x_centre_offset, S33-S33*y_offset_top, 'S', fontsize=13) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35 = (h.ejected_ar35[row_index]+h.ejected_k35[row_index]+h.ejected_s35[row_index]+h.ejected_cl35[row_index])/Cl35_solar_mass_frac +Cl37 = (h.ejected_ar37[row_index]+h.ejected_k37[row_index]+h.ejected_ca37[row_index]+h.ejected_cl37[row_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35,Cl37),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(37+x_centre_offset, Cl37+Cl37*y_offset_top, 'Cl', fontsize=13) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36 = (h.ejected_k36[row_index]+h.ejected_ca36[row_index]+h.ejected_ar36[row_index]+h.ejected_cl36[row_index])/Ar36_solar_mass_frac +Ar38 = (h.ejected_k38[row_index]+h.ejected_ca38[row_index]+h.ejected_ar38[row_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36,Ar38),linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(38+x_centre_offset, Ar38+Ar38*y_offset_top, 'Ar', fontsize=13) + +# K39 = Ca39+K39+Ar39 +K39 = (h.ejected_ca39[row_index]+h.ejected_k39[row_index]+h.ejected_ar39[row_index])/K39_solar_mass_frac +ax.plot(39,K39,linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(39+x_centre_offset, K39+K39*y_offset_top, 'K', fontsize=13) + +# Ca40 = Sc40+K40+Ca40 +Ca40 = (h.ejected_ca40[row_index]+h.ejected_k40[row_index]+h.ejected_sc40[row_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40,linewidth='1',color='#0343df',marker='.', markersize=12) +ax.text(40+x_centre_offset, Ca40+Ca40*y_offset_top, 'Ca', fontsize=13) + + +# legend_elements = [Line2D([0], [0], marker='.', color='#0343df', label='Burst 1', +# markersize=5)] +# ax.legend(handles=legend_elements, loc='lower right') + +ax.set_xscale('linear') +ax.set_yscale('log') +ax.set_xlim(0,41) +ax.set_yticks([1e-10,1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10]) #replaces tick labels from '10^x' to 'x' +ax.set_yticklabels(['-10','-9','-8','-7','-6','-5','-4','-3','-2','-1','0','1','2','3','4','5','6','7','8','9','10']) #replaces tick labels from '10^x' to 'x' +ax.tick_params(axis='x', labelsize=16) +ax.tick_params(axis='y', labelsize=16) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='1') +plt.minorticks_on() +ax.grid(which='minor', linestyle=':', linewidth='0.4') +ax.hlines(1, 0, 50, color='#000000', linestyle='--', linewidth=0.5) + +ax.set_xlabel('Mass number', fontsize=20) +ax.set_ylabel('Mean overproduction factor $\\mathrm{log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) +# ax.set_ylabel('Mean Overproduction Factor $\\mathrm{\\frac{X_{i}}{X_{i,\\odot}}}$', fontsize=16) + + +# plt.show() +plt.savefig('Asplund_overproduction_plot_meteoritic_Li7.pdf', dpi=500) + + + + + + +# Elements not considered when graphing due to not being interested in their abundance +# h2 - Stable +# li6 - Stable +# be9 - Stable +# b10 - Stable +# b11 - Stable +# c9 - decays to B9 which decyas to Be9 which we're not interested in +# c11 - T1/2 = 30.364 min, decays to B11 which we're not interested in +# s36 - Stable +# ar40 - Stable + + + diff --git a/overproduction_plotters/Overproduction_graph.py b/overproduction_plotters/Overproduction_graph_Lodders09.py similarity index 92% rename from overproduction_plotters/Overproduction_graph.py rename to overproduction_plotters/Overproduction_graph_Lodders09.py index 022bd870a352363bb9ec3a4d3add37155dcaee6e..baf34043cc0103281095f70ca3255162a37dabd5 100644 --- a/overproduction_plotters/Overproduction_graph.py +++ b/overproduction_plotters/Overproduction_graph_Lodders09.py @@ -16,30 +16,30 @@ y_offset_top = 0.4 # H1 H1 = (h.ejected_h1[row_index])/7.0945477357E-01 -ax.plot(1, H1, color='#0343df', marker='.', markersize=10) +ax.plot(1, H1, color='#0343df', marker='.', markersize=12) ax.text(1+x_centre_offset, H1+H1*y_offset_top, 'H', fontsize=13) # He3=H3+He3 & He4 = B8+He4 He3 = (h.ejected_h3[row_index]+h.ejected_he3[row_index])/8.4641515456E-05 He4 = (h.ejected_b8[row_index]+h.ejected_he4[row_index])/2.7501644504E-01 -ax.plot((3,4),(He3,He4),linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot((3,4),(He3,He4),linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(4+x_centre_offset, He4+He4*y_offset_top, 'He', fontsize=13) # Li7= Li7+Be7 Li7 = (h.ejected_li7[row_index]+h.ejected_be7[row_index])/9.8556690166E-09 -ax.plot(7,Li7,color='#0343df',marker='.', markersize=10) +ax.plot(7,Li7,color='#0343df',marker='.', markersize=12) ax.text(7+x_centre_offset, Li7+Li7*y_offset_top, 'Li', fontsize=13) # C12 = N12+C12 & C13 = N13+O13+C13 C12 = (h.ejected_n12[row_index]+h.ejected_c12[row_index])/2.3370919413E-03 C13 = (h.ejected_n13[row_index]+h.ejected_o13[row_index]+h.ejected_c13[row_index])/2.8452149548E-05 -ax.plot((12,13),(C12,C13),linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot((12,13),(C12,C13),linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(13+x_centre_offset, C13+C13*y_offset_top, 'C', fontsize=13) # N14 = O14+N14 & N15 = O15+N15 N14 = (h.ejected_o14[row_index]+h.ejected_n14[row_index])/8.1299682160E-04 N15 = (h.ejected_o15[row_index]+h.ejected_n15[row_index])/3.1966552925E-06 -ax.plot((14,15),(N14,N15),linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot((14,15),(N14,N15),linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(15+x_centre_offset, N15-N15*y_offset_top, 'N', fontsize=13) @@ -47,78 +47,78 @@ ax.text(15+x_centre_offset, N15-N15*y_offset_top, 'N', fontsize=13) O16 = (h.ejected_o16[row_index])/6.8808895413E-03 O17 = (h.ejected_f17[row_index]+h.ejected_o17[row_index])/2.7474252428E-06 O18 = (h.ejected_f18[row_index]+h.ejected_ne18[row_index]+h.ejected_o18[row_index])/1.5531307205E-05 -ax.plot((16,17,18),(O16,O17,O18),linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot((16,17,18),(O16,O17,O18),linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(17+x_centre_offset, O17+O17*y_offset_top, 'O', fontsize=13) # F19 = Ne19+F19 F19 = (h.ejected_ne19[row_index]+h.ejected_f19[row_index])/4.1844135602E-07 -ax.plot(19, F19, color='#0343df', marker='.', markersize=10) # F19 = Ne19+F19 +ax.plot(19, F19, color='#0343df', marker='.', markersize=12) # F19 = Ne19+F19 ax.text(19+x_centre_offset, F19+F19*y_offset_top, 'F', fontsize=13) # Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 Ne20 = (h.ejected_na20[row_index]+h.ejected_ne20[row_index])/1.6763950634E-03 Ne21 = (h.ejected_na21[row_index]+h.ejected_mg21[row_index]+h.ejected_ne21[row_index])/4.2164622894E-06 Ne22 = (h.ejected_mg22[row_index]+h.ejected_na22[row_index]+h.ejected_ne22[row_index])/1.3559077719E-04 -ax.plot((20,21,22),(Ne20,Ne21,Ne22),linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot((20,21,22),(Ne20,Ne21,Ne22),linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(21+x_centre_offset, Ne21-Ne21*y_offset_top, 'Ne', fontsize=13) # Na23 = Al23+Mg23+Na23 Na23 = (h.ejected_al23[row_index]+h.ejected_mg23[row_index]+h.ejected_na23[row_index])/3.6352024324E-05 -ax.plot(23, Na23, color='#0343df', marker='.', markersize=10) +ax.plot(23, Na23, color='#0343df', marker='.', markersize=12) ax.text(23+x_centre_offset, Na23+Na23*y_offset_top, 'Na', fontsize=13) # Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 Mg24 = (h.ejected_al24[row_index]+h.ejected_mg24[row_index])/5.3250196132E-04 Mg25 = (h.ejected_al25[row_index]+h.ejected_si25[row_index]+h.ejected_mg25[row_index])/7.0534596214E-05 Mg26 = (h.ejected_mg26[row_index]+h.ejected_al26[row_index]+h.ejected_si26[row_index])/8.0477919874E-05 -ax.plot((24,25,26),(Mg24,Mg25,Mg26),linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot((24,25,26),(Mg24,Mg25,Mg26),linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(25+x_centre_offset, Mg25+Mg25*y_offset_top, 'Mg', fontsize=13) # Al27 = Si27+P27+Al27 Al27 = (h.ejected_si27[row_index]+h.ejected_p27[row_index]+h.ejected_al27[row_index])/6.2568980455E-05 -ax.plot(27, Al27, color='#0343df', marker='.', markersize=10) +ax.plot(27, Al27, color='#0343df', marker='.', markersize=12) ax.text(27+x_centre_offset, Al27+Al27*y_offset_top, 'Al', fontsize=13) # Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 Si28 = (h.ejected_p28[row_index]+h.ejected_si28[row_index])/7.0715383917E-04 Si29 = (h.ejected_p29[row_index]+h.ejected_s29[row_index]+h.ejected_si29[row_index])/3.7176525818E-05 Si30 = (h.ejected_p30[row_index]+h.ejected_s30[row_index]+h.ejected_si30[row_index])/2.5392454637E-05 -ax.plot((28,29,30),(Si28,Si29,Si30),linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot((28,29,30),(Si28,Si29,Si30),linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(29+x_centre_offset, Si29-Si29*y_offset_top, 'Si', fontsize=13) # P31 = S31+Cl31+P31 P31 = (h.ejected_s31[row_index]+h.ejected_cl31[row_index]+h.ejected_p31[row_index])/7.0479812061E-06 -ax.plot(31, P31, color='#0343df', marker='.', markersize=10) +ax.plot(31, P31, color='#0343df', marker='.', markersize=12) ax.text(31+x_centre_offset, P31-P31*y_offset_top, 'P', fontsize=13) # S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 S32 = (h.ejected_cl32[row_index]+h.ejected_ar32[row_index]+h.ejected_s32[row_index])/3.5061857535E-04 S33 = (h.ejected_cl33[row_index]+h.ejected_ar33[row_index]+h.ejected_s33[row_index])/2.8564457061E-06 S34 = (h.ejected_cl34[row_index]+h.ejected_ar34[row_index]+h.ejected_s34[row_index])/1.6577684516E-05 -ax.plot((32,33,34),(S32,S33,S34),linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot((32,33,34),(S32,S33,S34),linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(33+x_centre_offset, S33-S33*y_offset_top, 'S', fontsize=13) # Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 Cl35 = (h.ejected_ar35[row_index]+h.ejected_k35[row_index]+h.ejected_s35[row_index]+h.ejected_cl35[row_index])/3.7581928546E-06 Cl37 = (h.ejected_ar37[row_index]+h.ejected_k37[row_index]+h.ejected_ca37[row_index]+h.ejected_cl37[row_index])/1.2668835242E-06 -ax.plot((35,37),(Cl35,Cl37),linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot((35,37),(Cl35,Cl37),linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(37+x_centre_offset, Cl37+Cl37*y_offset_top, 'Cl', fontsize=13) # Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 Ar36 = (h.ejected_k36[row_index]+h.ejected_ca36[row_index]+h.ejected_ar36[row_index]+h.ejected_cl36[row_index])/7.7311395865E-05 Ar38 = (h.ejected_k38[row_index]+h.ejected_ca38[row_index]+h.ejected_ar38[row_index])/1.4884854207E-05 -ax.plot((36,38),(Ar36,Ar38),linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot((36,38),(Ar36,Ar38),linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(38+x_centre_offset, Ar38+Ar38*y_offset_top, 'Ar', fontsize=13) # K39 = Ca39+K39+Ar39 K39 = (h.ejected_ca39[row_index]+h.ejected_k39[row_index]+h.ejected_ar39[row_index])/3.7390184012E-06 -ax.plot(39,K39,linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot(39,K39,linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(39+x_centre_offset, K39+K39*y_offset_top, 'K', fontsize=13) # Ca40 = Sc40+K40+Ca40 Ca40 = (h.ejected_ca40[row_index]+h.ejected_k40[row_index]+h.ejected_sc40[row_index])/6.4097458307E-05 -ax.plot(40,Ca40,linewidth='1',color='#0343df',marker='.', markersize=10) +ax.plot(40,Ca40,linewidth='1',color='#0343df',marker='.', markersize=12) ax.text(40+x_centre_offset, Ca40+Ca40*y_offset_top, 'Ca', fontsize=13) @@ -140,12 +140,12 @@ ax.grid(which='minor', linestyle=':', linewidth='0.4') ax.hlines(1, 0, 50, color='#000000', linestyle='--', linewidth=0.5) ax.set_xlabel('Mass Number', fontsize=20) -ax.set_ylabel('Mean Overproduction Factor $\\mathrm{Log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) +ax.set_ylabel('Mean Overproduction Factor $\\mathrm{log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) # ax.set_ylabel('Mean Overproduction Factor $\\mathrm{\\frac{X_{i}}{X_{i,\\odot}}}$', fontsize=16) -plt.show() -# plt.savefig('overproduction_plot.pdf', dpi=500) +# plt.show() +plt.savefig('Lodders09_overproduction_plot.pdf', dpi=500) diff --git a/overproduction_plotters/Overproduction_graph_restart_version.py b/overproduction_plotters/Overproduction_graph_restart_version.py index 048912d97d82295e682a41c631cdb9b1f7364667..add8b3d90d9cc4afe349bcf3354bf09386665674 100644 --- a/overproduction_plotters/Overproduction_graph_restart_version.py +++ b/overproduction_plotters/Overproduction_graph_restart_version.py @@ -243,7 +243,7 @@ ax.grid(which='minor', linestyle=':', linewidth='0.4') ax.hlines(1, 0, 50, color='#000000', linestyle='--', linewidth=0.5) ax.set_xlabel('Mass Number', fontsize=20) -ax.set_ylabel('Mean Overproduction Factor $\\mathrm{Log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) +ax.set_ylabel('Mean Overproduction Factor $\\mathrm{log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) # ax.set_ylabel('Mean Overproduction Factor $\\mathrm{\\frac{X_{i}}{X_{i,\\odot}}}$', fontsize=16) diff --git a/overproduction_plotters/Overproduction_quadruple_comparison_graph_Asplund09.py b/overproduction_plotters/Overproduction_quadruple_comparison_graph_Asplund09.py new file mode 100644 index 0000000000000000000000000000000000000000..832467824bd1c6534b9c1e9a57e31e9c6fb908ce --- /dev/null +++ b/overproduction_plotters/Overproduction_quadruple_comparison_graph_Asplund09.py @@ -0,0 +1,533 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +from matplotlib.lines import Line2D +import fastmesareader as fmr + +plotting_tings = 'ejected_h1 ejected_h2 ejected_h3 ejected_he3 ejected_he4 ejected_li6 ejected_li7 ejected_be7 ejected_be9 ejected_b8 ejected_b10 ejected_b11 ejected_c9 ejected_c11 ejected_c12 ejected_c13 ejected_n12 ejected_n13 ejected_n14 ejected_n15 ejected_o13 ejected_o14 ejected_o15 ejected_o16 ejected_o17 ejected_o18 ejected_f17 ejected_f18 ejected_f19 ejected_ne18 ejected_ne19 ejected_ne20 ejected_ne21 ejected_ne22 ejected_na20 ejected_na21 ejected_na22 ejected_na23 ejected_mg21 ejected_mg22 ejected_mg23 ejected_mg24 ejected_mg25 ejected_mg26 ejected_al23 ejected_al24 ejected_al25 ejected_al26 ejected_al27 ejected_si25 ejected_si26 ejected_si27 ejected_si28 ejected_si29 ejected_si30 ejected_p27 ejected_p28 ejected_p29 ejected_p30 ejected_p31 ejected_s29 ejected_s30 ejected_s31 ejected_s32 ejected_s33 ejected_s34 ejected_s35 ejected_s36 ejected_cl31 ejected_cl32 ejected_cl33 ejected_cl34 ejected_cl35 ejected_cl36 ejected_cl37 ejected_ar32 ejected_ar33 ejected_ar34 ejected_ar35 ejected_ar36 ejected_ar37 ejected_ar38 ejected_ar39 ejected_ar40 ejected_k35 ejected_k36 ejected_k37 ejected_k38 ejected_k39 ejected_k40 ejected_ca36 ejected_ca37 ejected_ca38 ejected_ca39 ejected_ca40 ejected_sc40' +a = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +b = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +c = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +d = fmr.FastMesaReader('LOGS/history.data', plotting_tings) + +plota_index = -1 +plotb_index = -1 +plotc_index = -1 +plotd_index = -1 + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + +x_centre_offset = -0.3 #-0.2 +x_centre_offset_2 = -0.2 +y_offset_top = 0.5 +y_offset_bot = 0.55 + +# From Asplund et. al. 2009 +H1_solar_mass_frac = 0.738085238 +He3_solar_mass_frac = 4.1251e-05 +He4_solar_mass_frac = 0.248458749 +Li7_solar_mass_frac = 5.347553867866217e-11 +C12_solar_mass_frac = 0.0023479921849246885 +C13_solar_mass_frac = 2.6264022162801824e-05 +N14_solar_mass_frac = 0.0006943429738573174 +N15_solar_mass_frac = 1.5936949716182629e-06 +O16_solar_mass_frac = 0.005745050422480951 +O17_solar_mass_frac = 2.182566435670741e-06 +O18_solar_mass_frac = 1.1517500979792827e-05 +F19_solar_mass_frac = 5.070647693536659e-07 +Ne20_solar_mass_frac = 0.0011625972594930384 +Ne21_solar_mass_frac = 2.7869381311259143e-06 +Ne22_solar_mass_frac = 8.548569964958532e-05 +Na23_solar_mass_frac = 2.9368444780430237e-05 +Mg24_solar_mass_frac = 0.0005544455826402614 +Mg25_solar_mass_frac = 7.019187019119655e-05 +Mg26_solar_mass_frac = 7.72812490805074e-05 +Al27_solar_mass_frac = 5.5900159597141475e-05 +Si28_solar_mass_frac = 0.0006137862206959798 +Si29_solar_mass_frac = 3.116657246812484e-05 +Si30_solar_mass_frac = 2.054523456687628e-05 +P31_solar_mass_frac = 5.852484710740299e-06 +S32_solar_mass_frac = 0.0002941173102666167 +S33_solar_mass_frac = 2.354673504715355e-06 +S34_solar_mass_frac = 1.3291512283195887e-05 +Cl35_solar_mass_frac = 6.160022812039695e-06 +Cl37_solar_mass_frac = 1.9688011679546237e-06 +Ar36_solar_mass_frac = 5.618233360211754e-05 +Ar38_solar_mass_frac = 1.021494559543339e-05 +K39_solar_mass_frac = 2.85828500433324e-06 +Ca40_solar_mass_frac = 6.230278628930155e-05 + + +H1_1 = (a.ejected_h1[plota_index])/H1_solar_mass_frac +ax.plot(1, H1_1, color='tab:orange', marker='s', markersize=6) + +# He3=H3+He3 & He4 = B8+He4 +He3_1 = (a.ejected_h3[plota_index]+a.ejected_he3[plota_index])/He3_solar_mass_frac +He4_1 = (a.ejected_b8[plota_index]+a.ejected_he4[plota_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_1,He4_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Li7= Li7+Be7 +Li7_1 = (a.ejected_li7[plota_index]+a.ejected_be7[plota_index])/Li7_solar_mass_frac +ax.plot(7,Li7_1,color='tab:orange',marker='s', markersize=6) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_1 = (a.ejected_n12[plota_index]+a.ejected_c12[plota_index])/C12_solar_mass_frac +C13_1 = (a.ejected_n13[plota_index]+a.ejected_o13[plota_index]+a.ejected_c13[plota_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_1,C13_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# N14 = O14+N14 & N15 = O15+N15 +N14_1 = (a.ejected_o14[plota_index]+a.ejected_n14[plota_index])/N14_solar_mass_frac +N15_1 = (a.ejected_o15[plota_index]+a.ejected_n15[plota_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_1,N15_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_1 = (a.ejected_o16[plota_index])/O16_solar_mass_frac +O17_1 = (a.ejected_f17[plota_index]+a.ejected_o17[plota_index])/O17_solar_mass_frac +O18_1 = (a.ejected_f18[plota_index]+a.ejected_ne18[plota_index]+a.ejected_o18[plota_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_1,O17_1,O18_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# F19 = Ne19+F19 +F19_1 = (a.ejected_ne19[plota_index]+a.ejected_f19[plota_index])/F19_solar_mass_frac +ax.plot(19, F19_1, color='tab:orange', marker='s', markersize=6) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_1 = (a.ejected_na20[plota_index]+a.ejected_ne20[plota_index])/Ne20_solar_mass_frac +Ne21_1 = (a.ejected_na21[plota_index]+a.ejected_mg21[plota_index]+a.ejected_ne21[plota_index])/Ne21_solar_mass_frac +Ne22_1 = (a.ejected_mg22[plota_index]+a.ejected_na22[plota_index]+a.ejected_ne22[plota_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_1,Ne21_1,Ne22_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Na23 = Al23+Mg23+Na23 +Na23_1 = (a.ejected_al23[plota_index]+a.ejected_mg23[plota_index]+a.ejected_na23[plota_index])/Na23_solar_mass_frac +ax.plot(23, Na23_1, color='tab:orange', marker='s', markersize=6) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_1 = (a.ejected_al24[plota_index]+a.ejected_mg24[plota_index])/Mg24_solar_mass_frac +Mg25_1 = (a.ejected_al25[plota_index]+a.ejected_si25[plota_index]+a.ejected_mg25[plota_index])/Mg25_solar_mass_frac +Mg26_1 = (a.ejected_mg26[plota_index]+a.ejected_al26[plota_index]+a.ejected_si26[plota_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_1,Mg25_1,Mg26_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Al27 = Si27+P27+Al27 +Al27_1 = (a.ejected_si27[plota_index]+a.ejected_p27[plota_index]+a.ejected_al27[plota_index])/Al27_solar_mass_frac +ax.plot(27, Al27_1, color='tab:orange', marker='s', markersize=6) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_1 = (a.ejected_p28[plota_index]+a.ejected_si28[plota_index])/Si28_solar_mass_frac +Si29_1 = (a.ejected_p29[plota_index]+a.ejected_s29[plota_index]+a.ejected_si29[plota_index])/Si29_solar_mass_frac +Si30_1 = (a.ejected_p30[plota_index]+a.ejected_s30[plota_index]+a.ejected_si30[plota_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_1,Si29_1,Si30_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# P31 = S31+Cl31+P31 +P31_1 = (a.ejected_s31[plota_index]+a.ejected_cl31[plota_index]+a.ejected_p31[plota_index])/P31_solar_mass_frac +ax.plot(31, P31_1, color='tab:orange', marker='s', markersize=6) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_1 = (a.ejected_cl32[plota_index]+a.ejected_ar32[plota_index]+a.ejected_s32[plota_index])/S32_solar_mass_frac +S33_1 = (a.ejected_cl33[plota_index]+a.ejected_ar33[plota_index]+a.ejected_s33[plota_index])/S33_solar_mass_frac +S34_1 = (a.ejected_cl34[plota_index]+a.ejected_ar34[plota_index]+a.ejected_s34[plota_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_1,S33_1,S34_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_1 = (a.ejected_ar35[plota_index]+a.ejected_k35[plota_index]+a.ejected_s35[plota_index]+a.ejected_cl35[plota_index])/Cl35_solar_mass_frac +Cl37_1 = (a.ejected_ar37[plota_index]+a.ejected_k37[plota_index]+a.ejected_ca37[plota_index]+a.ejected_cl37[plota_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_1,Cl37_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_1 = (a.ejected_k36[plota_index]+a.ejected_ca36[plota_index]+a.ejected_ar36[plota_index]+a.ejected_cl36[plota_index])/Ar36_solar_mass_frac +Ar38_1 = (a.ejected_k38[plota_index]+a.ejected_ca38[plota_index]+a.ejected_ar38[plota_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_1,Ar38_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# K39 = Ca39+K39+Ar39 +K39_1 = (a.ejected_ca39[plota_index]+a.ejected_k39[plota_index]+a.ejected_ar39[plota_index])/K39_solar_mass_frac +ax.plot(39,K39_1,linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Ca40 = Sc40+K40+Ca40 +Ca40_1 = (a.ejected_ca40[plota_index]+a.ejected_k40[plota_index]+a.ejected_sc40[plota_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_1,linewidth='1',color='tab:orange',marker='s', markersize=6) + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + + +# H1 +H1_2 = (b.ejected_h1[plotb_index])/H1_solar_mass_frac +ax.plot(1, H1_2, color='black', marker='^', markersize=8) + +# He3=H3+He3 & He4 = B8+He4 +He3_2 = (b.ejected_h3[plotb_index]+b.ejected_he3[plotb_index])/He3_solar_mass_frac +He4_2 = (b.ejected_b8[plotb_index]+b.ejected_he4[plotb_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_2,He4_2),linewidth='1',color='black',marker='^', markersize=8) + +# Li7= Li7+Be7 +Li7_2 = (b.ejected_li7[plotb_index]+b.ejected_be7[plotb_index])/Li7_solar_mass_frac +ax.plot(7,Li7_2,color='black',marker='^', markersize=8) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_2 = (b.ejected_n12[plotb_index]+b.ejected_c12[plotb_index])/C12_solar_mass_frac +C13_2 = (b.ejected_n13[plotb_index]+b.ejected_o13[plotb_index]+b.ejected_c13[plotb_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_2,C13_2),linewidth='1',color='black',marker='^', markersize=8) + +# N14 = O14+N14 & N15 = O15+N15 +N14_2 = (b.ejected_o14[plotb_index]+b.ejected_n14[plotb_index])/N14_solar_mass_frac +N15_2 = (b.ejected_o15[plotb_index]+b.ejected_n15[plotb_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_2,N15_2),linewidth='1',color='black',marker='^', markersize=8) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_2 = (b.ejected_o16[plotb_index])/O16_solar_mass_frac +O17_2 = (b.ejected_f17[plotb_index]+b.ejected_o17[plotb_index])/O17_solar_mass_frac +O18_2 = (b.ejected_f18[plotb_index]+b.ejected_ne18[plotb_index]+b.ejected_o18[plotb_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_2,O17_2,O18_2),linewidth='1',color='black',marker='^', markersize=8) + +# F19 = Ne19+F19 +F19_2 = (b.ejected_ne19[plotb_index]+b.ejected_f19[plotb_index])/F19_solar_mass_frac +ax.plot(19, F19_2, color='black', marker='^', markersize=8) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_2 = (b.ejected_na20[plotb_index]+b.ejected_ne20[plotb_index])/Ne20_solar_mass_frac +Ne21_2 = (b.ejected_na21[plotb_index]+b.ejected_mg21[plotb_index]+b.ejected_ne21[plotb_index])/Ne21_solar_mass_frac +Ne22_2 = (b.ejected_mg22[plotb_index]+b.ejected_na22[plotb_index]+b.ejected_ne22[plotb_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_2,Ne21_2,Ne22_2),linewidth='1',color='black',marker='^', markersize=8) + +# Na23 = Al23+Mg23+Na23 +Na23_2 = (b.ejected_al23[plotb_index]+b.ejected_mg23[plotb_index]+b.ejected_na23[plotb_index])/Na23_solar_mass_frac +ax.plot(23, Na23_2, color='black', marker='^', markersize=8) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_2 = (b.ejected_al24[plotb_index]+b.ejected_mg24[plotb_index])/Mg24_solar_mass_frac +Mg25_2 = (b.ejected_al25[plotb_index]+b.ejected_si25[plotb_index]+b.ejected_mg25[plotb_index])/Mg25_solar_mass_frac +Mg26_2 = (b.ejected_mg26[plotb_index]+b.ejected_al26[plotb_index]+b.ejected_si26[plotb_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_2,Mg25_2,Mg26_2),linewidth='1',color='black',marker='^', markersize=8) + +# Al27 = Si27+P27+Al27 +Al27_2 = (b.ejected_si27[plotb_index]+b.ejected_p27[plotb_index]+b.ejected_al27[plotb_index])/Al27_solar_mass_frac +ax.plot(27, Al27_2, color='black', marker='^', markersize=8) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_2 = (b.ejected_p28[plotb_index]+b.ejected_si28[plotb_index])/Si28_solar_mass_frac +Si29_2 = (b.ejected_p29[plotb_index]+b.ejected_s29[plotb_index]+b.ejected_si29[plotb_index])/Si29_solar_mass_frac +Si30_2 = (b.ejected_p30[plotb_index]+b.ejected_s30[plotb_index]+b.ejected_si30[plotb_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_2,Si29_2,Si30_2),linewidth='1',color='black',marker='^', markersize=8) + +# P31 = S31+Cl31+P31 +P31_2 = (b.ejected_s31[plotb_index]+b.ejected_cl31[plotb_index]+b.ejected_p31[plotb_index])/P31_solar_mass_frac +ax.plot(31, P31_2, color='black', marker='^', markersize=8) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_2 = (b.ejected_cl32[plotb_index]+b.ejected_ar32[plotb_index]+b.ejected_s32[plotb_index])/S32_solar_mass_frac +S33_2 = (b.ejected_cl33[plotb_index]+b.ejected_ar33[plotb_index]+b.ejected_s33[plotb_index])/S33_solar_mass_frac +S34_2 = (b.ejected_cl34[plotb_index]+b.ejected_ar34[plotb_index]+b.ejected_s34[plotb_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_2,S33_2,S34_2),linewidth='1',color='black',marker='^', markersize=8) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_2 = (b.ejected_ar35[plotb_index]+b.ejected_k35[plotb_index]+b.ejected_s35[plotb_index]+b.ejected_cl35[plotb_index])/Cl35_solar_mass_frac +Cl37_2 = (b.ejected_ar37[plotb_index]+b.ejected_k37[plotb_index]+b.ejected_ca37[plotb_index]+b.ejected_cl37[plotb_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_2,Cl37_2),linewidth='1',color='black',marker='^', markersize=8) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_2 = (b.ejected_k36[plotb_index]+b.ejected_ca36[plotb_index]+b.ejected_ar36[plotb_index]+b.ejected_cl36[plotb_index])/Ar36_solar_mass_frac +Ar38_2 = (b.ejected_k38[plotb_index]+b.ejected_ca38[plotb_index]+b.ejected_ar38[plotb_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_2,Ar38_2),linewidth='1',color='black',marker='^', markersize=8) + +# K39 = Ca39+K39+Ar39 +K39_2 = (b.ejected_ca39[plotb_index]+b.ejected_k39[plotb_index]+b.ejected_ar39[plotb_index])/K39_solar_mass_frac +ax.plot(39,K39_2,linewidth='1',color='black',marker='^', markersize=8) + +# Ca40 = Sc40+K40+Ca40 +Ca40_2 = (b.ejected_ca40[plotb_index]+b.ejected_k40[plotb_index]+b.ejected_sc40[plotb_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_2,linewidth='1',color='black',marker='^', markersize=8) + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + +H1_3 = (c.ejected_h1[plotc_index])/H1_solar_mass_frac +ax.plot(1, H1_3, color='#0343df', marker='.', markersize=12) + +# He3=H3+He3 & He4 = B8+He4 +He3_3 = (c.ejected_h3[plotc_index]+c.ejected_he3[plotc_index])/He3_solar_mass_frac +He4_3 = (c.ejected_b8[plotc_index]+c.ejected_he4[plotc_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_3,He4_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Li7= Li7+Be7 +Li7_3 = (c.ejected_li7[plotc_index]+c.ejected_be7[plotc_index])/Li7_solar_mass_frac +ax.plot(7,Li7_3,color='#0343df',marker='.', markersize=12) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_3 = (c.ejected_n12[plotc_index]+c.ejected_c12[plotc_index])/C12_solar_mass_frac +C13_3 = (c.ejected_n13[plotc_index]+c.ejected_o13[plotc_index]+c.ejected_c13[plotc_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_3,C13_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# N14 = O14+N14 & N15 = O15+N15 +N14_3 = (c.ejected_o14[plotc_index]+c.ejected_n14[plotc_index])/N14_solar_mass_frac +N15_3 = (c.ejected_o15[plotc_index]+c.ejected_n15[plotc_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_3,N15_3),linewidth='1',color='#0343df',marker='.', markersize=12) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_3 = (c.ejected_o16[plotc_index])/O16_solar_mass_frac +O17_3 = (c.ejected_f17[plotc_index]+c.ejected_o17[plotc_index])/O17_solar_mass_frac +O18_3 = (c.ejected_f18[plotc_index]+c.ejected_ne18[plotc_index]+c.ejected_o18[plotc_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_3,O17_3,O18_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# F19 = Ne19+F19 +F19_3 = (c.ejected_ne19[plotc_index]+c.ejected_f19[plotc_index])/F19_solar_mass_frac +ax.plot(19, F19_3, color='#0343df', marker='.', markersize=12) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_3 = (c.ejected_na20[plotc_index]+c.ejected_ne20[plotc_index])/Ne20_solar_mass_frac +Ne21_3 = (c.ejected_na21[plotc_index]+c.ejected_mg21[plotc_index]+c.ejected_ne21[plotc_index])/Ne21_solar_mass_frac +Ne22_3 = (c.ejected_mg22[plotc_index]+c.ejected_na22[plotc_index]+c.ejected_ne22[plotc_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_3,Ne21_3,Ne22_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Na23 = Al23+Mg23+Na23 +Na23_3 = (c.ejected_al23[plotc_index]+c.ejected_mg23[plotc_index]+c.ejected_na23[plotc_index])/Na23_solar_mass_frac +ax.plot(23, Na23_3, color='#0343df', marker='.', markersize=12) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_3 = (c.ejected_al24[plotc_index]+c.ejected_mg24[plotc_index])/Mg24_solar_mass_frac +Mg25_3 = (c.ejected_al25[plotc_index]+c.ejected_si25[plotc_index]+c.ejected_mg25[plotc_index])/Mg25_solar_mass_frac +Mg26_3 = (c.ejected_mg26[plotc_index]+c.ejected_al26[plotc_index]+c.ejected_si26[plotc_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_3,Mg25_3,Mg26_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Al27 = Si27+P27+Al27 +Al27_3 = (c.ejected_si27[plotc_index]+c.ejected_p27[plotc_index]+c.ejected_al27[plotc_index])/Al27_solar_mass_frac +ax.plot(27, Al27_3, color='#0343df', marker='.', markersize=12) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_3 = (c.ejected_p28[plotc_index]+c.ejected_si28[plotc_index])/Si28_solar_mass_frac +Si29_3 = (c.ejected_p29[plotc_index]+c.ejected_s29[plotc_index]+c.ejected_si29[plotc_index])/Si29_solar_mass_frac +Si30_3 = (c.ejected_p30[plotc_index]+c.ejected_s30[plotc_index]+c.ejected_si30[plotc_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_3,Si29_3,Si30_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# P31 = S31+Cl31+P31 +P31_3 = (c.ejected_s31[plotc_index]+c.ejected_cl31[plotc_index]+c.ejected_p31[plotc_index])/P31_solar_mass_frac +ax.plot(31, P31_3, color='#0343df', marker='.', markersize=12) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_3 = (c.ejected_cl32[plotc_index]+c.ejected_ar32[plotc_index]+c.ejected_s32[plotc_index])/S32_solar_mass_frac +S33_3 = (c.ejected_cl33[plotc_index]+c.ejected_ar33[plotc_index]+c.ejected_s33[plotc_index])/S33_solar_mass_frac +S34_3 = (c.ejected_cl34[plotc_index]+c.ejected_ar34[plotc_index]+c.ejected_s34[plotc_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_3,S33_3,S34_3),linewidth='1',color='#0343df',marker='.', markersize=12) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_3 = (c.ejected_ar35[plotc_index]+c.ejected_k35[plotc_index]+c.ejected_s35[plotc_index]+c.ejected_cl35[plotc_index])/Cl35_solar_mass_frac +Cl37_3 = (c.ejected_ar37[plotc_index]+c.ejected_k37[plotc_index]+c.ejected_ca37[plotc_index]+c.ejected_cl37[plotc_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_3,Cl37_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_3 = (c.ejected_k36[plotc_index]+c.ejected_ca36[plotc_index]+c.ejected_ar36[plotc_index]+c.ejected_cl36[plotc_index])/Ar36_solar_mass_frac +Ar38_3 = (c.ejected_k38[plotc_index]+c.ejected_ca38[plotc_index]+c.ejected_ar38[plotc_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_3,Ar38_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# K39 = Ca39+K39+Ar39 +K39_3 = (c.ejected_ca39[plotc_index]+c.ejected_k39[plotc_index]+c.ejected_ar39[plotc_index])/K39_solar_mass_frac +ax.plot(39,K39_3,linewidth='1',color='#0343df',marker='.', markersize=12) + +# Ca40 = Sc40+K40+Ca40 +Ca40_3 = (c.ejected_ca40[plotc_index]+c.ejected_k40[plotc_index]+c.ejected_sc40[plotc_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_3,linewidth='1',color='#0343df',marker='.', markersize=12) + + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + + +H1_4 = (d.ejected_h1[plotd_index])/H1_solar_mass_frac +ax.plot(1, H1_4, color='r', marker='x', markersize=7) + +# He3=H3+He3 & He4 = B8+He4 +He3_4 = (d.ejected_h3[plotd_index]+d.ejected_he3[plotd_index])/He3_solar_mass_frac +He4_4 = (d.ejected_b8[plotd_index]+d.ejected_he4[plotd_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_4,He4_4),linewidth='1',color='r',marker='x', markersize=7) + +# Li7= Li7+Be7 +Li7_4 = (d.ejected_li7[plotd_index]+d.ejected_be7[plotd_index])/Li7_solar_mass_frac +ax.plot(7,Li7_4,color='r',marker='x', markersize=7) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_4 = (d.ejected_n12[plotd_index]+d.ejected_c12[plotd_index])/C12_solar_mass_frac +C13_4 = (d.ejected_n13[plotd_index]+d.ejected_o13[plotd_index]+d.ejected_c13[plotd_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_4,C13_4),linewidth='1',color='r',marker='x', markersize=7) + +# N14 = O14+N14 & N15 = O15+N15 +N14_4 = (d.ejected_o14[plotd_index]+d.ejected_n14[plotd_index])/N14_solar_mass_frac +N15_4 = (d.ejected_o15[plotd_index]+d.ejected_n15[plotd_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_4,N15_4),linewidth='1',color='r',marker='x', markersize=7) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_4 = (d.ejected_o16[plotd_index])/O16_solar_mass_frac +O17_4 = (d.ejected_f17[plotd_index]+d.ejected_o17[plotd_index])/O17_solar_mass_frac +O18_4 = (d.ejected_f18[plotd_index]+d.ejected_ne18[plotd_index]+d.ejected_o18[plotd_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_4,O17_4,O18_4),linewidth='1',color='r',marker='x', markersize=7) + +# F19 = Ne19+F19 +F19_4 = (d.ejected_ne19[plotd_index]+d.ejected_f19[plotd_index])/F19_solar_mass_frac +ax.plot(19, F19_4, color='r', marker='x', markersize=7) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_4 = (d.ejected_na20[plotd_index]+d.ejected_ne20[plotd_index])/Ne20_solar_mass_frac +Ne21_4 = (d.ejected_na21[plotd_index]+d.ejected_mg21[plotd_index]+d.ejected_ne21[plotd_index])/Ne21_solar_mass_frac +Ne22_4 = (d.ejected_mg22[plotd_index]+d.ejected_na22[plotd_index]+d.ejected_ne22[plotd_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_4,Ne21_4,Ne22_4),linewidth='1',color='r',marker='x', markersize=7) + +# Na23 = Al23+Mg23+Na23 +Na23_4 = (d.ejected_al23[plotd_index]+d.ejected_mg23[plotd_index]+d.ejected_na23[plotd_index])/Na23_solar_mass_frac +ax.plot(23, Na23_4, color='r', marker='x', markersize=7) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_4 = (d.ejected_al24[plotd_index]+d.ejected_mg24[plotd_index])/Mg24_solar_mass_frac +Mg25_4 = (d.ejected_al25[plotd_index]+d.ejected_si25[plotd_index]+d.ejected_mg25[plotd_index])/Mg25_solar_mass_frac +Mg26_4 = (d.ejected_mg26[plotd_index]+d.ejected_al26[plotd_index]+d.ejected_si26[plotd_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_4,Mg25_4,Mg26_4),linewidth='1',color='r',marker='x', markersize=7) + +# Al27 = Si27+P27+Al27 +Al27_4 = (d.ejected_si27[plotd_index]+d.ejected_p27[plotd_index]+d.ejected_al27[plotd_index])/Al27_solar_mass_frac +ax.plot(27, Al27_4, color='r', marker='x', markersize=7) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_4 = (d.ejected_p28[plotd_index]+d.ejected_si28[plotd_index])/Si28_solar_mass_frac +Si29_4 = (d.ejected_p29[plotd_index]+d.ejected_s29[plotd_index]+d.ejected_si29[plotd_index])/Si29_solar_mass_frac +Si30_4 = (d.ejected_p30[plotd_index]+d.ejected_s30[plotd_index]+d.ejected_si30[plotd_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_4,Si29_4,Si30_4),linewidth='1',color='r',marker='x', markersize=7) + +# P31 = S31+Cl31+P31 +P31_4 = (d.ejected_s31[plotd_index]+d.ejected_cl31[plotd_index]+d.ejected_p31[plotd_index])/P31_solar_mass_frac +ax.plot(31, P31_4, color='r', marker='x', markersize=7) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_4 = (d.ejected_cl32[plotd_index]+d.ejected_ar32[plotd_index]+d.ejected_s32[plotd_index])/S32_solar_mass_frac +S33_4 = (d.ejected_cl33[plotd_index]+d.ejected_ar33[plotd_index]+d.ejected_s33[plotd_index])/S33_solar_mass_frac +S34_4 = (d.ejected_cl34[plotd_index]+d.ejected_ar34[plotd_index]+d.ejected_s34[plotd_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_4,S33_4,S34_4),linewidth='1',color='r',marker='x', markersize=7) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_4 = (d.ejected_ar35[plotd_index]+d.ejected_k35[plotd_index]+d.ejected_s35[plotd_index]+d.ejected_cl35[plotd_index])/Cl35_solar_mass_frac +Cl37_4 = (d.ejected_ar37[plotd_index]+d.ejected_k37[plotd_index]+d.ejected_ca37[plotd_index]+d.ejected_cl37[plotd_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_4,Cl37_4),linewidth='1',color='r',marker='x', markersize=7) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_4 = (d.ejected_k36[plotd_index]+d.ejected_ca36[plotd_index]+d.ejected_ar36[plotd_index]+d.ejected_cl36[plotd_index])/Ar36_solar_mass_frac +Ar38_4 = (d.ejected_k38[plotd_index]+d.ejected_ca38[plotd_index]+d.ejected_ar38[plotd_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_4,Ar38_4),linewidth='1',color='r',marker='x', markersize=7) + +# K39 = Ca39+K39+Ar39 +K39_4 = (d.ejected_ca39[plotd_index]+d.ejected_k39[plotd_index]+d.ejected_ar39[plotd_index])/K39_solar_mass_frac +ax.plot(39,K39_4,linewidth='1',color='r',marker='x', markersize=7) + +# Ca40 = Sc40+K40+Ca40 +Ca40_4 = (d.ejected_ca40[plotd_index]+d.ejected_k40[plotd_index]+d.ejected_sc40[plotd_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_4,linewidth='1',color='r',marker='x', markersize=7) + + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + + +H1_list = [H1_1,H1_2,H1_3,H1_4] +H1 = max(H1_list) +ax.text(1+x_centre_offset, H1+H1*y_offset_top, 'H', fontsize=13) +He4_list = [He4_1,He4_2,He4_3,He4_4] +He4 = max(He4_list) +ax.text(4+x_centre_offset, He4+He4*y_offset_top, 'He', fontsize=13) +Li7_list = [Li7_1,Li7_2,Li7_3,Li7_4] +Li7 = max(Li7_list) +ax.text(7+x_centre_offset, Li7+Li7*y_offset_top, 'Li', fontsize=13) +C13_list = [C13_1,C13_2,C13_3,C13_4] +C13 = max(C13_list) +ax.text(13+x_centre_offset_2, C13+C13*y_offset_top, 'C', fontsize=13) +N15_list = [N15_1,N15_2,N15_3,N15_4] +N15 = max(N15_list) +ax.text(15+x_centre_offset_2, N15+N15*y_offset_top, 'N', fontsize=13) +O17_list = [O17_1,O17_2,O17_3,O17_4] +O17 = max(O17_list) +ax.text(17+x_centre_offset, O17+O17*y_offset_top, 'O', fontsize=13) +F19_list = [F19_1,F19_2,F19_3,F19_4] +F19 = max(F19_list) +ax.text(19+x_centre_offset_2, F19+F19*y_offset_top, 'F', fontsize=13) +Ne21_list = [Ne21_1,Ne21_2,Ne21_3,Ne21_4] +Ne21 = min(Ne21_list) +ax.text(21+x_centre_offset, Ne21-Ne21*y_offset_bot, 'Ne', fontsize=13) +Na23_list = [Na23_1,Na23_2,Na23_3,Na23_4] +Na23 = max(Na23_list) +ax.text(23+x_centre_offset, Na23+Na23*y_offset_top, 'Na', fontsize=13) +Mg25_list = [Mg25_1,Mg25_2,Mg25_3,Mg25_4] +Mg25 = max(Mg25_list) +ax.text(25+x_centre_offset, Mg25+Mg25*y_offset_top, 'Mg', fontsize=13) +Al27_list = [Al27_1,Al27_2,Al27_3,Al27_4] +Al27 = max(Al27_list) +ax.text(27+x_centre_offset, Al27+Al27*y_offset_top, 'Al', fontsize=13) +Si29_list = [Si29_1,Si29_2,Si29_3,Si29_4] +Si29 = min(Si29_list) +ax.text(29+x_centre_offset, Si29-Si29*y_offset_bot, 'Si', fontsize=13) +P31_list = [P31_1,P31_2,P31_3,P31_4] +P31 = max(P31_list) +ax.text(31+x_centre_offset, P31+P31*y_offset_top, 'P', fontsize=13) +S33_list = [S33_1,S33_2,S33_3,S33_4] +S33 = max(S33_list) +ax.text(33+x_centre_offset, S33+S33*y_offset_top, 'S', fontsize=13) +Cl37_list = [Cl37_1,Cl37_2,Cl37_3,Cl37_4] +Cl37 = max(Cl37_list) +ax.text(37+x_centre_offset, Cl37+Cl37*y_offset_top, 'Cl', fontsize=13) +Ar38_list = [Ar38_1,Ar38_2,Ar38_3,Ar38_4] +Ar38 = max(Ar38_list) +ax.text(38+x_centre_offset, Ar38+Ar38*y_offset_top, 'Ar', fontsize=13) +K39_list = [K39_1,K39_2,K39_3,K39_4] +K39 = max(K39_list) +ax.text(39+x_centre_offset, K39+K39*y_offset_top, 'K', fontsize=13) +Ca40_list = [Ca40_1,Ca40_2,Ca40_3,Ca40_4] +Ca40 = max(Ca40_list) +ax.text(40+x_centre_offset, Ca40+Ca40*y_offset_top, 'Ca', fontsize=13) + + + + +legend_elements = [Line2D([0], [0], marker='s', color='tab:orange', label='Burst 1', + markersize=7), + Line2D([0], [0], marker='^', color='black', label='Burst 2', + markersize=9), + Line2D([0], [0], marker='.', color='#0343df', label='Burst 3', + markersize=13), + Line2D([0], [0], marker='x', color='r', label='Burst 4', + markersize=8)] +ax.legend(handles=legend_elements, frameon=False, loc='lower right',prop={'size': 18}) + + +ax.set_xscale('linear') +ax.set_yscale('log') +ax.set_xlim(0,41) +ax.set_yticks([1e-10,1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10]) #replaces tick labels from '10^x' to 'x' +ax.set_yticklabels(['-10','-9','-8','-7','-6','-5','-4','-3','-2','-1','0','1','2','3','4','5','6','7','8','9','10']) #replaces tick labels from '10^x' to 'x' +ax.tick_params(axis='x', labelsize=16) +ax.tick_params(axis='y', labelsize=16) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='1') +plt.minorticks_on() +ax.grid(which='minor', linestyle=':', linewidth='0.4') +ax.hlines(1, 0, 50, color='#000000', linestyle='--', linewidth=0.5) + +ax.set_xlabel('Mass number', fontsize=20) +ax.set_ylabel('Mean overproduction factor $\\mathrm{log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) +# ax.set_ylabel('Mean Overproduction Factor $\\mathrm{\\frac{X_{i}}{X_{i,\\odot}}}$', fontsize=16) + + +plt.show() +# plt.savefig('Asplund_overproduction_plot_quadruple_comparison.pdf', dpi=500) + + + + + + +# Elements not considered when graphing due to not being interested in their abundance +# h2 - Stable +# li6 - Stable +# be9 - Stable +# b10 - Stable +# b11 - Stable +# c9 - decays to B9 which decyas to Be9 which we're not interested in +# c11 - T1/2 = 30.364 min, decays to B11 which we're not interested in +# s36 - Stable +# ar40 - Stable + diff --git a/overproduction_plotters/Overproduction_triple_comparison_graph_Asplund09.py b/overproduction_plotters/Overproduction_triple_comparison_graph_Asplund09.py new file mode 100644 index 0000000000000000000000000000000000000000..134505af59e110d5fd202a3e59d0ec26dfd4a290 --- /dev/null +++ b/overproduction_plotters/Overproduction_triple_comparison_graph_Asplund09.py @@ -0,0 +1,438 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +from matplotlib.lines import Line2D +import fastmesareader as fmr + +plotting_tings = 'ejected_h1 ejected_h2 ejected_h3 ejected_he3 ejected_he4 ejected_li6 ejected_li7 ejected_be7 ejected_be9 ejected_b8 ejected_b10 ejected_b11 ejected_c9 ejected_c11 ejected_c12 ejected_c13 ejected_n12 ejected_n13 ejected_n14 ejected_n15 ejected_o13 ejected_o14 ejected_o15 ejected_o16 ejected_o17 ejected_o18 ejected_f17 ejected_f18 ejected_f19 ejected_ne18 ejected_ne19 ejected_ne20 ejected_ne21 ejected_ne22 ejected_na20 ejected_na21 ejected_na22 ejected_na23 ejected_mg21 ejected_mg22 ejected_mg23 ejected_mg24 ejected_mg25 ejected_mg26 ejected_al23 ejected_al24 ejected_al25 ejected_al26 ejected_al27 ejected_si25 ejected_si26 ejected_si27 ejected_si28 ejected_si29 ejected_si30 ejected_p27 ejected_p28 ejected_p29 ejected_p30 ejected_p31 ejected_s29 ejected_s30 ejected_s31 ejected_s32 ejected_s33 ejected_s34 ejected_s35 ejected_s36 ejected_cl31 ejected_cl32 ejected_cl33 ejected_cl34 ejected_cl35 ejected_cl36 ejected_cl37 ejected_ar32 ejected_ar33 ejected_ar34 ejected_ar35 ejected_ar36 ejected_ar37 ejected_ar38 ejected_ar39 ejected_ar40 ejected_k35 ejected_k36 ejected_k37 ejected_k38 ejected_k39 ejected_k40 ejected_ca36 ejected_ca37 ejected_ca38 ejected_ca39 ejected_ca40 ejected_sc40' +a = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +b = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +c = fmr.FastMesaReader('LOGS/history.data', plotting_tings) + +plota_index = -1 +plotb_index = -1 +plotc_index = -1 + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + +x_centre_offset = -0.3 #-0.2 +x_centre_offset_2 = -0.2 +y_offset_top = 0.5 +y_offset_bot = 0.55 + +# From Asplund et. al. 2009 +H1_solar_mass_frac = 0.738085238 +He3_solar_mass_frac = 4.1251e-05 +He4_solar_mass_frac = 0.248458749 +Li7_solar_mass_frac = 5.347553867866217e-11 +C12_solar_mass_frac = 0.0023479921849246885 +C13_solar_mass_frac = 2.6264022162801824e-05 +N14_solar_mass_frac = 0.0006943429738573174 +N15_solar_mass_frac = 1.5936949716182629e-06 +O16_solar_mass_frac = 0.005745050422480951 +O17_solar_mass_frac = 2.182566435670741e-06 +O18_solar_mass_frac = 1.1517500979792827e-05 +F19_solar_mass_frac = 5.070647693536659e-07 +Ne20_solar_mass_frac = 0.0011625972594930384 +Ne21_solar_mass_frac = 2.7869381311259143e-06 +Ne22_solar_mass_frac = 8.548569964958532e-05 +Na23_solar_mass_frac = 2.9368444780430237e-05 +Mg24_solar_mass_frac = 0.0005544455826402614 +Mg25_solar_mass_frac = 7.019187019119655e-05 +Mg26_solar_mass_frac = 7.72812490805074e-05 +Al27_solar_mass_frac = 5.5900159597141475e-05 +Si28_solar_mass_frac = 0.0006137862206959798 +Si29_solar_mass_frac = 3.116657246812484e-05 +Si30_solar_mass_frac = 2.054523456687628e-05 +P31_solar_mass_frac = 5.852484710740299e-06 +S32_solar_mass_frac = 0.0002941173102666167 +S33_solar_mass_frac = 2.354673504715355e-06 +S34_solar_mass_frac = 1.3291512283195887e-05 +Cl35_solar_mass_frac = 6.160022812039695e-06 +Cl37_solar_mass_frac = 1.9688011679546237e-06 +Ar36_solar_mass_frac = 5.618233360211754e-05 +Ar38_solar_mass_frac = 1.021494559543339e-05 +K39_solar_mass_frac = 2.85828500433324e-06 +Ca40_solar_mass_frac = 6.230278628930155e-05 + + +H1_1 = (a.ejected_h1[plota_index])/H1_solar_mass_frac +ax.plot(1, H1_1, color='tab:orange', marker='s', markersize=6) + +# He3=H3+He3 & He4 = B8+He4 +He3_1 = (a.ejected_h3[plota_index]+a.ejected_he3[plota_index])/He3_solar_mass_frac +He4_1 = (a.ejected_b8[plota_index]+a.ejected_he4[plota_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_1,He4_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Li7= Li7+Be7 +Li7_1 = (a.ejected_li7[plota_index]+a.ejected_be7[plota_index])/Li7_solar_mass_frac +ax.plot(7,Li7_1,color='tab:orange',marker='s', markersize=6) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_1 = (a.ejected_n12[plota_index]+a.ejected_c12[plota_index])/C12_solar_mass_frac +C13_1 = (a.ejected_n13[plota_index]+a.ejected_o13[plota_index]+a.ejected_c13[plota_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_1,C13_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# N14 = O14+N14 & N15 = O15+N15 +N14_1 = (a.ejected_o14[plota_index]+a.ejected_n14[plota_index])/N14_solar_mass_frac +N15_1 = (a.ejected_o15[plota_index]+a.ejected_n15[plota_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_1,N15_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_1 = (a.ejected_o16[plota_index])/O16_solar_mass_frac +O17_1 = (a.ejected_f17[plota_index]+a.ejected_o17[plota_index])/O17_solar_mass_frac +O18_1 = (a.ejected_f18[plota_index]+a.ejected_ne18[plota_index]+a.ejected_o18[plota_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_1,O17_1,O18_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# F19 = Ne19+F19 +F19_1 = (a.ejected_ne19[plota_index]+a.ejected_f19[plota_index])/F19_solar_mass_frac +ax.plot(19, F19_1, color='tab:orange', marker='s', markersize=6) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_1 = (a.ejected_na20[plota_index]+a.ejected_ne20[plota_index])/Ne20_solar_mass_frac +Ne21_1 = (a.ejected_na21[plota_index]+a.ejected_mg21[plota_index]+a.ejected_ne21[plota_index])/Ne21_solar_mass_frac +Ne22_1 = (a.ejected_mg22[plota_index]+a.ejected_na22[plota_index]+a.ejected_ne22[plota_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_1,Ne21_1,Ne22_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Na23 = Al23+Mg23+Na23 +Na23_1 = (a.ejected_al23[plota_index]+a.ejected_mg23[plota_index]+a.ejected_na23[plota_index])/Na23_solar_mass_frac +ax.plot(23, Na23_1, color='tab:orange', marker='s', markersize=6) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_1 = (a.ejected_al24[plota_index]+a.ejected_mg24[plota_index])/Mg24_solar_mass_frac +Mg25_1 = (a.ejected_al25[plota_index]+a.ejected_si25[plota_index]+a.ejected_mg25[plota_index])/Mg25_solar_mass_frac +Mg26_1 = (a.ejected_mg26[plota_index]+a.ejected_al26[plota_index]+a.ejected_si26[plota_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_1,Mg25_1,Mg26_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Al27 = Si27+P27+Al27 +Al27_1 = (a.ejected_si27[plota_index]+a.ejected_p27[plota_index]+a.ejected_al27[plota_index])/Al27_solar_mass_frac +ax.plot(27, Al27_1, color='tab:orange', marker='s', markersize=6) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_1 = (a.ejected_p28[plota_index]+a.ejected_si28[plota_index])/Si28_solar_mass_frac +Si29_1 = (a.ejected_p29[plota_index]+a.ejected_s29[plota_index]+a.ejected_si29[plota_index])/Si29_solar_mass_frac +Si30_1 = (a.ejected_p30[plota_index]+a.ejected_s30[plota_index]+a.ejected_si30[plota_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_1,Si29_1,Si30_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# P31 = S31+Cl31+P31 +P31_1 = (a.ejected_s31[plota_index]+a.ejected_cl31[plota_index]+a.ejected_p31[plota_index])/P31_solar_mass_frac +ax.plot(31, P31_1, color='tab:orange', marker='s', markersize=6) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_1 = (a.ejected_cl32[plota_index]+a.ejected_ar32[plota_index]+a.ejected_s32[plota_index])/S32_solar_mass_frac +S33_1 = (a.ejected_cl33[plota_index]+a.ejected_ar33[plota_index]+a.ejected_s33[plota_index])/S33_solar_mass_frac +S34_1 = (a.ejected_cl34[plota_index]+a.ejected_ar34[plota_index]+a.ejected_s34[plota_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_1,S33_1,S34_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_1 = (a.ejected_ar35[plota_index]+a.ejected_k35[plota_index]+a.ejected_s35[plota_index]+a.ejected_cl35[plota_index])/Cl35_solar_mass_frac +Cl37_1 = (a.ejected_ar37[plota_index]+a.ejected_k37[plota_index]+a.ejected_ca37[plota_index]+a.ejected_cl37[plota_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_1,Cl37_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_1 = (a.ejected_k36[plota_index]+a.ejected_ca36[plota_index]+a.ejected_ar36[plota_index]+a.ejected_cl36[plota_index])/Ar36_solar_mass_frac +Ar38_1 = (a.ejected_k38[plota_index]+a.ejected_ca38[plota_index]+a.ejected_ar38[plota_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_1,Ar38_1),linewidth='1',color='tab:orange',marker='s', markersize=6) + +# K39 = Ca39+K39+Ar39 +K39_1 = (a.ejected_ca39[plota_index]+a.ejected_k39[plota_index]+a.ejected_ar39[plota_index])/K39_solar_mass_frac +ax.plot(39,K39_1,linewidth='1',color='tab:orange',marker='s', markersize=6) + +# Ca40 = Sc40+K40+Ca40 +Ca40_1 = (a.ejected_ca40[plota_index]+a.ejected_k40[plota_index]+a.ejected_sc40[plota_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_1,linewidth='1',color='tab:orange',marker='s', markersize=6) + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + + +# H1 +H1_2 = (b.ejected_h1[plotb_index])/H1_solar_mass_frac +ax.plot(1, H1_2, color='black', marker='^', markersize=8) + +# He3=H3+He3 & He4 = B8+He4 +He3_2 = (b.ejected_h3[plotb_index]+b.ejected_he3[plotb_index])/He3_solar_mass_frac +He4_2 = (b.ejected_b8[plotb_index]+b.ejected_he4[plotb_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_2,He4_2),linewidth='1',color='black',marker='^', markersize=8) + +# Li7= Li7+Be7 +Li7_2 = (b.ejected_li7[plotb_index]+b.ejected_be7[plotb_index])/Li7_solar_mass_frac +ax.plot(7,Li7_2,color='black',marker='^', markersize=8) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_2 = (b.ejected_n12[plotb_index]+b.ejected_c12[plotb_index])/C12_solar_mass_frac +C13_2 = (b.ejected_n13[plotb_index]+b.ejected_o13[plotb_index]+b.ejected_c13[plotb_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_2,C13_2),linewidth='1',color='black',marker='^', markersize=8) + +# N14 = O14+N14 & N15 = O15+N15 +N14_2 = (b.ejected_o14[plotb_index]+b.ejected_n14[plotb_index])/N14_solar_mass_frac +N15_2 = (b.ejected_o15[plotb_index]+b.ejected_n15[plotb_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_2,N15_2),linewidth='1',color='black',marker='^', markersize=8) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_2 = (b.ejected_o16[plotb_index])/O16_solar_mass_frac +O17_2 = (b.ejected_f17[plotb_index]+b.ejected_o17[plotb_index])/O17_solar_mass_frac +O18_2 = (b.ejected_f18[plotb_index]+b.ejected_ne18[plotb_index]+b.ejected_o18[plotb_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_2,O17_2,O18_2),linewidth='1',color='black',marker='^', markersize=8) + +# F19 = Ne19+F19 +F19_2 = (b.ejected_ne19[plotb_index]+b.ejected_f19[plotb_index])/F19_solar_mass_frac +ax.plot(19, F19_2, color='black', marker='^', markersize=8) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_2 = (b.ejected_na20[plotb_index]+b.ejected_ne20[plotb_index])/Ne20_solar_mass_frac +Ne21_2 = (b.ejected_na21[plotb_index]+b.ejected_mg21[plotb_index]+b.ejected_ne21[plotb_index])/Ne21_solar_mass_frac +Ne22_2 = (b.ejected_mg22[plotb_index]+b.ejected_na22[plotb_index]+b.ejected_ne22[plotb_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_2,Ne21_2,Ne22_2),linewidth='1',color='black',marker='^', markersize=8) + +# Na23 = Al23+Mg23+Na23 +Na23_2 = (b.ejected_al23[plotb_index]+b.ejected_mg23[plotb_index]+b.ejected_na23[plotb_index])/Na23_solar_mass_frac +ax.plot(23, Na23_2, color='black', marker='^', markersize=8) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_2 = (b.ejected_al24[plotb_index]+b.ejected_mg24[plotb_index])/Mg24_solar_mass_frac +Mg25_2 = (b.ejected_al25[plotb_index]+b.ejected_si25[plotb_index]+b.ejected_mg25[plotb_index])/Mg25_solar_mass_frac +Mg26_2 = (b.ejected_mg26[plotb_index]+b.ejected_al26[plotb_index]+b.ejected_si26[plotb_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_2,Mg25_2,Mg26_2),linewidth='1',color='black',marker='^', markersize=8) + +# Al27 = Si27+P27+Al27 +Al27_2 = (b.ejected_si27[plotb_index]+b.ejected_p27[plotb_index]+b.ejected_al27[plotb_index])/Al27_solar_mass_frac +ax.plot(27, Al27_2, color='black', marker='^', markersize=8) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_2 = (b.ejected_p28[plotb_index]+b.ejected_si28[plotb_index])/Si28_solar_mass_frac +Si29_2 = (b.ejected_p29[plotb_index]+b.ejected_s29[plotb_index]+b.ejected_si29[plotb_index])/Si29_solar_mass_frac +Si30_2 = (b.ejected_p30[plotb_index]+b.ejected_s30[plotb_index]+b.ejected_si30[plotb_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_2,Si29_2,Si30_2),linewidth='1',color='black',marker='^', markersize=8) + +# P31 = S31+Cl31+P31 +P31_2 = (b.ejected_s31[plotb_index]+b.ejected_cl31[plotb_index]+b.ejected_p31[plotb_index])/P31_solar_mass_frac +ax.plot(31, P31_2, color='black', marker='^', markersize=8) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_2 = (b.ejected_cl32[plotb_index]+b.ejected_ar32[plotb_index]+b.ejected_s32[plotb_index])/S32_solar_mass_frac +S33_2 = (b.ejected_cl33[plotb_index]+b.ejected_ar33[plotb_index]+b.ejected_s33[plotb_index])/S33_solar_mass_frac +S34_2 = (b.ejected_cl34[plotb_index]+b.ejected_ar34[plotb_index]+b.ejected_s34[plotb_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_2,S33_2,S34_2),linewidth='1',color='black',marker='^', markersize=8) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_2 = (b.ejected_ar35[plotb_index]+b.ejected_k35[plotb_index]+b.ejected_s35[plotb_index]+b.ejected_cl35[plotb_index])/Cl35_solar_mass_frac +Cl37_2 = (b.ejected_ar37[plotb_index]+b.ejected_k37[plotb_index]+b.ejected_ca37[plotb_index]+b.ejected_cl37[plotb_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_2,Cl37_2),linewidth='1',color='black',marker='^', markersize=8) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_2 = (b.ejected_k36[plotb_index]+b.ejected_ca36[plotb_index]+b.ejected_ar36[plotb_index]+b.ejected_cl36[plotb_index])/Ar36_solar_mass_frac +Ar38_2 = (b.ejected_k38[plotb_index]+b.ejected_ca38[plotb_index]+b.ejected_ar38[plotb_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_2,Ar38_2),linewidth='1',color='black',marker='^', markersize=8) + +# K39 = Ca39+K39+Ar39 +K39_2 = (b.ejected_ca39[plotb_index]+b.ejected_k39[plotb_index]+b.ejected_ar39[plotb_index])/K39_solar_mass_frac +ax.plot(39,K39_2,linewidth='1',color='black',marker='^', markersize=8) + +# Ca40 = Sc40+K40+Ca40 +Ca40_2 = (b.ejected_ca40[plotb_index]+b.ejected_k40[plotb_index]+b.ejected_sc40[plotb_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_2,linewidth='1',color='black',marker='^', markersize=8) + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + +H1_3 = (c.ejected_h1[plotc_index])/H1_solar_mass_frac +ax.plot(1, H1_3, color='#0343df', marker='.', markersize=12) + +# He3=H3+He3 & He4 = B8+He4 +He3_3 = (c.ejected_h3[plotc_index]+c.ejected_he3[plotc_index])/He3_solar_mass_frac +He4_3 = (c.ejected_b8[plotc_index]+c.ejected_he4[plotc_index])/He4_solar_mass_frac +ax.plot((3,4),(He3_3,He4_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Li7= Li7+Be7 +Li7_3 = (c.ejected_li7[plotc_index]+c.ejected_be7[plotc_index])/Li7_solar_mass_frac +ax.plot(7,Li7_3,color='#0343df',marker='.', markersize=12) + +# C12 = N12+C12 & C13 = N13+O13+C13 +C12_3 = (c.ejected_n12[plotc_index]+c.ejected_c12[plotc_index])/C12_solar_mass_frac +C13_3 = (c.ejected_n13[plotc_index]+c.ejected_o13[plotc_index]+c.ejected_c13[plotc_index])/C13_solar_mass_frac +ax.plot((12,13),(C12_3,C13_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# N14 = O14+N14 & N15 = O15+N15 +N14_3 = (c.ejected_o14[plotc_index]+c.ejected_n14[plotc_index])/N14_solar_mass_frac +N15_3 = (c.ejected_o15[plotc_index]+c.ejected_n15[plotc_index])/N15_solar_mass_frac +ax.plot((14,15),(N14_3,N15_3),linewidth='1',color='#0343df',marker='.', markersize=12) + + +# O16 & O17 = F17+O17 & O18 = F18+Ne18+O18 +O16_3 = (c.ejected_o16[plotc_index])/O16_solar_mass_frac +O17_3 = (c.ejected_f17[plotc_index]+c.ejected_o17[plotc_index])/O17_solar_mass_frac +O18_3 = (c.ejected_f18[plotc_index]+c.ejected_ne18[plotc_index]+c.ejected_o18[plotc_index])/O18_solar_mass_frac +ax.plot((16,17,18),(O16_3,O17_3,O18_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# F19 = Ne19+F19 +F19_3 = (c.ejected_ne19[plotc_index]+c.ejected_f19[plotc_index])/F19_solar_mass_frac +ax.plot(19, F19_3, color='#0343df', marker='.', markersize=12) # F19 = Ne19+F19 + +# Ne20 = Na20+ne20 & Ne21 = Na21+Mg21+Ne21 & Ne22 = Mg22+Na22+Ne22 +Ne20_3 = (c.ejected_na20[plotc_index]+c.ejected_ne20[plotc_index])/Ne20_solar_mass_frac +Ne21_3 = (c.ejected_na21[plotc_index]+c.ejected_mg21[plotc_index]+c.ejected_ne21[plotc_index])/Ne21_solar_mass_frac +Ne22_3 = (c.ejected_mg22[plotc_index]+c.ejected_na22[plotc_index]+c.ejected_ne22[plotc_index])/Ne22_solar_mass_frac +ax.plot((20,21,22),(Ne20_3,Ne21_3,Ne22_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Na23 = Al23+Mg23+Na23 +Na23_3 = (c.ejected_al23[plotc_index]+c.ejected_mg23[plotc_index]+c.ejected_na23[plotc_index])/Na23_solar_mass_frac +ax.plot(23, Na23_3, color='#0343df', marker='.', markersize=12) + +# Mg24 = Al24+Mg24 & Mg25 = Al25+Si25+Mg25 & Mg26 = Al26+Si26+Mg26 +Mg24_3 = (c.ejected_al24[plotc_index]+c.ejected_mg24[plotc_index])/Mg24_solar_mass_frac +Mg25_3 = (c.ejected_al25[plotc_index]+c.ejected_si25[plotc_index]+c.ejected_mg25[plotc_index])/Mg25_solar_mass_frac +Mg26_3 = (c.ejected_mg26[plotc_index]+c.ejected_al26[plotc_index]+c.ejected_si26[plotc_index])/Mg26_solar_mass_frac +ax.plot((24,25,26),(Mg24_3,Mg25_3,Mg26_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Al27 = Si27+P27+Al27 +Al27_3 = (c.ejected_si27[plotc_index]+c.ejected_p27[plotc_index]+c.ejected_al27[plotc_index])/Al27_solar_mass_frac +ax.plot(27, Al27_3, color='#0343df', marker='.', markersize=12) + +# Si28 = P28+Si28 & Si29 = P29+S29+Si29 & Si30 = P30+S30+Si30 +Si28_3 = (c.ejected_p28[plotc_index]+c.ejected_si28[plotc_index])/Si28_solar_mass_frac +Si29_3 = (c.ejected_p29[plotc_index]+c.ejected_s29[plotc_index]+c.ejected_si29[plotc_index])/Si29_solar_mass_frac +Si30_3 = (c.ejected_p30[plotc_index]+c.ejected_s30[plotc_index]+c.ejected_si30[plotc_index])/Si30_solar_mass_frac +ax.plot((28,29,30),(Si28_3,Si29_3,Si30_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# P31 = S31+Cl31+P31 +P31_3 = (c.ejected_s31[plotc_index]+c.ejected_cl31[plotc_index]+c.ejected_p31[plotc_index])/P31_solar_mass_frac +ax.plot(31, P31_3, color='#0343df', marker='.', markersize=12) + +# S32 = Cl32+Ar32+S32 & S33 = Cl33+Ar33+S33 & S34 = Cl34+Ar34+S34 +S32_3 = (c.ejected_cl32[plotc_index]+c.ejected_ar32[plotc_index]+c.ejected_s32[plotc_index])/S32_solar_mass_frac +S33_3 = (c.ejected_cl33[plotc_index]+c.ejected_ar33[plotc_index]+c.ejected_s33[plotc_index])/S33_solar_mass_frac +S34_3 = (c.ejected_cl34[plotc_index]+c.ejected_ar34[plotc_index]+c.ejected_s34[plotc_index])/S34_solar_mass_frac +ax.plot((32,33,34),(S32_3,S33_3,S34_3),linewidth='1',color='#0343df',marker='.', markersize=12) + + +# Cl35 = Ar35+K35+S35+Cl35 & Cl37 = Ar37+K37+Ca37+Cl37 +Cl35_3 = (c.ejected_ar35[plotc_index]+c.ejected_k35[plotc_index]+c.ejected_s35[plotc_index]+c.ejected_cl35[plotc_index])/Cl35_solar_mass_frac +Cl37_3 = (c.ejected_ar37[plotc_index]+c.ejected_k37[plotc_index]+c.ejected_ca37[plotc_index]+c.ejected_cl37[plotc_index])/Cl37_solar_mass_frac +ax.plot((35,37),(Cl35_3,Cl37_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# Ar36 = K36+Ca36+Ar36+Cl36 & Ar38 = K38+Ca38+Ar38 +Ar36_3 = (c.ejected_k36[plotc_index]+c.ejected_ca36[plotc_index]+c.ejected_ar36[plotc_index]+c.ejected_cl36[plotc_index])/Ar36_solar_mass_frac +Ar38_3 = (c.ejected_k38[plotc_index]+c.ejected_ca38[plotc_index]+c.ejected_ar38[plotc_index])/Ar38_solar_mass_frac +ax.plot((36,38),(Ar36_3,Ar38_3),linewidth='1',color='#0343df',marker='.', markersize=12) + +# K39 = Ca39+K39+Ar39 +K39_3 = (c.ejected_ca39[plotc_index]+c.ejected_k39[plotc_index]+c.ejected_ar39[plotc_index])/K39_solar_mass_frac +ax.plot(39,K39_3,linewidth='1',color='#0343df',marker='.', markersize=12) + +# Ca40 = Sc40+K40+Ca40 +Ca40_3 = (c.ejected_ca40[plotc_index]+c.ejected_k40[plotc_index]+c.ejected_sc40[plotc_index])/Ca40_solar_mass_frac +ax.plot(40,Ca40_3,linewidth='1',color='#0343df',marker='.', markersize=12) + + +# ------------------------------------------------------------------------------------------------------------------------------------------------------ + + + +H1_list = [H1_1,H1_2,H1_3] +H1 = max(H1_list) +ax.text(1+x_centre_offset, H1+H1*y_offset_top, 'H', fontsize=13) +He4_list = [He4_1,He4_2,He4_3] +He4 = max(He4_list) +ax.text(4+x_centre_offset, He4+He4*y_offset_top, 'He', fontsize=13) +Li7_list = [Li7_1,Li7_2,Li7_3] +Li7 = max(Li7_list) +ax.text(7+x_centre_offset, Li7+Li7*y_offset_top, 'Li', fontsize=13) +C13_list = [C13_1,C13_2,C13_3] +C13 = max(C13_list) +ax.text(13+x_centre_offset_2, C13+C13*y_offset_top, 'C', fontsize=13) +N15_list = [N15_1,N15_2,N15_3] +N15 = max(N15_list) +ax.text(15+x_centre_offset_2, N15+N15*y_offset_top, 'N', fontsize=13) +O17_list = [O17_1,O17_2,O17_3] +O17 = max(O17_list) +ax.text(17+x_centre_offset, O17+O17*y_offset_top, 'O', fontsize=13) +F19_list = [F19_1,F19_2,F19_3] +F19 = max(F19_list) +ax.text(19+x_centre_offset_2, F19+F19*y_offset_top, 'F', fontsize=13) +Ne21_list = [Ne21_1,Ne21_2,Ne21_3] +Ne21 = min(Ne21_list) +ax.text(21+x_centre_offset, Ne21-Ne21*y_offset_bot, 'Ne', fontsize=13) +Na23_list = [Na23_1,Na23_2,Na23_3] +Na23 = max(Na23_list) +ax.text(23+x_centre_offset, Na23+Na23*y_offset_top, 'Na', fontsize=13) +Mg25_list = [Mg25_1,Mg25_2,Mg25_3] +Mg25 = max(Mg25_list) +ax.text(25+x_centre_offset, Mg25+Mg25*y_offset_top, 'Mg', fontsize=13) +Al27_list = [Al27_1,Al27_2,Al27_3] +Al27 = max(Al27_list) +ax.text(27+x_centre_offset, Al27+Al27*y_offset_top, 'Al', fontsize=13) +Si29_list = [Si29_1,Si29_2,Si29_3] +Si29 = min(Si29_list) +ax.text(29+x_centre_offset, Si29-Si29*y_offset_bot, 'Si', fontsize=13) +P31_list = [P31_1,P31_2,P31_3] +P31 = max(P31_list) +ax.text(31+x_centre_offset, P31+P31*y_offset_top, 'P', fontsize=13) +S33_list = [S33_1,S33_2,S33_3] +S33 = max(S33_list) +ax.text(33+x_centre_offset, S33+S33*y_offset_top, 'S', fontsize=13) +Cl37_list = [Cl37_1,Cl37_2,Cl37_3] +Cl37 = max(Cl37_list) +ax.text(37+x_centre_offset, Cl37+Cl37*y_offset_top, 'Cl', fontsize=13) +Ar38_list = [Ar38_1,Ar38_2,Ar38_3] +Ar38 = max(Ar38_list) +ax.text(38+x_centre_offset, Ar38+Ar38*y_offset_top, 'Ar', fontsize=13) +K39_list = [K39_1,K39_2,K39_3] +K39 = max(K39_list) +ax.text(39+x_centre_offset, K39+K39*y_offset_top, 'K', fontsize=13) +Ca40_list = [Ca40_1,Ca40_2,Ca40_3] +Ca40 = max(Ca40_list) +ax.text(40+x_centre_offset, Ca40+Ca40*y_offset_top, 'Ca', fontsize=13) + + + + +legend_elements = [Line2D([0], [0], marker='s', color='tab:orange', label='Burst 1', + markersize=7), + Line2D([0], [0], marker='^', color='black', label='Burst 2', + markersize=9), + Line2D([0], [0], marker='.', color='#0343df', label='Burst 3', + markersize=13)] +ax.legend(handles=legend_elements, frameon=False, loc='lower right',prop={'size': 18}) + + +ax.set_xscale('linear') +ax.set_yscale('log') +ax.set_xlim(0,41) +ax.set_yticks([1e-10,1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10]) #replaces tick labels from '10^x' to 'x' +ax.set_yticklabels(['-10','-9','-8','-7','-6','-5','-4','-3','-2','-1','0','1','2','3','4','5','6','7','8','9','10']) #replaces tick labels from '10^x' to 'x' +ax.tick_params(axis='x', labelsize=16) +ax.tick_params(axis='y', labelsize=16) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='1') +plt.minorticks_on() +ax.grid(which='minor', linestyle=':', linewidth='0.4') +ax.hlines(1, 0, 50, color='#000000', linestyle='--', linewidth=0.5) + +ax.set_xlabel('Mass number', fontsize=20) +ax.set_ylabel('Mean overproduction factor $\\mathrm{log_{10}}\\left(\\dfrac{X_{i}}{X_{i,\\odot}}\\right)$', fontsize=20) +# ax.set_ylabel('Mean Overproduction Factor $\\mathrm{\\frac{X_{i}}{X_{i,\\odot}}}$', fontsize=16) + + +plt.show() +# plt.savefig('Asplund_overproduction_plot_triple_comparison.pdf', dpi=500) + + + + + + +# Elements not considered when graphing due to not being interested in their abundance +# h2 - Stable +# li6 - Stable +# be9 - Stable +# b10 - Stable +# b11 - Stable +# c9 - decays to B9 which decyas to Be9 which we're not interested in +# c11 - T1/2 = 30.364 min, decays to B11 which we're not interested in +# s36 - Stable +# ar40 - Stable + diff --git a/thesis_plot_scripts/IDM_test_Age_vs_radius.py b/thesis_plot_scripts/IDM_test_Age_vs_radius.py new file mode 100644 index 0000000000000000000000000000000000000000..2c964d417109f00402daaee667b15fb7d090feae --- /dev/null +++ b/thesis_plot_scripts/IDM_test_Age_vs_radius.py @@ -0,0 +1,70 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +import fastmesareader as fmr + +plotting_tings = 'star_age radius_cm star_mass model_number max_T v_surf max_eps_nuc time_step_sec surf_escape_v' + +a = fmr.FastMesaReader('LOGS_MLT/history.data', plotting_tings) +b = fmr.FastMesaReader('LOGS_0p5_1_msun/history.data', plotting_tings) +c = fmr.FastMesaReader('LOGS_0p6_1_msun/history.data', plotting_tings) +d = fmr.FastMesaReader('LOGS_0p7_1_msun/history.data', plotting_tings) +e = fmr.FastMesaReader('LOGS_0p8_1_msun/history.data', plotting_tings) +f = fmr.FastMesaReader('LOGS_0p9_1_msun/history.data', plotting_tings) + +a_star_age = a.star_age +b_star_age = b.star_age +c_star_age = c.star_age +d_star_age = d.star_age +e_star_age = e.star_age +f_star_age = f.star_age + +val = 5e6 +a_star_age[a_star_age < val] = np.nan +b_star_age[b_star_age < val] = np.nan +c_star_age[c_star_age < val] = np.nan +d_star_age[d_star_age < val] = np.nan +e_star_age[e_star_age < val] = np.nan +f_star_age[f_star_age < val] = np.nan + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) +# ax = fig.add_subplot(111, title='1$\,\\mathrm{M_{\\odot}}$ $\\mathrm{Z=0.02}$ star from $4\\times10^{9}$ to $9\\times10^{9}$ yr past ZAMS') + +CB_color_cycle = ['#377eb8', '#ff7f00', '#4daf4a', + '#f781bf', '#a65628', '#984ea3', + '#999999', '#e41a1c', '#dede00'] + +ax.plot(a_star_age/1e9, a.radius_cm/6.957e10, linewidth='2', color=CB_color_cycle[0], label='MLT') +ax.plot(b_star_age/1e9, b.radius_cm/6.957e10, linewidth='2', color=CB_color_cycle[1], label='0.5-1$\,\\mathrm{M_{\odot}}$') +ax.plot(c_star_age/1e9, c.radius_cm/6.957e10, linewidth='2', color=CB_color_cycle[2], label='0.6-1$\,\\mathrm{M_{\odot}}$') +ax.plot(d_star_age/1e9, d.radius_cm/6.957e10, linewidth='2', color=CB_color_cycle[3], label='0.7-1$\,\\mathrm{M_{\odot}}$') +ax.plot(e_star_age/1e9, e.radius_cm/6.957e10, linewidth='2', color=CB_color_cycle[4], label='0.8-1$\,\\mathrm{M_{\odot}}$') +ax.plot(f_star_age/1e9, f.radius_cm/6.957e10, linewidth='2', color=CB_color_cycle[5], label='0.9-1$\,\\mathrm{M_{\odot}}$') + +# ax.set_xscale('log') +# ax.set_yscale('log') +ax.ticklabel_format(axis='both', style='plain', scilimits=(0,0), useOffset=False) + + +legend = ax.legend(title='Imposed diffusive mixing region',fontsize=18, ncol=2) #(loc='upper left') +legend.get_title().set_fontsize('20') + +ax.set_xlabel('Star age [Gyr]', fontsize=20) +# ax.set_xlabel('$\\mathrm{Log_{10}\\left(Age \,/\, Gyr\\right)}$', fontsize=20) +ax.set_ylabel('Radius [$\\mathrm{R_{\\odot}}$]', fontsize=20) + +fig.tight_layout() +# plt.setp(ax.get_xticklabels(), visible=False) +ax.tick_params(axis='x', labelsize=16) +ax.tick_params(axis='y', labelsize=16) + +# ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='0.8') +ax.grid(which='minor', linestyle=':', linewidth='0.3') + +# ax.set_xticks([1e-2,1e-1,1,1e1]) #replaces tick labels from '10^x' to 'x' +# ax.set_xticklabels(['-2','-1','0','1']) #replaces tick labels from '10^x' to 'x' + +plt.show() +# plt.savefig('IDM_test_Age_vs_radius.pdf', dpi=500) diff --git a/thesis_plot_scripts/T_fermi_comparison.py b/thesis_plot_scripts/T_fermi_comparison.py new file mode 100644 index 0000000000000000000000000000000000000000..e1fec6456222c8ba742d234f28208fe36b0e3378 --- /dev/null +++ b/thesis_plot_scripts/T_fermi_comparison.py @@ -0,0 +1,160 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +import fastmesareader as fmr + +plotting_columns = 'mass Fermi_temperature abar zbar bernoulli_param q v_div_cs dm radius dr free_e dv_dt ionization_c12 energy tau total_energy v_div_vesc zone gradT dq pressure prad pgas radius_cm eps_nuc gradr grada luminosity log_Ledd velocity vel_km_per_s csound conv_vel mlt_mixing_type h1 he4 c12 n13 o16 temperature opacity density x_mass_fraction_H y_mass_fraction_He z_mass_fraction_metals cell_KE inject_energy' + +melec = 9.1093837015e-31 #electron mass kg +mhyd = 1.673532838345678e-27 #mass of hydrogen in kg: mass in amu = 1.6605390671738466e-27 kg +hbar2 = 1.1121217172106814e-68 # J^2 s^2 hbar = 1.054571817d-34 +boltzman_const = 1.3806485279e-23 #m^2 kg^ s^-2 K^-1 +pi = 3.1415926535897932384626433832795028841971693993751e0 +pi2 = pi * pi + +#------------------------------------------------------------------------------------------------------------------------------ +a = fmr.FastMesaReader('LOGS/profile128.data', plotting_columns) #T = 7.213275583043994 +mass_a = a.mass +c12_a = a.c12 +counter_a = 0 +for i, val in enumerate(mass_a): + if c12_a[i] > 4.8e-1: + WD_surface_a = mass_a[i+1] + counter_a = i+1 + break +env_mass_a = mass_a[0]-WD_surface_a +print('WD_surface_a', WD_surface_a, 'env_mass_a', env_mass_a, 'max_T_a', max(a.temperature), 'counter_a', counter_a) +T_fermi_a = np.zeros(counter_a) +temperature_a = np.zeros(counter_a) +q_a = np.zeros(counter_a) +for i in range(counter_a): + T_fermi_a[i] = ( (hbar2/(2*melec)) * ((3*pi2*(a.zbar[i]/a.abar[i])*a.density[i]*1e3 ) / mhyd)**(2e0/3e0) ) / boltzman_const + temperature_a[i] = a.temperature[i] + q_a[i] = (a.mass[i]-WD_surface_a)/env_mass_a + +#------------------------------------------------------------------------------------------------------------------------------ + +b = fmr.FastMesaReader('LOGS/profile177.data', plotting_columns) #T = 7.213275583043994 +mass_b = b.mass +c12_b = b.c12 +counter_b = 0 +for i, val in enumerate(mass_b): + if c12_b[i] > 4.8e-1: + WD_surface_b = mass_b[i+1] + counter_b = i+1 + break +env_mass_b = mass_b[0]-WD_surface_b +print('WD_surface_b', WD_surface_b, 'env_mass_b', env_mass_b, 'max_T_b', max(b.temperature), 'counter_b', counter_b) +T_fermi_b = np.zeros(counter_b) +temperature_b = np.zeros(counter_b) +q_b = np.zeros(counter_b) +for i in range(counter_b): + T_fermi_b[i] = ( (hbar2/(2*melec)) * ((3*pi2*(b.zbar[i]/b.abar[i])*b.density[i]*1e3 ) / mhyd)**(2e0/3e0) ) / boltzman_const + temperature_b[i] = b.temperature[i] + q_b[i] = (b.mass[i]-WD_surface_b)/env_mass_b + + +#------------------------------------------------------------------------------------------------------------------------------ + +# fig, (ax1,ax2) = plt.subplots(2, sharex=True, figsize=(12.8,9.6)) + +# ax1.plot(1e0-q_a, T_fermi_a, linewidth='2', linestyle='dashed', label='$T_{\\mathrm{F}}$') +# ax1.plot(1e0-q_a, temperature_a, linewidth='2', label='$T_{\\mathrm{env}}$') + +# ax2.plot(1e0-q_b, T_fermi_b, linewidth='2', linestyle='dashed', label='$T_{\\mathrm{F}}$') +# ax2.plot(1e0-q_b, temperature_b, linewidth='2', label='$T_{\\mathrm{env}}$') + +# ax2.set_xlabel('Normalised envelope mass coordinate $\\left[\\frac{m}{M_{\\mathrm{env}}}\\right]$', fontsize=16) +# ax1.set_ylabel('Temperature [K]', fontsize=16) +# ax2.set_ylabel('Temperature [K]', fontsize=16) + +# ax1.set_title('$T_{\\mathrm{env,max}}=1.6\\times10^{7}\,\\mathrm{K}$, $M_{\\mathrm{env}}=7.33\\times10^{-5}\,\\mathrm{M_{\\odot}}$', y=0.1, pad=-14, fontsize=16) +# ax2.set_title('$T_{\\mathrm{env,max}}=8\\times10^{8}\,\\mathrm{K}$, $M_{\\mathrm{env}}=8.23\\times10^{-5}\,\\mathrm{M_{\\odot}}$', y=0.1, pad=-14, fontsize=16) + +# ax2.legend(fontsize=16, loc='lower left') +# # ax2.legend(fontsize=12) #(loc='upper left') + +# ax1.set_xscale('log') +# ax2.set_xscale('log') +# ax1.set_yscale('log') +# ax2.set_yscale('log') + +# # ax2.annotate('local max', xy=(1, 1), xycoords='figure fraction') + +# # ax1.set_xlim(-0.01,1.01) +# # ax2.set_xlim(-0.01,1.01) +# # ax1.set_ylim(1e5,1.2e8) +# # ax2.set_ylim(1e5,1.2e8) + +# fig.tight_layout() +# # plt.setp(ax1.get_xticklabels(), visible=False) +# ax1.tick_params(axis='y', labelsize=14) +# ax2.tick_params(axis='x', labelsize=14) +# ax2.tick_params(axis='y', labelsize=14) + +# ax1.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +# ax1.grid(which='major', linestyle=':', linewidth='0.8') +# ax1.grid(which='minor', linestyle=':', linewidth='0.3') +# ax2.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +# ax2.grid(which='major', linestyle=':', linewidth='0.8') +# ax2.grid(which='minor', linestyle=':', linewidth='0.3') +# plt.minorticks_on() + +# plt.show() +# # plt.savefig('envelope_fermi_temperatue_comparison_before_and_during_TNR.pdf', dpi=500) + + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + +T_ferm_deg, = ax.plot(1e0-q_a, T_fermi_a, linewidth='2', color='#994F00', linestyle='dashed', label='$T_{\\mathrm{F}}$') +T_deg, = ax.plot(1e0-q_a, temperature_a, linewidth='2', color='#994F00', label='$T_{\\mathrm{env}}$') + +T_ferm_nondeg, = ax.plot(1e0-q_b, T_fermi_b, linewidth='2', color='#006CD1', linestyle='dashed', label='$T_{\\mathrm{F}}$') +T_nondeg, = ax.plot(1e0-q_b, temperature_b, linewidth='2', color='#006CD1', label='$T_{\\mathrm{env}}$') + +ax.set_xlabel('Normalised envelope mass coordinate $\\mathrm{Log_{10}}\\left(1-\\dfrac{m}{M_{\\mathrm{env}}}\\right)$', fontsize=20) +ax.set_ylabel('$\\mathrm{Log_{10}\\left(Temperature\,/\,K\\right)}$', fontsize=20) + +ax.set_xscale('log') +ax.set_yscale('log') + +ax.set_xlim(1e-3,1) +ax.set_ylim(1e6,1.2e8) + +ax.set_xticks([1e-3,1e-2,1e-1,1]) #replaces tick labels from '10^x' to 'x' +ax.set_xticklabels(['-3','-2','-1','0']) #replaces tick labels from '10^x' to 'x' + +ax.set_yticks([1e6,1e7,1e8]) #replaces tick labels from '10^x' to 'x' +ax.set_yticklabels(['6','7','8']) #replaces tick labels from '10^x' to 'x' + +fig.tight_layout() +# plt.setp(ax.get_xticklabels(), visible=False) +ax.tick_params(axis='x', labelsize=16) +ax.tick_params(axis='y', labelsize=16) + +# ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='0.8') +ax.grid(which='minor', linestyle=':', linewidth='0.3') + +leg_deg = ax.legend(handles=[T_ferm_deg, T_deg], frameon=False, fontsize=20, loc='lower right', title='Degenerate envelope: \n $T_{\\mathrm{env,max}}=1.6\\times10^{7}\,\\mathrm{K}$ \n $M_{\\mathrm{env}}=7.33\\times10^{-5}\,\\mathrm{M_{\\odot}}$') +leg_deg.get_title().set_fontsize('20') +leg_deg.get_title().set_color('#994F00') +for line, text in zip(leg_deg.get_lines(), leg_deg.get_texts()): + text.set_color(line.get_color()) +ax.add_artist(leg_deg) +leg_nondeg = ax.legend(handles=[T_ferm_nondeg, T_nondeg], frameon=False, fontsize=20, loc='upper left', title='Non-degenerate envelope: \n $T_{\\mathrm{env,max}}=10^{8}\,\\mathrm{K}$ \n $M_{\\mathrm{env}}=8.23\\times10^{-5}\,\\mathrm{M_{\\odot}}$',) +leg_nondeg.get_title().set_fontsize('20') +leg_nondeg.get_title().set_color('#006CD1') +for line, text in zip(leg_nondeg.get_lines(), leg_nondeg.get_texts()): + text.set_color(line.get_color()) + +ax.annotate("Envelope surface", xy=(5e-2, 1.3e6), xytext=(1.01e-2, 1.3e6), fontsize=14) +ax.annotate("", xy=(1e-2, 1.2e6), xytext=(2.7e-2, 1.2e6), arrowprops={"arrowstyle":"->", "color":"black", 'lw':3}) + +ax.annotate("Envelope base", xy=(1e-1, 1.3e6), xytext=(4.1e-2, 1.3e6), fontsize=14) +ax.annotate("", xy=(1e-1, 1.2e6), xytext=(3.9e-2, 1.2e6), arrowprops={"arrowstyle":"->", "color":"black", 'lw':3}) + + +# plt.show() +plt.savefig('envelope_fermi_temperatue_comparison_before_and_during_TNR.pdf', dpi=500) diff --git a/thesis_plot_scripts/energy_conservation_plot.py b/thesis_plot_scripts/energy_conservation_plot.py new file mode 100644 index 0000000000000000000000000000000000000000..960b323d47a9cc789e1aa2791bd5d7f909ec5964 --- /dev/null +++ b/thesis_plot_scripts/energy_conservation_plot.py @@ -0,0 +1,45 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +import fastmesareader as fmr +from matplotlib.ticker import FormatStrFormatter + +plot_vars = 'star_age model_number total_energy_start_of_step total_energy_of_model_after_mass_cut total_energy_of_cut_cells total_energy_old' + +a = fmr.FastMesaReader('LOGS/history.data', plot_vars) + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + + +# ax.plot(a.model_number-6000, ((a.total_energy_start_of_step-a.total_energy_of_cut_cells)/a.total_energy_old)-1e0, linewidth='1', label='Energy Beginning of Step') +# ax.set_ylabel('$\mathrm{\\frac{E_{start \\ model}-E_{cut \\ cells}}{E_{model \\ after \\ cut}}}-1$', fontsize=22) + + +ax.plot(a.model_number-6000, (1e0-(a.total_energy_of_model_after_mass_cut/a.total_energy_old)), linewidth='1.5') + +ax.set_ylabel('$1-\mathrm{\\dfrac{estimated \\ energy \\ after \\ cut}{ actual \\ energy \\ after \\ cut}}$', fontsize=20) +# ax.set_ylabel('1-(calculated energy after cut / actual energy after cut)', fontsize=20) +ax.set_xlabel('Timestep number', fontsize=20) + +ax.tick_params(axis='x', labelsize=16) +ax.tick_params(axis='y', labelsize=16) + +# ax.ticklabel_format(axis='y', style='sci', scilimits=(0,0), useOffset=False) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='0.8') +plt.minorticks_on() +ax.grid(which='minor', linestyle=':', linewidth='0.4') + +f = mticker.ScalarFormatter(useOffset=False, useMathText=True) +g = lambda x,pos : "${}$".format(f._formatSciNotation('%1.10e' % x)) +plt.gca().yaxis.set_major_formatter(mticker.FuncFormatter(g)) + +# ax.xaxis.set_minor_formatter(mticker.LogFormatterSciNotation(base=10.0, labelOnlyBase=False, minor_thresholds=(np.inf, np.inf))) +# plt.setp(ax.xaxis.get_minorticklabels(), rotation=90) + +fig.tight_layout() +# plt.show() +# plt.savefig('energy_comparison.pdf', dpi=500) +plt.savefig('star_cut_hypothesised_vs_actual_energy_comparison.pdf', dpi=500) + diff --git a/useful_scripts/inject_energy_and_nuclear_energy _compare_Lsun_units.py b/useful_scripts/inject_energy_and_nuclear_energy _compare_Lsun_units.py new file mode 100644 index 0000000000000000000000000000000000000000..a8a3a13b4c3024e016c12c931ec608c4b462586d --- /dev/null +++ b/useful_scripts/inject_energy_and_nuclear_energy _compare_Lsun_units.py @@ -0,0 +1,48 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +import fastmesareader as fmr + +plotting_tings = 'star_age luminosity radius_cm star_mass model_number max_T v_surf mass_conv_core cz_scale_height max_eps_nuc total_energy_erg total_extra_energy_erg' + +a = fmr.FastMesaReader('../LOGS_inject_energy/history.data', plotting_tings) +b = fmr.FastMesaReader('../LOGS_do_mix/history.data', plotting_tings) +# a = fmr.FastMesaReader('LOGS_extra_energy_1d12/history.data', plotting_tings) + +# a = fmr.FastMesaReader('../standard_MLT_test/LOGS/history.data', plotting_tings) + + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + +do_mix_energy_list = b.total_energy_erg +total_do_mix_energy = do_mix_energy_list[-1] + +star_age_list = b.star_age +star_age_sec = star_age_list[-1]*365*24*3600 + +ax.plot(b.star_age*365*24, ((b.total_energy_erg)/star_age_sec)/3.828e33, color='k', linewidth='1') +ax.plot(a.star_age*365*24, ((a.total_energy_erg+total_do_mix_energy)/star_age_sec)/3.828e33, color='k', linewidth='1', label='$\\sum \\epsilon_{\\mathrm{nuc}}$') +ax.plot(a.star_age*365*24, (a.total_extra_energy_erg/star_age_sec)/3.828e33, linewidth='1', label='$\\sum E_{\\mathrm{inject}}$') + + +ax.legend(prop={'size': 15}) #(loc='upper left') + +ax.set_xscale('log') +ax.set_yscale('log') + +ax.set_xlabel('Star Age after Diffusive Convective Mixing [hr]', fontsize=16) +ax.set_ylabel('Luminosity [$\\mathrm{L_{\\odot}}$]', fontsize=16) + +# ax.set_xlim(0,1) +# ax.set_ylim(0,1.1) + +ax.tick_params(axis='x', labelsize=12) +ax.tick_params(axis='y', labelsize=12) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='0.8') +plt.minorticks_on() +ax.grid(which='minor', linestyle=':', linewidth='0.4') + +# plt.show() +plt.savefig('sum_nuclear_generated_energy_and_sum_injected_energy_in_Lsun.pdf', dpi=500) diff --git a/useful_scripts/inject_energy_and_nuclear_energy _compare_erg_units.py b/useful_scripts/inject_energy_and_nuclear_energy _compare_erg_units.py new file mode 100644 index 0000000000000000000000000000000000000000..d982139309a528c90e246eee3846ce2afbf8361b --- /dev/null +++ b/useful_scripts/inject_energy_and_nuclear_energy _compare_erg_units.py @@ -0,0 +1,48 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +import fastmesareader as fmr + +plotting_tings = 'star_age luminosity radius_cm star_mass model_number max_T v_surf mass_conv_core cz_scale_height max_eps_nuc total_energy_erg total_extra_energy_erg' + +a = fmr.FastMesaReader('../LOGS_inject_energy/history.data', plotting_tings) +b = fmr.FastMesaReader('../LOGS_do_mix/history.data', plotting_tings) +# a = fmr.FastMesaReader('LOGS_extra_energy_1d12/history.data', plotting_tings) + +# a = fmr.FastMesaReader('../standard_MLT_test/LOGS/history.data', plotting_tings) + + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + +do_mix_energy_list = b.total_energy_erg +total_do_mix_energy = do_mix_energy_list[-1] + +star_age_list = b.star_age +star_age_sec = star_age_list[-1]*365*24*3600 + +ax.plot(b.star_age*365*24, b.total_energy_erg, color='k', linewidth='1') +ax.plot(a.star_age*365*24, (a.total_energy_erg+total_do_mix_energy), color='k', linewidth='1', label='$\\sum \\epsilon_{\\mathrm{nuc}}$') +ax.plot(a.star_age*365*24, a.total_extra_energy_erg, linewidth='1', label='$\\sum E_{\\mathrm{inject}}$') + + +ax.legend(prop={'size': 15}) #(loc='upper left') + +ax.set_xscale('log') +ax.set_yscale('log') + +ax.set_xlabel('Star Age after Diffusive Convective Mixing [hr]', fontsize=16) +ax.set_ylabel('Energy [erg]', fontsize=16) + +# ax.set_xlim(0,1) +# ax.set_ylim(0,1.1) + +ax.tick_params(axis='x', labelsize=12) +ax.tick_params(axis='y', labelsize=12) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='0.8') +plt.minorticks_on() +ax.grid(which='minor', linestyle=':', linewidth='0.4') + +# plt.show() +plt.savefig('sum_nuclear_generated_energy_and_sum_injected_energy_in_erg.pdf', dpi=500) diff --git a/useful_scripts/inject_energy_div_nuclear_energy_ratio.py b/useful_scripts/inject_energy_div_nuclear_energy_ratio.py new file mode 100644 index 0000000000000000000000000000000000000000..d0e0342b9791cb37e5a9873a50d08951d7512884 --- /dev/null +++ b/useful_scripts/inject_energy_div_nuclear_energy_ratio.py @@ -0,0 +1,46 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +import fastmesareader as fmr +from matplotlib.ticker import FormatStrFormatter + +plotting_tings = 'star_age luminosity radius_cm star_mass model_number max_T v_surf mass_conv_core cz_scale_height max_eps_nuc total_energy_erg total_extra_energy_erg' + +# a = fmr.FastMesaReader('../LOGS_inject_energy/history.data', plotting_tings) +# b = fmr.FastMesaReader('../LOGS_do_mix/history.data', plotting_tings) +a = fmr.FastMesaReader('../LOGS/history.data', plotting_tings) + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + +# do_mix_energy_list = b.total_energy_erg +# total_do_mix_energy = do_mix_energy_list[-1] +# star_age_list = b.star_age +# star_age_sec = star_age_list[-1]*365*24*3600 +# ax.plot(a.star_age*365*24, a.total_extra_energy_erg/(a.total_energy_erg+total_do_mix_energy), linewidth='1') + +# ax.plot(a.star_age*365*24, a.total_extra_energy_erg/a.total_energy_erg, linewidth='1') +ax.plot(a.model_number, (a.total_extra_energy_erg)/(a.total_energy_erg), linewidth='1') + +# ax.set_xscale('log') +# ax.set_yscale('log') +# ax.ticklabel_format(axis='y', style='sci', scilimits=(0,0), useOffset=False) + +ax.set_xlabel('Star Age after Diffusive Convective Mixing [hr]', fontsize=16) +ax.set_ylabel('$\\sum E_{\\mathrm{inject}}$ / $\\sum \\epsilon_{\\mathrm{nuc}}$', fontsize=16) + +# ax.set_xlim(0,1) +# ax.set_ylim(0,1.1) + +ax.tick_params(axis='x', labelsize=12) +ax.tick_params(axis='y', labelsize=12) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='0.8') +plt.minorticks_on() +ax.grid(which='minor', linestyle=':', linewidth='0.4') + +# ax.xaxis.set_minor_formatter(mticker.LogFormatterSciNotation(base=10.0, labelOnlyBase=False, minor_thresholds=(np.inf, np.inf))) +# plt.setp(ax.xaxis.get_minorticklabels(), rotation=90) + +plt.show() +# plt.savefig('total_injected_energy_div_total_nuc_energy.pdf', dpi=500) diff --git a/useful_scripts/injected_energy_div_nuclear_energy.py b/useful_scripts/injected_energy_div_nuclear_energy.py new file mode 100644 index 0000000000000000000000000000000000000000..a34e98eadd86c2ef63aee9cacd381df77d7dd5e7 --- /dev/null +++ b/useful_scripts/injected_energy_div_nuclear_energy.py @@ -0,0 +1,85 @@ +import standard_plotting_package +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +import fastmesareader as fmr + +plotting_vars = 'star_age model_number total_extra_energy_erg total_energy_erg star_mass' +a = fmr.FastMesaReader('../LOGS/history.data', plotting_vars) +# b = fmr.FastMesaReader('../../no_dt_limit_and_standard_spatial_resolution_envelope_test/LOGS/history.data', plotting_vars) + + +fig = plt.figure() +ax = fig.add_subplot(111) + +# re_index = 17800 +# star_age = a.star_age[:re_index] +# total_extra_energy_erg = a.total_extra_energy_erg[:re_index] +# total_energy_erg = a.total_energy_erg[:re_index] + +# arr_length = len(a.total_extra_energy_erg) +# total_extra_energy_erg = np.zeros(re_index) +# total_energy_erg = np.zeros(re_index) +# star_age = np.zeros(re_index) + +# for i in range(re_index): +# total_extra_energy_erg[i] = a.total_extra_energy_erg[i] +# total_energy_erg[i] = a.total_energy_erg[i] +# star_age[i] = a.star_age[i] + +# ax.plot(star_age*365.25, (total_extra_energy_erg)/(total_energy_erg), linewidth=1) +# ax.plot(a.star_age*365.25, (a.total_extra_energy_erg)/(a.total_energy_erg), linewidth=1) +ax.plot(a.model_number, a.total_extra_energy_erg/(a.total_energy_erg), linewidth=1) + +# ax.plot(a.model_number, (a.star_mass), linewidth=1, label='a') +# ax.plot(b.model_number, (b.star_mass), linewidth=1, label='b') + +# ax.plot(a.model_number, (a.total_extra_energy_erg), linewidth=1, label='a') +# ax.plot(b.model_number, (b.total_extra_energy_erg), linewidth=1, label='b') + +ax.legend() #(loc='upper left') + + +# fig.tight_layout() +ax.grid(which='major', linestyle=':', linewidth='0.8') +ax.grid(which='minor', linestyle=':', linewidth='0.3') + +# ax.set_xscale('log') +ax.set_yscale('log') + +ax.set_xlabel('Star Age since IDF [day]') +ax.set_ylabel('$\\mathrm{Log_{10}}\\left( \\sum E_{\\mathrm{inject}}\\,/\\,\\sum \\epsilon_{\\mathrm{nuc}} \\right)$') + +# ax.set_title('') +# ax.legend() #title='', loc='upper left', ncol=2 + + +# OPTIONALS +# --- Replaces tick labels from '10^x' to 'x' --- +# ax.set_xticks([1e-10,1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10]) +# ax.set_xticklabels(['-10','-9','-8','-7','-6','-5','-4','-3','-2','-1','0','1','2','3','4','5','6','7','8','9','10']) +# ax.set_yticks([1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3]) +# ax.set_yticklabels(['-9','-8','-7','-6','-5','-4','-3']) + +# --- Stop sig figs at top of plot --- +# ax.ticklabel_format(axis='both', style='plain', scilimits=(0,0), useOffset=False) + +# --- Make X-axis ticks not visible --- +# plt.setp(ax.get_xticklabels(), visible=False) + +# --- Make Y-axis ticks not visible --- +# plt.setp(ax.get_yticklabels(), visible=False) + +# --- To have Y-axis ticks in scientific notation --- +# f = mticker.ScalarFormatter(useOffset=False, useMathText=True) +# g = lambda x,pos : "${}$".format(f._formatSciNotation('%1.10e' % x)) +# plt.gca().yaxis.set_major_formatter(mticker.FuncFormatter(g)) + +# --- Colorblind friendly pallete --- +# CB_color_cycle = ['#377eb8', '#ff7f00', '#4daf4a', '#f781bf', '#a65628', '#984ea3', '#999999', '#e41a1c', '#dede00'] + +# ax.set_xlim() +# ax.set_ylim() + +plt.show() +# plt.savefig('injected_energy_div_nuclear_energy.pdf', dpi=500) \ No newline at end of file diff --git a/useful_scripts/plot_opacity_graphs.py b/useful_scripts/plot_opacity_graphs.py new file mode 100644 index 0000000000000000000000000000000000000000..a2bc3c1b237f075375e116022ebbdc80ff88f8e2 --- /dev/null +++ b/useful_scripts/plot_opacity_graphs.py @@ -0,0 +1,164 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +import fastmesareader as fmr +import pandas as pd + + +fig = plt.figure(figsize=(16,9.6)) +ax = fig.add_subplot(111) + +# df = pd.read_csv('before_opacity_bump.data', delim_whitespace=True, index_col=0) +# log_rho = np.asarray(df.columns, dtype=float) +# log_T = df.index.values +# opacity_data_in_df = df.to_numpy() + +# cs = ax.contourf(log_rho, log_T, np.log10(opacity_data_in_df), levels=100, cmap='viridis', antialiased=True) +# for c in cs.collections: +# c.set_rasterized(True) +# bar = fig.colorbar(cs, pad=0.02) +# bar.set_label('$\\mathrm{Log_{10}}(\kappa)$ [$\\mathrm{cm^{2}\,g^{-1}}$]', fontsize=14) +# bar.outline.set_visible(False) + +# ax.set_xlabel('$\\mathrm{Log_{10}}(\\rho)$ [$\\mathrm{g\,cm^{-3}}$]', fontsize=14) +# ax.set_ylabel('$\\mathrm{Log_{10}(T)}$ [K]', fontsize=14) +# ax.set_title('Surface Z~0.20341, Before Surface Opacity Spike', fontsize=16) + +# ax.tick_params(axis='x', labelsize=12) +# ax.tick_params(axis='y', labelsize=12) +# ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +# plt.minorticks_on() +# plt.savefig('surface_graphs/opacity_graphs_before_surface_opacity_spike.png', dpi=500) + + +# plotting_tings = 'star_age photosphere_cell_density photosphere_cell_T photosphere_cell_opacity' +# a = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +# df = pd.read_csv('after_opacity_bump.data', delim_whitespace=True, index_col=0) +# log_rho = np.asarray(df.columns, dtype=float) +# log_T = df.index.values +# opacity_data_in_df = df.to_numpy() + +# cs = ax.contourf(log_rho, log_T, np.log10(opacity_data_in_df), levels=100, cmap='viridis', antialiased=True) +# for c in cs.collections: +# c.set_rasterized(True) +# bar = fig.colorbar(cs, pad=0.02) +# bar.set_label('$\\mathrm{Log_{10}}(\kappa)$ [$\\mathrm{cm^{2}\,g^{-1}}$]', fontsize=14) +# bar.outline.set_visible(False) + +# ax.set_xlabel('$\\mathrm{Log_{10}}(\\rho)$ [$\\mathrm{g\,cm^{-3}}$]', fontsize=14) +# ax.set_ylabel('$\\mathrm{Log_{10}(T)}$ [K]', fontsize=14) +# ax.set_title('Surface Z~0.20426, $\\mathrm{P_{extra}}=1$', fontsize=16) + +# ax.tick_params(axis='x', labelsize=12) +# ax.tick_params(axis='y', labelsize=12) +# ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +# plt.minorticks_on() + +# ax.scatter(x=-9.6714411174554655, y=4.9939351437534620, marker='x', color='black', s=100, label='Density Inversion Occurs') +# ax.plot(np.log10(a.photosphere_cell_density), np.log10(a.photosphere_cell_T), linewidth='1', color='black', label='Surface') +# ax.legend() +# plt.savefig('surface_graphs/opacity_graphs_with_surface_properties_overlayed.png', dpi=500) + + +# plotting_tings = 'density temperature' +# a = fmr.FastMesaReader('LOGS/profile56.data', plotting_tings) +# df = pd.read_csv('before_opacity_bump.data', delim_whitespace=True, index_col=0) +# log_rho = np.asarray(df.columns, dtype=float) +# log_T = df.index.values +# opacity_data_in_df = df.to_numpy() +# cs = ax.contourf(log_rho, log_T, np.log10(opacity_data_in_df), levels=1000, cmap='viridis', antialiased=True) +# for c in cs.collections: +# c.set_rasterized(True) +# bar = fig.colorbar(cs, pad=0.02) +# bar.set_label('$\\mathrm{Log_{10}}(\kappa)$ [$\\mathrm{cm^{2}\,g^{-1}}$]', fontsize=14) +# bar.outline.set_visible(False) +# ax.set_xlabel('$\\mathrm{Log_{10}}(\\rho)$ [$\\mathrm{g\,cm^{-3}}$]', fontsize=14) +# ax.set_ylabel('$\\mathrm{Log_{10}(T)}$ [K]', fontsize=14) +# ax.set_title('Surface Z~0.20426, $\\mathrm{P_{extra}}=1$', fontsize=16) +# ax.tick_params(axis='x', labelsize=12) +# ax.tick_params(axis='y', labelsize=12) +# ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +# plt.minorticks_on() +# # ax.scatter(x=-9.6714411174554655, y=4.9939351437534620, marker='x', color='black', s=100, label='Density Inversion Occurs') +# ax.plot(np.log10(a.density), np.log10(a.temperature), linewidth='1', color='black', label='Star Track') +# ax.legend() +# # plt.savefig('surface_graphs/opacity_graph_with_star_profile_before_inversion.png', dpi=500) +# ax.set_xlim(-10.5,-9) +# ax.set_ylim(4.8,5.5) +# plt.savefig('surface_graphs/opacity_graph_with_star_profile_before_inversion_zoom_on_surface.png', dpi=500) + + +# plotting_tings = 'density temperature' +# a = fmr.FastMesaReader('LOGS/profile57.data', plotting_tings) +# df = pd.read_csv('after_opacity_bump.data', delim_whitespace=True, index_col=0) +# log_rho = np.asarray(df.columns, dtype=float) +# log_T = df.index.values +# opacity_data_in_df = df.to_numpy() +# cs = ax.contourf(log_rho, log_T, np.log10(opacity_data_in_df), levels=1000, cmap='viridis', antialiased=True) +# for c in cs.collections: +# c.set_rasterized(True) +# bar = fig.colorbar(cs, pad=0.02) +# bar.set_label('$\\mathrm{Log_{10}}(\kappa)$ [$\\mathrm{cm^{2}\,g^{-1}}$]', fontsize=14) +# bar.outline.set_visible(False) +# ax.set_xlabel('$\\mathrm{Log_{10}}(\\rho)$ [$\\mathrm{g\,cm^{-3}}$]', fontsize=14) +# ax.set_ylabel('$\\mathrm{Log_{10}(T)}$ [K]', fontsize=14) +# ax.set_title('Surface Z~0.20426, $\\mathrm{P_{extra}}=1$', fontsize=16) +# ax.tick_params(axis='x', labelsize=12) +# ax.tick_params(axis='y', labelsize=12) +# ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +# plt.minorticks_on() +# # ax.scatter(x=-9.6714411174554655, y=4.9939351437534620, marker='x', color='black', s=100, label='Density Inversion Occurs') +# ax.plot(np.log10(a.density), np.log10(a.temperature), linewidth='1', color='black', label='Star Track') +# ax.legend() +# # plt.savefig('surface_graphs/opacity_graph_with_star_profile_after_inversion.png', dpi=500) +# ax.set_xlim(-10.5,-9) +# ax.set_ylim(4.8,5.5) +# plt.savefig('surface_graphs/opacity_graph_with_star_profile_after_inversion_zoom_on_surface.png', dpi=500) + + +plotting_tings = 'density temperature' +a = fmr.FastMesaReader('LOGS/profile56.data', plotting_tings) +b = fmr.FastMesaReader('LOGS/profile57.data', plotting_tings) +df = pd.read_csv('before_opacity_bump.data', delim_whitespace=True, index_col=0) +log_rho = np.asarray(df.columns, dtype=float) +log_T = df.index.values +opacity_data_in_df = df.to_numpy() +cs = ax.contourf(log_rho, log_T, np.log10(opacity_data_in_df), levels=1000, cmap='viridis', antialiased=True) +for c in cs.collections: + c.set_rasterized(True) +bar = fig.colorbar(cs, pad=0.02) +bar.set_label('$\\mathrm{Log_{10}}(\kappa)$ [$\\mathrm{cm^{2}\,g^{-1}}$]', fontsize=14) +bar.outline.set_visible(False) +ax.set_xlabel('$\\mathrm{Log_{10}}(\\rho)$ [$\\mathrm{g\,cm^{-3}}$]', fontsize=14) +ax.set_ylabel('$\\mathrm{Log_{10}(T)}$ [K]', fontsize=14) +ax.set_title('Surface Z~0.20426, $\\mathrm{P_{extra}}=1$', fontsize=16) +ax.tick_params(axis='x', labelsize=12) +ax.tick_params(axis='y', labelsize=12) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +plt.minorticks_on() +ax.plot(np.log10(a.density), np.log10(a.temperature), linewidth='1', color='black', label='before $\\rho$ inversion') +ax.plot(np.log10(b.density), np.log10(b.temperature), linewidth='1', color='red', label='after $\\rho$ inversion') +ax.legend() +# plt.savefig('surface_graphs/opacity_graph_before_after_inversion_compare.png', dpi=500) +ax.set_xlim(-10.5,-9) +ax.set_ylim(4.8,5.5) +cs.clim(vmin=0.3, vmax=1) +bar.clim(vmin=0.3, vmax=1) +# plt.savefig('surface_graphs/opacity_graph_before_after_inversion_compare_zoom_on_surface.png', dpi=500) + + + +plt.show() + + +''' + +Density inversion at profle57.data. profile56.data does not have an inversion +profile57.data: + Age: 3.4986998091985647E-005 + Radius: 4.8326851229081075E-001 + model_number: 275 + logT: 4.9939351437534620 + logRho: -9.6714411174554655 + +''' \ No newline at end of file diff --git a/useful_scripts/plotter.py b/useful_scripts/plotter.py new file mode 100644 index 0000000000000000000000000000000000000000..0bf69f1e0ac5b60dbb0b727d33437cb0d18b467b --- /dev/null +++ b/useful_scripts/plotter.py @@ -0,0 +1,56 @@ +import standard_plotting_package +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +import fastmesareader as fmr + +plotting_vars = '' +a = fmr.FastMesaReader('LOGS/history.data', plotting_vars) + +fig = plt.figure() +ax = fig.add_subplot(111) + +ax.plot(a. , a. , label='') # linestyle=, color= , + +# fig.tight_layout() +ax.grid(which='major', linestyle=':', linewidth='0.8') +ax.grid(which='minor', linestyle=':', linewidth='0.3') + +# ax.set_xscale('log') +# ax.set_yscale('log') + +ax.set_xlabel('') +ax.set_xlabel('') +# ax.set_title('') +# ax.legend() #title='', loc='upper left', ncol=2 + + +# OPTIONALS +# --- Replaces tick labels from '10^x' to 'x' --- +# ax.set_xticks([1e-10,1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10]) +# ax.set_xticklabels(['-10','-9','-8','-7','-6','-5','-4','-3','-2','-1','0','1','2','3','4','5','6','7','8','9','10']) +# ax.set_yticks([1e-10,1e-9,1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10]) +# ax.set_yticklabels(['-10','-9','-8','-7','-6','-5','-4','-3','-2','-1','0','1','2','3','4','5','6','7','8','9','10']) + +# --- Stop sig figs at top of plot --- +# ax.ticklabel_format(axis='both', style='plain', scilimits=(0,0), useOffset=False) + +# --- Make X-axis ticks not visible --- +# plt.setp(ax.get_xticklabels(), visible=False) + +# --- Make Y-axis ticks not visible --- +# plt.setp(ax.get_yticklabels(), visible=False) + +# --- To have Y-axis ticks in scientific notation --- +# f = mticker.ScalarFormatter(useOffset=False, useMathText=True) +# g = lambda x,pos : "${}$".format(f._formatSciNotation('%1.10e' % x)) +# plt.gca().yaxis.set_major_formatter(mticker.FuncFormatter(g)) + +# --- Colorblind friendly pallete --- +# CB_color_cycle = ['#377eb8', '#ff7f00', '#4daf4a', '#f781bf', '#a65628', '#984ea3', '#999999', '#e41a1c', '#dede00'] + +# ax.set_xlim() +# ax.set_ylim() + +plt.show() +# plt.savefig('xxx.pdf', dpi=500) \ No newline at end of file diff --git a/useful_scripts/surface_properties.py b/useful_scripts/surface_properties.py new file mode 100644 index 0000000000000000000000000000000000000000..7fe206459f4f39e22892b75bf16dd8b796b32842 --- /dev/null +++ b/useful_scripts/surface_properties.py @@ -0,0 +1,56 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.ticker as mticker +import fastmesareader as fmr + +plotting_tings = 'star_age photosphere_cell_density photosphere_cell_T photosphere_cell_opacity' + +a = fmr.FastMesaReader('LOGS/history.data', plotting_tings) +# b = fmr.FastMesaReader('../standard_MLT_test/LOGS/history.data', plotting_tings) + + +fig = plt.figure(figsize=(12.8,9.6)) +ax = fig.add_subplot(111) + + +ax.ticklabel_format(axis='both', style='plain', scilimits=(0,0), useOffset=False) +ax.tick_params(axis='x', labelsize=12) +ax.tick_params(axis='y', labelsize=12) +ax.xaxis.set_minor_locator(mticker.AutoMinorLocator()) +ax.grid(which='major', linestyle=':', linewidth='0.8') +plt.minorticks_on() +ax.grid(which='minor', linestyle=':', linewidth='0.4') + +# cm = plt.cm.get_cmap('viridis') +# sc = ax.scatter(np.log10(a.photosphere_cell_density), np.log10(a.photosphere_cell_T), c=a.star_age*525600, cmap=cm) +# ax.plot(np.log10(a.photosphere_cell_density), np.log10(a.photosphere_cell_T), linewidth='0.5', color='k') +# cbar = plt.colorbar(sc) +# ax.set_xlabel('$\\mathrm{Log_{10}}(\\rho)$ [$\\mathrm{g\,cm^{-3}}$]', fontsize=14) +# ax.set_ylabel('$\\mathrm{Log_{10}(T)}$ [K]', fontsize=14) +# cbar.set_label('Time Since Imposed Diffusive Mixing [min]', fontsize=14) +# plt.savefig('surface_graphs/surafce_temperature_vs_density_vs_time.png', dpi=500) + +# cm = plt.cm.get_cmap('viridis') +# sc = ax.scatter(np.log10(a.photosphere_cell_density), np.log10(a.photosphere_cell_T), c=np.log10(a.photosphere_cell_opacity), cmap=cm) +# ax.plot(np.log10(a.photosphere_cell_density), np.log10(a.photosphere_cell_T), linewidth='0.5', color='k') +# cbar = plt.colorbar(sc) +# cbar.ax.minorticks_on() +# ax.set_xlabel('$\\mathrm{Log_{10}}(\\rho)$ [$\\mathrm{g\,cm^{-3}}$]', fontsize=14) +# ax.set_ylabel('$\\mathrm{Log_{10}(T)}$ [K]', fontsize=14) +# cbar.set_label('$\\mathrm{Log_{10}}(\kappa)$ [$\\mathrm{cm^{2}\,g^{-1}}$]', fontsize=14) +# plt.savefig('surface_graphs/surafce_opacity_vs_temperature_vs_density.png', dpi=500) + +cm = plt.cm.get_cmap('viridis') +sc = ax.scatter(np.log10(a.photosphere_cell_density), np.log10(a.photosphere_cell_T), c=np.log10(a.photosphere_cell_opacity), cmap=cm) +ax.plot(np.log10(a.photosphere_cell_density), np.log10(a.photosphere_cell_T), linewidth='0.5', color='k') +cbar = plt.colorbar(sc) +cbar.ax.minorticks_on() +ax.set_xlabel('$\\mathrm{Log_{10}}(\\rho)$ [$\\mathrm{g\,cm^{-3}}$]', fontsize=14) +ax.set_ylabel('$\\mathrm{Log_{10}(T)}$ [K]', fontsize=14) +cbar.set_label('', fontsize=14) +plt.savefig('surface_graphs/temperature_vs_opacity.png', dpi=500) + + + + +# plt.show()