#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Fri May 18 13:48:50 2018 @author: php17cs """ import numpy as np from function_file import read_in_any_datafiles, velocity_elements, plots_legend #reads in the .dat files from an inputfile list dflist, dname, nlines = read_in_any_datafiles('file.txt') #calculates the velocity (distance travelled/snapshot length dflist = velocity_elements(dflist, dname, nlines) #creates the legend for for plots of single simulations legend = plots_legend(dname) j = 50 velocity = 'PM-velxy' dflist_mean = np.empty(1000) for line in range(1000): dflist_sumlist = [] for n in range(nlines): dflist_sumlist.append( (dflist[n].loc[j].sort_values(velocity)[velocity]).iloc[line]) dflist_mean[line] = (np.mean(dflist_sumlist))
# this code calculates and plots the cumulative PM and 3D velocity for all snaps in all simulations that are read in from an input text file import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib.ticker import AutoMinorLocator from function_file import read_in_any_datafiles, velocity_elements, energy_stars, stars_in_outside_2HMR dflist, dname, nlines = read_in_any_datafiles( 'file_evolved.txt') #this reads in the .dat files from an inputfile list #the functions below are not used for the simulations with stellar evolustion, as issue with Fortran concerning loss of stars in simulations is not yet solved #dflist = energy_stars(dflist,dname,nlines) #this calculates the energy of each star in each snapshot an simulation and adds this in a column #dflist = velocity_elements(dflist,dname,nlines) #this calculates the velocity by using the distance travelled between each snapshot and divides it by snapshot length - this is an alternative to the provided velocities from the simulation #dflist = stars_in_outside_2HMR(dflist,dname,nlines) # this calculates the half-mass radius based on centre of density corrected locations and then adds a column identifying if the stars are inside or outside 2*HMR #%% # This creates the filename for including the intial conditions by using filename[0] filename = [] for fname in dname: # to allow the filename of the simulations to dictate the labels if fname[21] == 'E': if fname[17] == 'X': legendtitle = ( '%s_sim_%s.%s_%s.%s_%spc_E_1000' % (nlines, fname[7], fname[8], fname[22], fname[23], fname[12])) elif fname[17] == '5':