def iterate(): starting_index = 1500 last_index = 1802 TIME_INTERVAL = 10. START_x = get_coordinate(gSTART_x) START_y = get_coordinate(gSTART_y) COORDINATES = np.array([[START_x, START_y]]) coord_x = START_x coord_y = START_y for fileindex in range(starting_index,last_index): grid_y, grid_x = np.mgrid[coord_y:coord_y:1j,coord_x:coord_x:1j] if fileindex < 1000: filename = '0' + str(fileindex) else: filename = str(fileindex) filein = open('/Users/Anton/Desktop/Data/d300a0/sim' + filename + '.dat') datain = np.loadtxt(filein,input_dtype.dtype_newtonian()) filein.close() a = 0 r = datain['r']#*1477000. theta = datain['theta'] u_radial = datain['u_1']/datain['u_t']#*3.e10 u_theta = datain['u_2']/datain['u_t']#*3.e10 g11 = np.sqrt((np.divide( (np.power(r, 2)+a**(2.)*np.power(np.cos(theta),2)), (np.power(r, 2)-2.*r+a**2) ) )) g22 = np.sqrt((np.power(r,2)+a**(2.)*np.power(np.cos(theta),2))) points = (r*np.sin(theta),r*np.cos(theta)) ux = (u_theta*np.cos(theta)*g22 + u_radial*np.sin(theta)) uy = (-u_theta*np.sin(theta)*g22 + u_radial*np.cos(theta)) grid_ux = griddata(points, ux, (grid_x, grid_y), method='linear', fill_value=1e-30) grid_uy = griddata(points, uy, (grid_x, grid_y), method='linear', fill_value=1e-30) try: DELTA_x = grid_ux[0,0]*TIME_INTERVAL DELTA_y = grid_uy[0,0]*TIME_INTERVAL coord_x = coord_x + DELTA_x coord_y = coord_y + DELTA_y if (np.logical_or(coord_x > xmax, coord_y > ymax)): print('The particle have escaped the bounded region. Terminating loop at index ' + str(fileindex)) break elif (np.logical_and(coord_x < 2, coord_y < 2)): print('The particle have been engulfed by the black hole. Terminating loop at index ' + str(fileindex)) break COORDINATES = np.append(COORDINATES, np.array([[coord_x, coord_y]]), axis=0) except IndexError: np.save(savefilename, COORDINATES) print('IndexError: The particle have escaped the bounded region. Terminating loop at index ' + str(fileindex)) break print('Index:', fileindex, COORDINATES) np.save(savefilename, COORDINATES)
def iterate(): #grid_y, grid_x = np.mgrid[ymin:ymax:100j,xmin:xmax:100j] starting_index = gSTART_INDEX last_index = gLAST_INDEX TIME_INTERVAL = 100. START_x = get_coordinate(gSTART_x) START_y = get_coordinate(gSTART_y) COORDINATES = np.array([[START_x, START_y, 0]]) coord_x = START_x coord_y = START_y for fileindex in range(starting_index,last_index): #for loop_index in range(0,20): # fileindex = starting_index - loop_index grid_y, grid_x = np.mgrid[coord_y:coord_y:1j,coord_x:coord_x:1j] if fileindex < 1000: filename = '0' + str(fileindex) else: filename = str(fileindex) filein = open('/Users/Anton/Desktop/Data/hd300a0/hd300a0_rel/sim' + filename + '.dat') datain = np.loadtxt(filein,input_dtype.dtype_rel_hydro()) filein.close() a = 0 r = datain['r']#*1477000. theta = datain['theta'] u_radial = datain['u_1']/datain['u_t']#*3.e10 u_theta = datain['u_2']/datain['u_t']#*3.e10 g11 = np.sqrt((np.divide( (np.power(r, 2)+a**(2.)*np.power(np.cos(theta),2)), (np.power(r, 2)-2.*r+a**2) ) )) g22 = np.sqrt((np.power(r,2)+a**(2.)*np.power(np.cos(theta),2))) points = (r*np.sin(theta),r*np.cos(theta)) ux = (u_theta*np.cos(theta)*g22 + u_radial*np.sin(theta)) uy = (-u_theta*np.sin(theta)*g22 + u_radial*np.cos(theta)) grid_ux = griddata(points, ux, (grid_x, grid_y), method='linear', fill_value=1e-30) grid_uy = griddata(points, uy, (grid_x, grid_y), method='linear', fill_value=1e-30) try: DELTA_x = grid_ux[0,0]*TIME_INTERVAL DELTA_y = grid_uy[0,0]*TIME_INTERVAL #DELTA_x = grid_ux[get_coordinate(coord_y), get_coordinate(coord_x)]*TIME_INTERVAL #DELTA_y = grid_uy[get_coordinate(coord_y), get_coordinate(coord_x)]*TIME_INTERVAL coord_x = coord_x + DELTA_x coord_y = coord_y + DELTA_y if (np.logical_or(coord_x > xmax, coord_y > ymax)): print('The particle have escaped the bounded region. Terminating loop at index ' + str(fileindex)) break elif (np.logical_and(coord_x < 2, coord_y < 2)): print('The particle have been engulfed by the black hole. Terminating loop at index ' + str(fileindex)) break COORDINATES = np.append(COORDINATES, np.array([[coord_x, coord_y, np.sqrt(grid_ux[0,0]**(2.) + grid_uy[0,0]**(2.))]]), axis=0) except IndexError: np.save(savefilename, COORDINATES) print('IndexError: The particle have escaped the bounded region. Terminating loop at index ' + str(fileindex)) break print('Index:', fileindex, COORDINATES) #u_radial_START = grid_u_radial() #plt.contourf(grid_x, grid_y, grid_u_radial) # #s = plt.streamplot(grid_x, grid_y, grid_ux, grid_uy, # density=1, color='#BBBBBB', # arrowsize=2.5, arrowstyle='->', # minlength=.1) # #plt.gca().set_aspect('equal') #plt.show() np.save(savefilename, COORDINATES)
if index < 1000: index_str = str('0' + str(index)) else: index_str = str(index) #File operations filename = 'simext' + index_str filein = open('/Volumes/Seagate/4Anton/d300a0/dt100/simavg0100-0189_rel.dat','rb') #filein = open('/Volumes/Seagate/4Anton/d300a0/dt10/'+filename+'.dat','rb') #datafile_all_forces = '/Users/Anton/Desktop/Data/Binaries/RAD-600-d300a0/' + index_str + '.npy' #datafile_all_forces = '/Users/Anton/Desktop/Data/Binaries/RAD-avg-d300a0/average.npy' #fileout = '/Users/Anton/Desktop/Data/Image/' + filename + '.png' datain = np.loadtxt(filein,input_dtype.dtype_rel_radiation()) filein.close() #Convert coordinates from spherical to cartesian (physical units) r = datain['r'] theta = datain['theta'] phi = datain['phi'] rho = datain['rho'] points = (r*np.sin(theta),r*np.cos(theta)) grid_rho = griddata(points, rho, (grid_x, grid_y), method='linear') ## Metric determinant ## a=0 g_sch = np.power(r, 2)*np.sin(theta)
#lc = LineCollection(segments, linewidths=3, colors=clist[i], linestyles=ls[i]) lc = LineCollection(segments, linewidths=5, cmap='bwr', norm=norm) lc.set_array(mCOORD[:,2]) plt.gca().add_collection(lc) plt.arrow(mCOORD[-1,0],mCOORD[-1,1],mCOORD[-1,0]-mCOORD[-5,0],mCOORD[-1,1]-mCOORD[-5,1], width=0.5, head_width=3, overhang=0.3,length_includes_head=False, color='black', zorder=10) #string_number = r'\#' + str(i+1) #plt.annotate(s=string_number, xy=(mCOORD[0,0]+3*(-1)**(i+1),mCOORD[0,1]-7) ) plt.gca().set_aspect('equal') plt.xlabel('$x/r_g$') #plt.ylabel('$z/r_g$') filein = open('/Volumes/Seagate/4Anton/hd300a0/dt100/simavg0070-0134_rel.dat','rb') datain = np.loadtxt(filein,dt.dtype_rel_hydro()) filein.close() grid_y, grid_x = np.mgrid[ypmin:ypmax:200j,xpmin:xpmax:200j] points = (datain['r']*np.sin(datain['theta']),datain['r']*np.cos(datain['theta'])) grid_rho = griddata(points, datain['rho'], (grid_x, grid_y), method='linear') ax = fig.gca() cax, args = matplotlib.colorbar.make_axes(ax, anchor=(-1.4, 0.95), shrink=0.55) colorbar = plt.colorbar(lc, ticks=np.linspace(0,0.5,11), cax=cax) plt.sca(ax) c = plt.contourf(grid_x, grid_y, np.log10(grid_rho*6.17e15), extend='both', levels=np.linspace(-8,-4,61), cmap='gray', alpha=0.99) colorbar2 = plt.colorbar(c, ticks=np.linspace(-8,-4,5).astype(int))
if index < 1000: index_str = str('0' + str(index)) else: index_str = str(index) #File operations filename = 'sim' + index_str filein = open('/Users/Anton/Desktop/Data/d300a0/simavg0100-0189_rel.dat','rb') #filein = open('/Volumes/Seagate/4Anton/d300a0/' + filename + '.dat','rb') #datafile_all_forces = '/Users/Anton/Desktop/Data/Binaries/RAD-600-d300a0/' + index_str + '.npy' #datafile_all_forces = '/Users/Anton/Desktop/Data/Binaries/RAD-avg-d300a0/average.npy' #fileout = '/Users/Anton/Desktop/Data/Image/' + filename + '.png' datain = np.loadtxt(filein,input_dtype.dtype_rel_hydro()) filein.close() #Convert coordinates from spherical to cartesian (physical units) r = datain['r'] theta = datain['theta'] phi = datain['phi'] rho = datain['rho'] points = (r*np.sin(theta),r*np.cos(theta)) grid_rho = griddata(points, rho, (grid_x, grid_y), method='linear') ## Metric determinant ## a=0 g_sch = np.power(r, 2)*np.sin(theta)
gSTART_y = 90 gSTART_INDEX = 1000 savefilename = '/Users/Anton/Desktop/Data/Binaries/hydro_particle_'+str(gSTART_INDEX)+ '_' + str(gSTART_x)+'_'+str(gSTART_y)+'_dt10.npy' #File operations #filebase = '/Users/Anton/Desktop/Data/hd300a0/hd300a0_rel/' filebase = '/Volumes/Seagate/4Anton/hd300a0/dt10/' filenumber_start = gSTART_INDEX filenumber = filenumber_start try: filein = open(filebase + 'sim' + str(filenumber) + '.dat','rb') #filein = open(filebase + 'simavg0070-0134_rel.dat', 'rb') datain = np.loadtxt(filein,dt.dtype_rel_hydro()) filein.close() except (IndexError, IOError): print('Wrong input dtype. Terminating.') COORDINATES = np.load(savefilename) step = len(COORDINATES)/4. ###### --------------------------------------------------------------------------------- ######## #coord_index = np.floor(np.array([0.64*step, 2.4*step])) #(15,20) 1.45*step, #coord_index = np.floor(np.array([0.48*step, 2.4*step])) #(10,20) 1.45*step #coord_index = np.floor(np.array([0.57*step, 1.7*step, 2.8*step])) #(69,80) coord_index = np.floor(np.array([0.05*step, 1.*step, 2.3*step])) #(60,90) ###### --------------------------------------------------------------------------------- ######## LINE_INDEX = np.empty((len(coord_index), 1)) for i in range(0,len(coord_index)):
def iterate(): # grid_y, grid_x = np.mgrid[ymin:ymax:100j,xmin:xmax:100j] starting_index = gSTART_INDEX last_index = gLAST_INDEX TIME_INTERVAL = 10.0 START_x = get_coordinate(gSTART_x) START_y = get_coordinate(gSTART_y) COORDINATES = np.array([[START_x, START_y, 0]]) coord_x = START_x coord_y = START_y for fileindex in range(starting_index, last_index): # for loop_index in range(0,400): # fileindex = starting_index - loop_index grid_y, grid_x = np.mgrid[coord_y:coord_y:1j, coord_x:coord_x:1j] if fileindex < 1000: filename = "0" + str(fileindex) else: filename = str(fileindex) # filein = open('/Users/Anton/Desktop/Data/hd300a0/hd300a0_rel/sim' + filename + '.dat') filein = open("/Volumes/Seagate/4Anton/hd300a0/dt10/sim" + filename + ".dat") datain = np.loadtxt(filein, input_dtype.dtype_rel_hydro()) filein.close() a = 0 r = datain["r"] # *1477000. theta = datain["theta"] u_radial = datain["u_1"] / datain["u_t"] # *3.e10 u_theta = datain["u_2"] / datain["u_t"] # *3.e10 g11 = np.sqrt( (np.divide((np.power(r, 2) + a ** (2.0) * np.power(np.cos(theta), 2)), (np.power(r, 2) - 2.0 * r + a ** 2))) ) g22 = np.sqrt((np.power(r, 2) + a ** (2.0) * np.power(np.cos(theta), 2))) points = (r * np.sin(theta), r * np.cos(theta)) ux = u_theta * np.cos(theta) * g22 + u_radial * np.sin(theta) uy = -u_theta * np.sin(theta) * g22 + u_radial * np.cos(theta) grid_ux = griddata(points, ux, (grid_x, grid_y), method="linear", fill_value=1e-30) grid_uy = griddata(points, uy, (grid_x, grid_y), method="linear", fill_value=1e-30) try: DELTA_x = grid_ux[0, 0] * TIME_INTERVAL DELTA_y = grid_uy[0, 0] * TIME_INTERVAL # DELTA_x = grid_ux[get_coordinate(coord_y), get_coordinate(coord_x)]*TIME_INTERVAL # DELTA_y = grid_uy[get_coordinate(coord_y), get_coordinate(coord_x)]*TIME_INTERVAL coord_x = coord_x + DELTA_x coord_y = coord_y + DELTA_y if np.logical_or(coord_x > xmax, coord_y > ymax): print("The particle have escaped the bounded region. Terminating loop at index " + str(fileindex)) break elif np.logical_and(coord_x < 2, coord_y < 2): print("The particle have been engulfed by the black hole. Terminating loop at index " + str(fileindex)) break COORDINATES = np.append( COORDINATES, np.array([[coord_x, coord_y, np.sqrt(grid_ux[0, 0] ** (2.0) + grid_uy[0, 0] ** (2.0))]]), axis=0, ) except IndexError: np.save(savefilename, COORDINATES) print( "IndexError: The particle have escaped the bounded region. Terminating loop at index " + str(fileindex) ) break print("Index:", fileindex, COORDINATES) np.save(savefilename, COORDINATES)
+ "_" + str(gSTART_y) + "_dt10.npy" ) # File operations # filebase = '/Users/Anton/Desktop/Data/d300a0/hd300a0_rel/' filebase = "/Volumes/Seagate/4Anton/d300a0/dt10/" filenumber_start = gSTART_INDEX filenumber = filenumber_start try: filein = open(filebase + "simext" + str(filenumber) + ".dat", "rb") # filein = open(filebase + 'simavg0070-0134_rel.dat', 'rb') datain = np.loadtxt(filein, dt.dtype_rel_radiation()) filein.close() except (IndexError, IOError): print("Wrong input dtype. Terminating.") COORDINATES = np.load(savefilename) step = len(COORDINATES) / 4.0 ###### --------------------------------------------------------------------------------- ######## coord_index = np.floor(np.array([2.40 * step, 2.95 * step, 3.65 * step])) # (10,10) 1.45*step, # coord_index = np.floor(np.array([3.56*step ,3.81*step])) #(10,20) 1.45*step # coord_index = np.floor(np.array([1.9*step, 2.9*step, 3.5*step])) #(60,90) # coord_index = np.floor(np.array([0.5*step, 1.7*step, 2.55*step])) #(69,70) ###### --------------------------------------------------------------------------------- ######## LINE_INDEX = np.empty((len(coord_index), 1)) for i in range(0, len(coord_index)):