140 likes | 322 Views
PTC- pyOrbit code development. H. Bartosik Acknowledgements: G. Rumolo , R. Wasef Space charge meeting June 5 th 2014. Introduction. Status of SC simulations at CERN PSB PTC-ORBIT with “2.5D” module excellent agreement with measurements (see presentations of Vincenzo and Elena)
E N D
PTC-pyOrbit code development H. Bartosik Acknowledgements: G. Rumolo, R. Wasef Space charge meeting June 5th 2014
Introduction • Status of SC simulations at CERN • PSB • PTC-ORBIT with “2.5D” module excellent agreement with measurements (see presentations of Vincenzo and Elena) • According to Elena, could be of interest to use the Orbit Teapot tracker, but need double RF (presently being developed by Sabrina Appel at GSI) • PS • PTC-ORBIT simulations with “2.5D” module is very time consuming • MADX frozen SC excellent agreement with measurements (see presentations of Raymond) • IMPACT as alternative for self consistent simulations (but not on CERN cluster) • SPS • PTC-ORBIT and PTC-pyOrbit simulations with “2.5D” module gives unphysical results for certain simulation parameters under investigation; it seems that a 2D slice-by-slice space charge solver could help • Looked into frozen space charge simulations with MAD need to include dispersion for initialization (presently being implemented by Valery Kapin) • Ideas for code development in PTC-pyOrbit • Frozen space charge • 2D slice-by-slice space charge PIC solver SC meeting June 5th 2014
Implementing frozen SC in PTC-pyOrbit - motivations • Frozen SC with PTC • Machine model and lattice description • Double RF • Direct comparison with self consistent (PIC) simulations • Using the same PTC lattice • Using the same simulation scripts and analysis tools • Full parallelization • efficient use of our 48 core machines on SC cluster • All the tools of pyOrbit can be used • Eventually could allow for closed orbit errors • Correct placement frozen SC kicks around closed orbit feasible • Updating the SC parameters (emittance, bunch length, intensity) on the Python level very flexible SC meeting June 5th 2014
Implementing frozen SC in PTC-pyOrbit- status • First version implemented (C++ & Python) in private version of PTC-pyOrbit • Based on Bassetti Erskine formula for electric field calculation • Installation of SC nodes like for the PIC solvers • Uses lattice functions provided by PTC • Takes into account the dispersion for beam size calculation • Space charge kick is weighted by longitudinal density with options: • Coasting beam • Gaussian longitudinal profile • Benchmarking and testing presently ongoing • Speed comparison for the case of the PS lattice • MADX frozen SC (4 cores): 50k turns / day (Raymond) • PTC-PyOrbit (48 nodes on SC cluster): 270k turns / day (with PTC!) Great speed in PTC-pyOrbit given that the CPUs on our SC cluster are rather slow … SC meeting June 5th 2014
Tune spread comparison frozen SC vs. PIC • Tune spread from the new frozen SC module consistent with PTC-pyOrbit PIC simulations (“2.5D”) • Example for the SPS including Gaussian line density profile SC meeting June 5th 2014
Tune spread comparison frozen SC vs. PIC • Tune spread from the new frozen SC module consistent with PTC-pyOrbit PIC simulations (“2.5D”) • Example for the PS including Gaussian line density profile in frozen SC • Many thanks to Raymond for providing the PS lattice and particle distribution files! Small difference comes from the fact that actual longitudinal line density of particle distribution is parabolic … SC meeting June 5th 2014
Implementing frozen SC in PTC-pyOrbit - outlook • Implement also • Possibility to update bunch parameters • Longitudinal parabolic distribution • Arbitrary line density profile (using interpolation) • Field calculation around non-zero closed orbit (requires PTC modifications) • Possibility to use with Teapot lattice of pyOrbit • Benchmark with results from MADX frozen SC in the PS for evolution of transverse profiles ongoing (together with Raymond) • Benchmarking test of Giuliano • Simulations for the SPS • Integration into official pyOrbit version once we are confident about the results SC meeting June 5th 2014
Implementing slice-by-slice 2D SC in PTC-pyOrbit • Motivation • Correct modeling of SC in case of intra-bunch motion and/or beam size variation along the bunch (e.g. due to momentum spread variation along the bunch) • Hope to suppress unphysical coherent dipole oscillations obtained for some machine parameters of the SPS (it seems that the intra-bunch motion due to the head-tail phase shift for non-zero chromaticity is the origin of the problem when using the Orbit “2.5D” model) • Status • First version implemented (C++) • Using the 2D FFT solver of pyOrbit for individual longitudinal slices along a 3D grid also boundary conditions can be used • Tests with SPS lattice are presently ongoing SC meeting June 5th 2014
Tune spread comparison 2.5D vs. 2D slice-by-sclice • Tune spread from the new 2D slice-by-slice SC module consistent with PTC-pyOrbit2.5D simulations for SPS • Slightly smaller tune spread in slice-by-slice as beam size variation along the bunch properly taken into account SC meeting June 5th 2014
Other ideas • Indirect space charge • Can be treated by including boundary conditions in the PIC solver • Limited to simple geometries • Computationally heavy if beam size is small compared to vacuum chamber (like LHC beams in PS and SPS) • Could also be treated like wake field (like in HEADTAIL) • Single kick in the machine • Also the full impedance model could be included • Wake field implementation in pyOrbit should not be too difficult • Use the Teapot tracker of Orbit for faster simulations • Symplectic thin lens integrator, faster than PTC • Needs to be fully tested with CERN machines (first trials with SPS lattice look promising: tunes exactly identical to MADX, chromaticity not too far off, …) • Misalignments and magnet errors? SC meeting June 5th 2014
Summary • Development of frozen space charge in PTC-PyOrbit • Interesting to use FSC with PTC (PS, SPS, also PSB?) with affordable computation time on our SC cluster • First implementation done tune spread agrees with PIC simulation • Further benchmarking in the pipeline • Extension to longitudinal profiles other than constant or Gaussian soon • Advantage of different SC simulation approaches (frozen and PIC) with the same tool! • Development of 2D slice-by-slice PIC solver in PTC-PyOrbit • Needed for the SPS (also to properly take into account the wall effects in other machines) • First implementation is done – benchmarking and tests with SPS lattice ongoing • Tune spread for SPS case as expected • Other ideas • Implementing the indirect space charge through wake fields looks feasible • Maybe using the Teapot tracker could be interesting in some cases • Anything else ? SC meeting June 5th 2014