def __init__(self, files): self._files = files self._xml = [] for file in files: self._xml.append(wx.Xml(file))
for n in range(y.shape[2]): y_sum[z, z + n] += y[i, z, n] * factor y_sum /= w else: for z in range(y.shape[1]): for n in range(y.shape[2]): y_sum[z, z + n] += y[0, z, n] return y_sum #---------------------------------------------------------------------------- # Read solar abundances. #---------------------------------------------------------------------------- solar = wx.Xml( io.BytesIO(requests.get('https://osf.io/j67qa/download').content)) solar_zone = solar.get_zone_data() #---------------------------------------------------------------------------- # Read models and retrieve properties. #---------------------------------------------------------------------------- sproc = wx.Xml( io.BytesIO(requests.get('https://osf.io/mg76w/download').content)) model7 = wx.Xml('../models/NRLEE/model7/full.xml') model8 = wx.Xml('../models/NRLEE/model8/full.xml') model9 = wx.Xml('../models/NRLEE/model9/full.xml') mprops1 = model7.get_properties_as_floats(['t9_0', 'rho_0']) mprops2 = model8.get_properties_as_floats(['t9_0', 'rho_0'])
import wnutils.xml as wx import matplotlib.pyplot as plt my_xml = wx.Xml('out-wind-1.xml') my_xml.make_network_abundances_movie('network_abunds.mp4', colorbar = cb) cb = {'shrink': 1, 'label': 'Abundance', 'aspect': 10, 'ticks': [1.e-10, 1.e-8, 1.e-6, 1.e-4, 1.e-2, 1.]})
<nuclear_network>\n\ <xi:include href=\"../full.xml\"\n\ xpointer=\"xpointer(//nuclear_network)\" />\n\ </nuclear_network>\n\ <zone_data>\n\ <xi:include href=\"../" + sys.argv[3] + "/" + zone + ".xml\"\n\ xpointer=\"xpointer(//zone)\" />\n\ </zone_data>\n\ </libnucnet_input>") f.close() rhos = np.genfromtxt(sys.argv[1], dtype='str') for rho in rhos: xmlz = wx.Xml(sys.argv[2] + '/' + rho + '.xml') new_zones = xmlz.get_zone_data() new_xml = wx.New_Xml(xml_type='zone_data') new_xml.set_zone_data(new_zones) new_xml.write(sys.argv[2] + '/' + sys.argv[3] + '/' + rho + '.xml') write_zone_xml(rho, sys.argv[2] + '/' + sys.argv[4]) xml = wx.Xml(sys.argv[2] + '/' + rhos[0] + '.xml') new_full_xml = wx.New_Xml(xml_type='libnucnet_input') new_full_xml.set_nuclide_data(xml.get_nuclide_data()) new_full_xml.set_reaction_data(xml.get_reaction_data()) zones = {} for rho in rhos: xmlz = wx.Xml(sys.argv[2] + '/' + sys.argv[3] + '/' + rho + '.xml') old_zone = xmlz.get_zone_data("[last()]")
import wnutils.xml as wx import matplotlib.pyplot as plt xml1 = wx.Xml('out-cst-s.xml') xml2 = wx.Xml('out-wind-nobeta.xml') data1 = xml1.get_properties_as_floats( ['t9', 'time', 'rho', 'entropy per nucleon']) data2 = xml2.get_properties_as_floats( ['t9', 'time', 'rho', 'entropy per nucleon']) l1, = plt.plot(data1['time'], data1['t9'], 'b-') l2, = plt.plot(data2['time'], data2['t9'], 'r.') plt.legend((l1, l2), ('cst entropy', 'entropy vary no beta decay')) plt.xlabel('Time (s)') plt.ylabel(r'$T_9$') plt.xlim(0, 3) plt.savefig('compare t9.png') plt.figure(2) l1, = plt.plot(data1['time'], data1['rho'], 'b-') l2, = plt.plot(data2['time'], data2['rho'], 'r.') plt.legend((l1, l2), ('cst entropy', 'entropy vary no beta decay')) plt.xlabel('Time (s)') plt.ylabel(r'$\rho$') plt.xlim(0, 3) plt.ylim(1.e0, 1.e7) plt.yscale('log') plt.savefig('compare density.png') plt.figure(3) l1, = plt.plot(data1['time'], data1['entropy per nucleon'])
import wnutils.xml as wx import matplotlib.pyplot as plt my_xml1 = wx.Xml('no-sdot-no-thermo.xml') my_xml2 = wx.Xml('with-thermo-no-sdot.xml') #my_xml3 = wx.Xml('out10-cst-with-sdot.xml') y1 = my_xml1.get_abundances_vs_nucleon_number(nucleon = 'a', zone_xpath="[last()]") y2 = my_xml2.get_abundances_vs_nucleon_number(nucleon = 'a', zone_xpath="[last()]") #y3 = my_xml3.get_abundances_vs_nucleon_number(nucleon = 'a', zone_xpath="[last()]") line1, = plt.plot(y1[0,:]) line2, = plt.plot(y2[0,:]) #line3, = plt.plot(y3[0,:]) plt.xlabel('Mass Number, A') plt.ylabel('Abundance per nucleon, Y(A)') plt.xlim(0,280) plt.ylim(1.e-10,1.e-1) plt.yscale('log') #plt.legend((line1,line2),(r'$\dot s = 0$',r'$\dot s \neq 0 $')) plt.legend((line1,line2),('no thermo','with thermo')) plt.show()
import wnutils.xml as wx import matplotlib.pyplot as plt xml1 = wx.Xml('with-thermo-no-sdot.xml') xml2 = wx.Xml('with-thermo-with-sdot.xml') #xml3 = wx.Xml('entropy_generation_nobeta.xml') data1 = xml1.get_properties_as_floats( ['t9', 'time', 'rho', 'entropy per nucleon']) data2 = xml2.get_properties_as_floats( ['t9', 'time', 'rho', 'entropy per nucleon']) #data3 = xml3.get_properties_as_floats(['t9','time','rho','entropy per nucleon']) l1, = plt.plot(data1['t9'], data1['rho']) l2, = plt.plot(data2['t9'], data2['rho']) #l1, = plt.plot(data1['time'],data1['rho']) #l2, = plt.plot(data2['time'],data2['rho']) #l3, = plt.plot(data3['time'],data3['rho']) plt.legend((l1, l2), (r'$\dot s = 0 $', r'$\dot s \neq 0$')) plt.xlabel(r'$T_9$') plt.ylabel(r'$\rho$') plt.xscale('log') plt.yscale('log') plt.xlim(1e1, 1e-3) #plt.xlim(0,3) plt.show() #plt.savefig('compare t9.png')
import sys import wnutils.xml as wx import matplotlib.pyplot as plt import numpy as np from matplotlib import animation fig = plt.figure() xml = wx.Xml(sys.argv[1]) z = sys.argv[2] y = xml.get_all_abundances_in_zones() def updatefig(i): p = xml.get_all_properties_for_zone("[position() = " + str(i + 1) + "]") keys = list(dict.keys(p)) u = list(filter(lambda x: x[0] == 'yz_eq' and x[1] == z, keys)) yn = y[i, int(z), :] yneq = np.zeros(y.shape[2]) for uu in u: yneq[int(uu[2]) - int(uu[1])] = float(p[uu]) fig.clear() plt.plot(yn, label='Network')