コード例 #1
0
ファイル: multi_xml.py プロジェクト: mengkel/wnutils
 def __init__(self, files):
     self._files = files
     self._xml = []
     for file in files:
         self._xml.append(wx.Xml(file))
コード例 #2
0
                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'])
コード例 #3
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.]})
コード例 #4
0
           <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()]")
コード例 #5
0
ファイル: plot_two_file.py プロジェクト: mengkel/CourseWork
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'])
コード例 #6
0
ファイル: plot_two_abunds.py プロジェクト: mengkel/Chunk
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()
コード例 #7
0
ファイル: plot_two_file_1.py プロジェクト: mengkel/CourseWork
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')
コード例 #8
0
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')