def opt_func3(args): em = [] for i in range(len(args)): H13.__dict__[name_args[i]] = args[i] em.append("") sum_ioniz = 0 sum_pop2 = 0 for i in range(ne - 1): H13.power = energies[i] / (math.sqrt(2 * math.pi) * H13.env_sigma) # H13.power = 3e6 pop, sigma_pop, p_ioniz, sigma_p_ioniz = H13.population() sum_ioniz += p_ioniz sum_pop2 += pop pf.fdata(["", "", H13.power / 1.0e+6] + em + [pop, sigma_pop, p_ioniz, sigma_p_ioniz]) H13.count += 1 pr_args = [] for i in range(len(args)): pr_args.append(print_factor[i] * H13.__dict__[name_args[i]]) pf.fdata( [H13.count, orbit_mpi.MPI_Wtime() - time_start, "aver"] + pr_args + [sum_pop2 / (ne - 1), sigma_pop, sum_ioniz / (ne - 1), sigma_p_ioniz]) pf.fdata([""]) return -sum_ioniz / (ne - 1)
def opt_func1(args): for i in range(len(args)): H13.__dict__[name_args[i]] = args[i] pop, sigma_pop = H13.population() pf.fdata(H13.count,orbit_mpi.MPI_Wtime() - time_start,H13.power/1.0e+6,1.0e+3*H13.rx,1.0e+3*H13.ry,1.0e+3*H13.ax,1.0e+3*H13.ay,pop,sigma_pop) H13.count += 1 return -pop
def opt_func2(args): for i in range(len(args)): H13.__dict__[name_args[i]] = args[i] sum = 0 for i in range(200 - 1): H13.power = energies[i] / (math.sqrt(2 * math.pi) * H13.env_sigma) pop, sigma_pop = H13.population() sum += pop pf.fdata(H13.count, orbit_mpi.MPI_Wtime() - time_start, H13.env_sigma * 1e12, H13.power / 1.0e+6, 1.0e+6 * H13.wx, 1.0e+6 * H13.wy, H13.fx * 100, H13.fy * 100, pop, sigma_pop) # pf.fdata("","",H13.power/1.0e+6,"","","","",pop,sigma_pop) H13.count += 1 # pf.fdata(H13.count,orbit_mpi.MPI_Wtime() - time_start,"aver_0.1-1.0",1.0e+6*H13.wx,1.0e+6*H13.wy,H13.fx*100,H13.fy*100,sum/len(powers)) pf.fdata(H13.count, orbit_mpi.MPI_Wtime() - time_start, H13.env_sigma * 1e12, "aver", 1.0e+6 * H13.wx, 1.0e+6 * H13.wy, H13.fx * 100, H13.fy * 100, sum / 200, sigma_pop) pf.fdata("") return -sum / (200 - 1)
def opt_func1(args): for i in range(len(args)): H13.__dict__[name_args[i]] = args[i] H13.power = pulse_energy / (math.sqrt(2 * math.pi) * H13.env_sigma) pop, sigma_pop = H13.population() pf.fdata(H13.count, orbit_mpi.MPI_Wtime() - time_start, H13.env_sigma * 1e12, H13.power / 1.0e+6, 1.0e+6 * H13.wx, 1.0e+6 * H13.wy, H13.fx * 100, H13.fy * 100, pop, sigma_pop) H13.count += 1 return -pop
def opt_func(args): for i in range(len(args)): H13.__dict__[name_args[i]] = args[i] H13.ay = 0 sum = 0 for N_p in range(len(powers)): H13.power = powers[N_p] pop, sigma_pop = H13.population() sum += pop # pf.fdata("","",H13.power/1.0e+6,"","","","",pop,sigma_pop) H13.count += 1 # pf.fdata(H13.count,orbit_mpi.MPI_Wtime() - time_start,"aver_0.1-1.0",1.0e+6*H13.wx,1.0e+6*H13.wy,H13.fx*100,H13.fy*100,sum/len(powers)) pf.fdata(H13.count,orbit_mpi.MPI_Wtime() - time_start,"aver_0.1-2.0",1.0e+3*H13.rx,1.0e+3*H13.ry,1.0e+3*H13.ax,1.0e+3*H13.ay,sum/len(powers)) return -sum/len(powers)
def opt_func(args): em = [] for i in range(len(args)): H13.__dict__[name_args[i]] = args[i] em.append("") H13.ay = H13.ax H13.ry = H13.rx sum_ioniz = 0 sum_pop2 = 0 for power in powers: H13.power = power # H13.power = 3e6 pop, sigma_pop, p_ioniz, sigma_p_ioniz = H13.population() sum_ioniz += p_ioniz sum_pop2 += pop pf.fdata(["", "", H13.power / 1.0e+6] + em + [pop, sigma_pop, p_ioniz, sigma_p_ioniz]) H13.count += 1 pr_args = [] for i in range(len(args)): pr_args.append(print_factor[i] * H13.__dict__[name_args[i]]) pf.fdata([H13.count, orbit_mpi.MPI_Wtime() - time_start, "aver"] + pr_args + [ sum_pop2 / len(powers), sigma_pop, sum_ioniz / len(powers), sigma_p_ioniz ]) pf.fdata([""]) #print -sum_ioniz/(ne-1) return -sum_pop2 / len(powers)
bunch = Bunch() bunch.charge(0) bunch.mass(0.938256 + 0.000511) for i in range(N_part): (x,px,y,py,z,pz) = partGen.getCoords() #bunch.addParticle(x,px,y,py,-z0,pz) bunch.addParticle(0.,0.,0.,0.,-z0,pGen.getP0()) bunch.dumpBunch("bunch_init.dat") bunch.addPartAttr("Amplitudes",{"size":500}) for i in range(N_part): bunch.partAttrValue("Amplitudes",i,1,1.0) time_start = orbit_mpi.MPI_Wtime() count = 0 for power,wx,fxy in [(power,wx,fxy) for power in range_power for wx in range_wx for fxy in range_fxy]: count = count + 1 bunch_target.deleteAllParticles() bunch.copyBunchTo(bunch_target) la0= 2*math.pi*5.291772108e-11/7.297352570e-3/(Stark.getStarkEnergy(bunch_target.mass(), 0,2,0, 0.,0.,0., Bx,0.,0., 0.,0.,P) -Stark.getStarkEnergy(bunch_target.mass(), 0,0,0, 0.,0.,0., Bx,0.,0., 0.,0.,P))
import sys, math, os, orbit_mpi from laserstripping import * from bunch import * from orbit_mpi import * from orbit_utils import * from ext.las_str.TwoLevelFuncMod import TwoLevelFunc from ext.las_str.SchredingerFuncMod import SchredingerFunc from ext.las_str.SimplexMod import Simplex from ext.las_str.part_generator import BunchGen from ext.las_str.print_mod import printf #from ext.las_str.plot_mod import * from ext.las_str.emittance import Freq_spread time_start = orbit_mpi.MPI_Wtime() rank = orbit_mpi.MPI_Comm_rank(mpi_comm.MPI_COMM_WORLD) size = orbit_mpi.MPI_Comm_size(mpi_comm.MPI_COMM_WORLD) orbit_path = os.environ["ORBIT_ROOT"] #----------------------Beginning of the beam parameters----------------------# b = BunchGen() b.N_part = 100 b.TK = 8.0 # [GeV] b.mass = 0.938256 + 0.000511 # [GeV] b.charge = 0 # [e]
# MPI_CONGRUENT # MPI_SIMILAR # MPI_UNEQUAL # MPI_UNDEFINED # MPI_UNDEFINED_RANK # MPI_SUCCESS # MPI_ANY_SOURCE # MPI_ANY_TAG #------------------------------------------------------ mpi_init = orbit_mpi.MPI_Initialized() cpu = orbit_mpi.MPI_Get_processor_name() rank = orbit_mpi.MPI_Comm_rank(orbit_mpi.mpi_comm.MPI_COMM_WORLD) size = orbit_mpi.MPI_Comm_size(orbit_mpi.mpi_comm.MPI_COMM_WORLD) t = orbit_mpi.MPI_Wtime() tick = orbit_mpi.MPI_Wtick() #---------MPI Constant ----------------------- if (rank == 0): print "init=", mpi_init, " rank=", rank, " size=", size, " name=", cpu, " time=", t, " tick=", tick print "MPI_IDENT=", orbit_mpi.MPI_IDENT print "MPI_CONGRUENT=", orbit_mpi.MPI_CONGRUENT print "MPI_SIMILAR=", orbit_mpi.MPI_SIMILAR print "MPI_UNEQUAL=", orbit_mpi.MPI_UNEQUAL print "MPI_UNDEFINED=", orbit_mpi.MPI_UNDEFINED print "MPI_UNDEFINED_RANK=", orbit_mpi.MPI_UNDEFINED_RANK print "MPI_SUCCESS=", orbit_mpi.MPI_SUCCESS print "MPI_ANY_SOURCE=", orbit_mpi.MPI_ANY_SOURCE print "MPI_ANY_TAG=", orbit_mpi.MPI_ANY_TAG else: