for line in f: line = line.rstrip() output = [] folder_metadata = parse_folder_for_metadata(line) cosy_output = CosyOutput() cosy_output.injectFile(os.path.join(line, "2-Cosy/screen.txt")) row_numbers = cosy_output.getRowNumbersWithKeyValuePair("time", 120e-12, comparison="gt") if row_numbers == []: continue step = int(cosy_output.returnTableValue("step number", row_numbers[0])) number_of_macroparticles = int(cosy_output.returnTableValue("number macroparticles", row_numbers[0])) number_of_electrons = number_of_macroparticles * args.number_of_electrons_per_macroparticle files = [] for filename in os.listdir(os.path.join(line, "2-Cosy")): if filename.startswith(str(step) + "-x"): files.append(os.path.join(line, "2-Cosy/" + filename)) simulation_output = SimulationOutput() for path in files: simulation_output.injectFile(path) simulation_output.convertCoordinatesToBetterUnits(mass_of_macroparticle) simulation_output = simulation_output.boostCoordinates("z") ex = simulation_output.calcEmittance("x") / args.number_of_electrons_per_macroparticle ez = simulation_output.calcEmittance("z") / args.number_of_electrons_per_macroparticle if ex == 0 or ez == 0: continue output.append(str(number_of_electrons)) output.append(str(ex)) output.append(str(ez)) output.append(folder_metadata["applied_field"]) print ",".join(output)
cosy_output.injectFile(os.path.join(args.directory,"screen.txt")) for row in cosy_output.rows: step_number = row.getCellWithFieldname("step number").getValue() if step_number % 10 == 0: output = [] output.append(str(row.getCellWithFieldname("z").getValue())) simulation_output = SimulationOutput() for filename in os.listdir(args.directory): if filename.startswith(str(step_number)+"-x-"): pathname = os.path.join(args.directory,filename) if os.path.isfile(pathname): simulation_output.injectFile(pathname) simulation_output.convertCoordinatesToBetterUnits(mass_of_macroparticle) simulation_output = simulation_output.boostCoordinates("z") eta_z = simulation_output.calcEta("z") ez = simulation_output.calcEmittance("z") position = simulation_output.returnAllColumnValues("z") momentum = simulation_output.returnAllColumnValues("p_z") mean_position = numpy.mean(position) mean_momentum = numpy.mean(momentum) mean_positionxmomentum = numpy.mean([x*p for x,p in zip(position,momentum)]) mean_position_squared = numpy.mean([x*x for x in position]) mean_momentum_squared = numpy.mean([p*p for p in momentum]) var_position = numpy.var(position,ddof=0) var_momentum = numpy.var(momentum,ddof=0) eta_z_2 = ez**2/var_position #lorentz_gamma, e_spread = simulation_output.calcEnergySpread("z") gamma_z = simulation_output.calcGamma("z") #momentum = simulation_output.returnAllColumnValues("p_z") output.append(str(numpy.sqrt(eta_z)*args.number_of_electrons_per_macroparticle))#to move it into the m of macroparticle instead of me output.append(str(numpy.sqrt(eta_z_2)*args.number_of_electrons_per_macroparticle))#to move it into the m of macroparticle instead of me