// This is Single EEX beamline for 50 MeV 6D gaussian beam for //transport into the UCLA Plasma Source //----------------------------------------- // _____ ______ _______ _ _ _____ // / ____| ____|__ __| | | | __ \ // | (___ | |__ | | | | | | |__) | // \___ \| __| | | | | | | ___/ // ____) | |____ | | | |__| | | // |_____/|______| |_| \____/|_| // //------------------------------------------ OPTION, ECHO=FALSE; OPTION, INFO=FALSE; //psdump and statdump are in time steps OPTION, PSDUMPFREQ = 100; //How often 6d info is dumped to .h5 OPTION, STATDUMPFREQ = 100; //How often beam stats dumped to .stat. OPTION, REPARTFREQ = 1; //How often particle repartition happens between cores //OPTION, BOUNDPDESTROYFQ=10; //Delete lost particles, if any OPTION, AUTOPHASE=4; //Always leave this on,unless doing a phase scan Option, VERSION=20000; Title, string="AWA Drive Beamline"; //------------------------------------------------------------------------ //Global Parameters REAL field_maps = 2.0; //Either 2D or 3D REAL rf_freq = 1300.0; //RF frequency. (MHz) REAL beam_bunch_charge = 4e-9; //Charge of bunch. (C) REAL beam_current = rf_freq*beam_bunch_charge*1e6; //Initial energy Calc REAL Edes = 0.045; REAL gamma = (Edes+EMASS)/EMASS; REAL beta = sqrt(1-(1/gamma^2)); REAL P0 = gamma*beta*EMASS; value , {Edes, P0}; //-------------------------------------------------------------------------------- // Quads // L: effective length (m) // K1: quad strength (T/m). // ELEMEDGE: Start of quad (m). REAL in2m = 0.0254; REAL RADIABEAM_QUAD_LEN = 0.1; REAL RADIABEAM_QUAD_SEP = 0.15; REAL BLUE_QUAD_LEN = 0.1; REAL BLUE_QUAD_SEP = 0.1; //------------------------------------- //TRANSFER LINE QUAD POSITIONS - //DRIFT - 3 QUADS - DRIFT - 2 QUADS - DRIFT -DIPOLE REAL TRANSFER_START = 0.0; REAL DIPOLE_TO_TRIPLET = 12.0*in2m; REAL TRIPLET_TO_TRIPLET = 35.0*in2m; REAL MATCHING_QUAD_SEP = 9.0*in2m; REAL T1 = TRANSFER_START + DIPOLE_TO_TRIPLET; REAL T2 = T1 + RADIABEAM_QUAD_LEN + MATCHING_QUAD_SEP; REAL T3 = T2 + RADIABEAM_QUAD_LEN + MATCHING_QUAD_SEP; REAL T4 = T3 + RADIABEAM_QUAD_LEN + MATCHING_QUAD_SEP + TRIPLET_TO_TRIPLET; REAL T5 = T4 + RADIABEAM_QUAD_LEN + MATCHING_QUAD_SEP; REAL T6 = T5 + RADIABEAM_QUAD_LEN + MATCHING_QUAD_SEP; REAL TDC_DIP_DRIFT = 48*in2m; //Plasma beamline quad positions - //DRIFT - 3 QUADS - DRIFT - PLASMA SOURCE - DRIFT - //DOUBLET - DRIFT -DOUBLET - TDC - SPECTROMETER REAL WINDOW_TO_TRIPLET = _WINTOTRIP_ * in2m; REAL EEX_END_TO_PLASMA_START = 160.0 * in2m; REAL FF_QUAD_SEP = _FFSEP_ * in2m; REAL FINAL_FOCUS_LENGTH = _FFLEN_ * in2m; REAL P1 = EEX_END_TO_PLASMA_START + WINDOW_TO_TRIPLET; REAL P2 = P1 + RADIABEAM_QUAD_LEN + FF_QUAD_SEP; REAL P3 = P2 + RADIABEAM_QUAD_LEN + FF_QUAD_SEP; REAL PLASMA_LENGTH = 0.0895; REAL PLASMA_MIDDLE = P3 + RADIABEAM_QUAD_LEN + FINAL_FOCUS_LENGTH; REAL PLASMA_START = PLASMA_MIDDLE - PLASMA_LENGTH / 2.0; REAL PLASMA_END = PLASMA_MIDDLE + PLASMA_LENGTH / 2.0; /*WINDOW PARAMETERS AL_MATERIAL: PARTICLEMATTERINTERACTION, TYPE="DEGRADER", MATERIAL="Aluminum"; BE_MATERIAL: PARTICLEMATTERINTERACTION, TYPE="DEGRADER", MATERIAL="Berilium"; REAL WIN1_LOC = DIP5_POS + DIP_LEN / 2.0 + 0.762; W1: DEGRADER, L=100.0E-6,ELEMEDGE = WIN1_LOC, PARTICLEMATTERINTERACTION=AL_MATERIAL; */ //PLASMA SOURCE TUBE PLASMA: ECOLLIMATOR, ELEMEDGE = PLASMA_START, L = PLASMA_LENGTH, XSIZE = 0.0055, YSIZE = 0.0055, OUTFN = "PLASMA.h5"; Q5: QUADRUPOLE,L = RADIABEAM_QUAD_LEN, ELEMEDGE = T1, K1 = _KQ5_; Q6: QUADRUPOLE,L = RADIABEAM_QUAD_LEN, ELEMEDGE = T2, K1 = _KQ6_; Q7: QUADRUPOLE,L = RADIABEAM_QUAD_LEN, ELEMEDGE = T3, K1 = _KQ7_; Q8: QUADRUPOLE,L = RADIABEAM_QUAD_LEN, ELEMEDGE = T4, K1 = _KQ8_; Q9: QUADRUPOLE,L = RADIABEAM_QUAD_LEN, ELEMEDGE = T5, K1 = _KQ9_; Q10: QUADRUPOLE,L= RADIABEAM_QUAD_LEN, ELEMEDGE = T6, K1 = _KQ10_; Q11: QUADRUPOLE,L= RADIABEAM_QUAD_LEN, ELEMEDGE = P1, K1 = _KQ11_; Q12: QUADRUPOLE,L= RADIABEAM_QUAD_LEN, ELEMEDGE = P2, K1 = _KQ12_; Q13: QUADRUPOLE,L= RADIABEAM_QUAD_LEN, ELEMEDGE = P3, K1 = _KQ13_; /* Q14: QUADRUPOLE,L= RADIABEAM_QUAD_LEN, ELEMEDGE = P4, K1 = _KQ14_; Q15: QUADRUPOLE,L= RADIABEAM_QUAD_LEN, ELEMEDGE = P5, K1 = _KQ15_; Q16: QUADRUPOLE,L= RADIABEAM_QUAD_LEN, ELEMEDGE = P6, K1 = _KQ16_; */ //----------------------------------------------------------------------------- // YAG Screens YAG7: Monitor, L=0.01, ELEMEDGE = 15.4264, OUTFN = "DYAG1.h5"; YAG8: Monitor, L=0.01, ELEMEDGE = 21, OUTFN = "DYAG2.h5"; YAG9: Monitor, L=0.01, ELEMEDGE = 24.5955, OUTFN = "DYAG3.h5"; YAG10: Monitor, L=0.01, ELEMEDGE = 31, OUTFN = "DYAG4.h5"; //--------------------------------------------------------------------------------------- // // ______ _ _ _ _ ____ ______ __ __ _ _____ _ _ ______ // | ____| | | | | | | | _ \| ____| /\ | \/ | | |_ _| \ | | ____| // | |__ | | | | | | | | |_) | |__ / \ | \ / | | | | | \| | |__ // | __| | | | | | | | | _ <| __| / /\ \ | |\/| | | | | | . ` | __| // | | | |__| | |____| |____ | |_) | |____ / ____ \| | | | |____ _| |_| |\ | |____ // |_| \____/|______|______| |____/|______/_/ \_\_| |_|______|_____|_| \_|______| // // //--------------------------------------------------------------------------------------- //EEX SECTION EXP: Line = (Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13); //DRIVE SECTION //Complete accelerator FULL: Line = (EXP); //-------------------------------------------------------------------------------------- // // _____ _____ _____ _______ _____ _____ ____ _ _ _______ _____ ____ _ _ // | __ \_ _|/ ____|__ __| __ \|_ _| _ \| | | |__ __|_ _/ __ \| \ | | // | | | || | | (___ | | | |__) | | | | |_) | | | | | | | || | | | \| | // | | | || | \___ \ | | | _ / | | | _ <| | | | | | | || | | | . ` | // | |__| || |_ ____) | | | | | \ \ _| |_| |_) | |__| | | | _| || |__| | |\ | // |_____/_____|_____/ |_| |_| \_\_____|____/ \____/ |_| |_____\____/|_| \_| // // //--------------------------------------------------------------------------- //----------------------------------------------------------------------------- /* Dist: DISTRIBUTION, TYPE = GAUSS, SIGMAX = 0.0146, SIGMAY = 0.0033, SIGMAZ = 0.00133, SIGMAPX = 0.32784, SIGMAPY = 0.05227, SIGMAPZ = 0.154079, CORRX = 0.999387, CORRY = -0.993859, CORRZ = 0.715179, CUTOFFLONG = 3, NBIN = 100, WRITETOFILE = True; */ Dist: DISTRIBUTION, TYPE = FROMFILE, FNAME = "EEX_OUT.dist", EMITTED = FALSE, WRITETOFILE = TRUE; //------------------------------------------------------------------------------------- // Define Field solvers // The mesh sizes should be a factor of 2 for most efficient space charge (SC) calculation. FS_SC: Fieldsolver, FSTYPE = FFT, MX = 8, MY = 8, MT = 16, PARFFTX = false, PARFFTY = false, PARFFTT = true, BCFFTX = open, BCFFTY = open, BCFFTT = open, BBOXINCR = 1, GREENSF = INTEGRATED; //------------------------------------------------------------------------------------- // Beam Definition BEAM1: BEAM, PARTICLE = ELECTRON, pc = P0, NPART = _NP_, BFREQ = rf_freq, BCURRENT = beam_current, CHARGE = -1; // Run beamline // Run to some specified distance. // LINE: The combination of elements defined earlier. // BEAM: Beam defined earlier, tells what kind of particles and charge. // MAXSTEPS: Sets a boundary on the number of simulation steps. This should be a large number. // DT: time steps you want to use through out the beam line. // ZSTOP: tells opal when to switch between time steps, and what Z location to run to. //TIME STEP SETTINGS REAL GUN_DT = 1.0e-13; REAL LINAC_DT = 1.0e-11; REAL QUAD_DT = 1.0e-12; REAL DIPOLE_DT = 1.0e-12; REAL TDC_DT = 1.0e-12; REAL DRIFT_DT = 1.0e-11; //FRINGE LENGTH REAL F = 0.4; VECTOR TSTEP = {QUAD_DT, DRIFT_DT, QUAD_DT}; VECTOR ZSTEP = {T6, P1, PLASMA_END}; TRACK, LINE = FULL, BEAM = BEAM1, MAXSTEPS = 40000, DT = TSTEP, ZSTOP = ZSTEP; RUN, METHOD = "PARALLEL-T", BEAM = BEAM1, FIELDSOLVER = FS_SC, DISTRIBUTION = Dist; ENDTRACK; Stop; /**/ Quit;