def iterate(): starting_index = gSTART_INDEX last_index = gLAST_INDEX TIME_INTERVAL = 10. 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): 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/d300a0/dt10/simext' + filename + '.dat') datain = np.loadtxt(filein,input_dtype.dtype_rel_radiation()) filein.close() a = 0 r = datain['r'] theta = datain['theta'] u_radial = datain['u_1']/datain['u_t'] u_theta = datain['u_2']/datain['u_t'] 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, 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) np.save(savebase + savefilename + '.npy', 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)
+ "_" + 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)):