3 import matplotlib.pyplot
as plt
15 paths = [i
for i
in os.listdir(
".")
if i[0] !=
"."]
22 if not os.path.isdir(p):
24 if p.strip() ==
"network_data":
26 if not os.path.isfile(os.path.join(p,
"WinNet_data.h5")):
27 raise Exception(
"Could not find WinNet_data.h5 in '"+str(p)+
"'. "\
28 "Are you sure you enabled hdf5 output in the makefile "\
32 f = h5py.File(os.path.join(p,
"WinNet_data.h5"),
"r")
40 time_plateau = 10**(-4/2*float(p)+17.5)
43 time = f[
"energy/time"][:]
44 idx_plateau = np.argmin(abs(time-time_plateau))
56 idx_p = (A == 1) & (Z ==1)
57 idx_d = (A == 2) & (Z ==1)
58 idx_he3 = (A == 3) & (Z ==2)
59 idx_he4 = (A == 4) & (Z ==2)
60 idx_be7 = (A == 7) & (Z ==4)
61 idx_be8 = (A == 8) & (Z ==4)
62 idx_b8 = (A == 8) & (Z ==5)
63 idx_li7 = (A == 7) & (Z ==3)
64 idx_c12 = (A == 12) & (Z ==6)
65 idx_c13 = (A == 13) & (Z ==6)
66 idx_n13 = (A == 13) & (Z ==7)
67 idx_n14 = (A == 14) & (Z ==7)
68 idx_n15 = (A == 15) & (Z ==7)
69 idx_o15 = (A == 15) & (Z ==8)
70 idx_o16 = (A == 16) & (Z ==8)
71 idx_o17 = (A == 17) & (Z ==8)
72 idx_o18 = (A == 18) & (Z ==8)
73 idx_f17 = (A == 17) & (Z ==9)
74 idx_f18 = (A == 18) & (Z ==9)
75 idx_f19 = (A == 19) & (Z ==9)
77 e_detailed_pg = f[
"energy/detailed (p,g)"][idx_plateau,:]
78 e_detailed_bet = f[
"energy/detailed decay"][idx_plateau,:]
79 e_detailed_ap = f[
"energy/detailed (a,p)"][idx_plateau,:]
80 e_detailed_other = f[
"energy/detailed other"][idx_plateau,:]
81 e_detailed_ag = f[
"energy/detailed (a,g)"][idx_plateau,:]
89 c13pg = e_detailed_pg[idx_c13]
90 n14pg = e_detailed_pg[idx_n14]
91 c12pg = e_detailed_pg[idx_c12]
93 n13d = e_detailed_bet[idx_n13]
94 o15d = e_detailed_bet[idx_o15]
96 n15pa = -e_detailed_ap[idx_n15]
98 e_cno = c13pg+n14pg+c12pg+n13d+o15d+n15pa
102 n15pg = e_detailed_pg[idx_n15]
103 o16pg = e_detailed_pg[idx_o16]
105 f17d = e_detailed_bet[idx_f17]
107 o17pa = -e_detailed_ap[idx_o17]
109 e_cno = e_cno+n15pg+o16pg+f17d+o17pa
113 o17pg = e_detailed_pg[idx_o17]
115 f18pg = e_detailed_bet[idx_f17]
117 o18pa = -e_detailed_ap[idx_o18]
119 e_cno = e_cno+o17pg+f18pg+o18pa
123 o18pg = e_detailed_pg[idx_o18]
125 f19pa = -e_detailed_ap[idx_f19]
127 e_cno = e_cno+o18pg+f19pa
132 ppg = e_detailed_pg[idx_p]
133 dpg = e_detailed_pg[idx_d]
134 pd = e_detailed_bet[idx_p]
136 he3he3 = e_detailed_other[idx_he3]
138 he3a = e_detailed_ag[idx_he3]
139 be7d = e_detailed_bet[idx_be7]
140 li7p = e_detailed_other[idx_li7]
141 be7pg = e_detailed_pg[idx_be7]
142 b8d = e_detailed_bet[idx_b8]
143 be8o = e_detailed_other[idx_be8]
146 e_pp = ppg+dpg+he3he3+pd+he3a+li7p+be7d+b8d+be8o
151 idx_ne20 = (A == 20) & (Z ==10)
152 idx_ne21 = (A == 21) & (Z ==10)
153 idx_ne22 = (A == 22) & (Z ==10)
154 idx_na21 = (A == 21) & (Z ==11)
155 idx_na22 = (A == 22) & (Z ==11)
156 idx_na23 = (A == 23) & (Z ==11)
157 idx_mg22 = (A == 22) & (Z ==12)
158 idx_mg23 = (A == 23) & (Z ==12)
159 idx_mg24 = (A == 24) & (Z ==12)
160 idx_mg25 = (A == 25) & (Z ==12)
161 idx_mg26 = (A == 26) & (Z ==12)
162 idx_al25 = (A == 25) & (Z ==13)
163 idx_al26 = (A == 26) & (Z ==13)
164 idx_al27 = (A == 27) & (Z ==13)
165 idx_si26 = (A == 26) & (Z ==14)
166 idx_si27 = (A == 27) & (Z ==14)
170 ne20pg = e_detailed_pg[idx_ne20]
171 ne21pg = e_detailed_pg[idx_ne21]
172 na21pg = e_detailed_pg[idx_na21]
173 na22pg = e_detailed_pg[idx_na22]
174 ne22pg = e_detailed_pg[idx_ne22]
176 na21d = e_detailed_bet[idx_na21]
177 mg22d = e_detailed_bet[idx_mg22]
178 na22d = e_detailed_bet[idx_na22]
179 mg23d = e_detailed_bet[idx_mg23]
181 na23pa = -e_detailed_ap[idx_na23]
183 e_nena = ne20pg+ne21pg+na21pg+na22pg+ne22pg+na21d+mg22d+na22d+mg23d+na23pa
187 na23pg = e_detailed_pg[idx_na23]
188 mg24pg = e_detailed_pg[idx_mg24]
189 al25pg = e_detailed_pg[idx_al25]
190 mg25pg = e_detailed_pg[idx_mg25]
191 al26pg = np.sum(e_detailed_pg[idx_al26])
192 mg26pg = e_detailed_pg[idx_mg26]
194 al25d = e_detailed_bet[idx_al25]
195 si26d = e_detailed_bet[idx_si26]
196 al26d = np.sum(e_detailed_bet[idx_al26])
197 si27d = e_detailed_bet[idx_si27]
199 al27pa = -e_detailed_ap[idx_al27]
201 e_mgal = na23pg+mg24pg+al25pg+mg25pg+al26pg+mg26pg+al25d+si26d+al26d+si27d+al27pa
204 plt.scatter(float(p),e_nena,color=
"tab:orange")
206 plt.scatter(float(p),e_mgal,color=
"tab:green")
208 plt.scatter(float(p),e_pp,color=
"tab:blue")
210 plt.scatter(float(p),e_cno,color=
"tab:red")
214 plt.axvline(1.56,lw=2,ls=
"--",color=
"lightgrey")
215 plt.text(1.56,5e6,
r"Temperature of the sun",rotation=90,va=
"top",ha=
"right",fontsize=14,color=
"lightgrey")
218 plt.scatter(np.nan,np.nan,color=
"tab:red" ,label=
"CNO-cycle")
219 plt.scatter(np.nan,np.nan,color=
"tab:blue" ,label=
"pp-chain")
220 plt.scatter(np.nan,np.nan,color=
"tab:orange",label=
"Ne-Na cycle")
221 plt.scatter(np.nan,np.nan,color=
"tab:green",label=
"Mg-Al cycle")
228 plt.xlabel(
r"Temperature [10$^7$ K]")
229 plt.ylabel(
r"Energy [erg g$^{-1}$ s$^{-1}$]")
230 plt.title(
r"$\rho$ = 100 g cm$^{-3}$")
231 plt.savefig(
"energy_generation.pdf",bbox_inches=
"tight")