PyECLOUD
description
Transcript of PyECLOUD
![Page 1: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/1.jpg)
PyECLOUDG. Iadarola, G. Rumolo
ECLOUD meeting 28/11/2011
Thanks to:R. De Maria, K. Li
![Page 2: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/2.jpg)
Outline
• Why a new code for electron cloud build-up simulation?
• From ECLOUD to PyECLOUD
o Management of macroparticle size and number
o Back-tracking algorithm for the impacting electrons
o Beam field calculation
o Space charge field
• Preliminary convergence study
• PyECLOUD at work
• Conclusion and future work
![Page 3: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/3.jpg)
Outline
• Why a new code for electron cloud build-up simulation?
• From ECLOUD to PyECLOUD
o Management of macroparticle size and number
o Back-tracking algorithm for the impacting electrons
o Beam field calculation
o Space charge field
• Preliminary convergence study
• PyECLOUD at work
• Conclusion and future work
![Page 4: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/4.jpg)
Why a new code for electron cloud build-up simulation?
At the very beginning our idea was to reorganize ECLOUD in order to make it
easier the development of new features, to identify and correct of present and
future bugs, to access to a larger amount of information about our simulations.
![Page 5: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/5.jpg)
Why a new code for electron cloud build-up simulation?
This task has revealed to be quite hard since:
• The code is scarcely modular: the
frequent use of global variables makes
very difficult to extract subroutines and
building self consistent modules for
development and testing purposes
• In Fortran 77 is very difficult to write
readable and flexible code (even a proper
indentation is a non-trivial task)
At the very beginning our idea was to reorganize ECLOUD in order to make it
easier the development of new features, to identify and correct of present and
future bugs, to access to a larger amount of information about our simulations.
![Page 6: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/6.jpg)
Why a new code for electron cloud build-up simulation?
At the very beginning our idea was to reorganize ECLOUD in order to make it
easier the development of new features, to identify and correct of present and
future bugs, to access to a larger amount of information about our simulations.
We have retained that the effort of writing a fully reorganized code, in a newer
and more powerful language, should be compensated by a significantly increased
efficiency in future development and debugging.
![Page 7: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/7.jpg)
Python
• Allows incremental and interactive development of the code, encouraging an
highly modular structure. Reading and understanding the code, writing
extensions, exploring different solutions is much faster (orders of magnitude!!)
with respect to compiled languages (especially looking at FORTRAN 77)
• Open source libraries (like NumPy and SciPy) make it a very powerful tool for
scientific computation (comparable to a specialized commercial tool like MATLAB)
• Computationally intensive parts can be written in C/C++ or FORTRAN and easily
integrated in a Python code (successfully employed in our distribution
computation/interpolation routines – x6 overall speed up)
It is a powerful general purpose interpreted language:
![Page 8: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/8.jpg)
Outline
• Why a new code for electron cloud build-up simulation?
• From ECLOUD to PyECLOUD
o Management of macroparticle size and number
o Back-tracking algorithm for the impacting electrons
o Beam field calculation
o Space charge field
• Preliminary convergence study
• PyECLOUD at work
• Conclusion and future work
![Page 9: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/9.jpg)
From ECLOUD to PyECLOUD
Writing PyECLOUD has required a detailed analysis of ECLOUD algorithm and
implementation, looking also at the related long experience in electron cloud simulations.
Attention has been devoted to the individuation of ECLOUD limitations, in particular in
terms of its convergence properties with respect to the electron distribution in bending
magnets (how many stripes…)
![Page 10: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/10.jpg)
From ECLOUD to PyECLOUD
Writing PyECLOUD has required a detailed analysis of ECLOUD algorithm and
implementation, looking also at the related long experience in electron cloud simulations.
Attention has been devoted to the individuation of ECLOUD limitations, in particular in
terms of its convergence properties with respect to the electron distribution in bending
magnets (how many stripes…)
As a result, several features have been significantly modified in order to improve the
code’s performances in terms:
• Accuracy
• Efficiency
• Flexibility
![Page 11: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/11.jpg)
Ingredients for e-cloud build-up simulation
1. Seed electrons generation (gas ionization, photoemission)
![Page 12: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/12.jpg)
Ingredients for e-cloud build-up simulation
1. Seed electrons generation (gas ionization, photoemission) 2. Force exerted by the beam on e-
![Page 13: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/13.jpg)
Ingredients for e-cloud build-up simulation
1. Seed electrons generation (gas ionization, photoemission) 2. Force exerted by the beam on e-
3. Force exerted by the e- on each other(space charge)
![Page 14: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/14.jpg)
Ingredients for e-cloud build-up simulation
1. Seed electrons generation (gas ionization, photoemission) 2. Force exerted by the beam on e-
3. Force exerted by the e- on each other(space charge)
4. Equations of motion(also in presence of an external magnetic field)
![Page 15: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/15.jpg)
Ingredients for e-cloud build-up simulation
1. Seed electrons generation (gas ionization, photoemission) 2. Force exerted by the beam on e-
3. Force exerted by the e- on each other(space charge)
4. Equations of motion(also in presence of an external magnetic field)
5. Secondary emission
![Page 16: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/16.jpg)
The most relevant improvements introduced in PyECLOUD are:
• A different management of macroparticle size and number
• A more accurate back-tracking algorithm for the impacting electrons
• A more efficient computation of the electric field generated by the
travelling proton beam
• A more general ad accurate method for the evaluation of the electrons
space-charge field
From ECLOUD to PyECLOUD
![Page 17: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/17.jpg)
Outline
• Why a new code for electron cloud build-up simulation?
• From ECLOUD to PyECLOUD
o Management of macroparticle size and number
o Back-tracking algorithm for the impacting electrons
o Beam field calculation
o Space charge field
• Preliminary convergence study
• PyECLOUD at work
• Conclusion and future work
![Page 18: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/18.jpg)
Macroparticles
The simulation of the dynamics of the entire number of electrons (≈1010 per meter)
is extremely heavy (practically unaffordable)
Since the dynamics equation of the electron depends only on the q/m ratio of the
electron a macroparticle (MP) method can be used:
The MP size can be seen as the “resolution” our electron gas simulation
![Page 19: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/19.jpg)
Macroparticles
0 1 2 3 4 5 6 7 8 9x 10
-6
104
106
108
time [s]Num
ber o
f e- p
er u
nit l
engt
h [m
-1]
0 1 2 3 4 5 6 7 8 9x 10
-6
0
2
4
6
8x 10
11
time [s]Accu
m. n
umbe
r of s
crub
b. e
- [m-1
]
In an electron-cloud buildup, due to the multipacting process, the electron
number spreads several orders of magnitude:
It is practically impossible to choose a MP size that is suitable for the entire
simulation (allowing a satisfactory description of the phenomenon and a
computationally affordable number of MPs)
![Page 20: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/20.jpg)
ECLOUD – MP number control: the CLEAN routine
In ECLOUD the clean routine is called once per bunch passage and when the number
of MPs goes beyond 2*105
![Page 21: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/21.jpg)
ECLOUD – MP number control: the CLEAN routine
In ECLOUD the clean routine is called once per bunch passage and when the number
of MPs goes beyond 2*105
• If the number of MPs Nmp is >5*104 it randomly eliminates MPs in order to
obtain Nmp ≈ 5*104.
![Page 22: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/22.jpg)
ECLOUD – MP number control: the CLEAN routine
In ECLOUD the clean routine is called once per bunch passage and when the number
of MPs goes beyond 2*105
• If the number of MPs Nmp is >5*104 it randomly eliminates MPs in order to
obtain Nmp ≈ 5*104.
![Page 23: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/23.jpg)
ECLOUD – MP number control: the CLEAN routine
In ECLOUD the clean routine is called once per bunch passage and when the number
of MPs goes beyond 2*105
• If the number of MPs Nmp is >5*104 it randomly eliminates MPs in order to
obtain Nmp ≈ 5*104.
• Then the remaining MPs’ charge is rescaled in order to obtain the same
total charge present in the chamber before the clean
![Page 24: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/24.jpg)
ECLOUD – MP number control: the CLEAN routine
In ECLOUD the clean routine is called once per bunch passage and when the number
of MPs goes beyond 2*105
• If the number of MPs Nmp is >5*104 it randomly eliminates MPs in order to
obtain Nmp ≈ 5*104.
• Then the remaining MPs’ charge is rescaled in order to obtain the same
total charge present in the chamber before the clean
This approach guarantees the charge conservation but does not preserve
the total energy or the velocity distribution of the electrons.
![Page 25: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/25.jpg)
In a typical ECLOUD simulation (SPS MBB SEY=1.5):
• The number and the size of MPs produced by the seed generation
mechanism is kept constant during the entire simulation.
As consequence, at saturation, we have a certain number of MPs
carrying practically no charge (≈ 5% of the MPs carries ≈1ppm of the
total charge)
ECLOUD – MP number control: other observations
![Page 26: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/26.jpg)
In a typical ECLOUD simulation (SPS MBB SEY=1.5):
• The number and the size of MPs produced by the seed generation
mechanism is kept constant during the entire simulation.
As consequence, at saturation, we have a certain number of MPs
carrying practically no charge (≈ 5% of the MPs carries ≈1ppm of the
total charge)
• At saturation, there is a consistent number of MPs which are trapped
near the chamber wall and undergo several low energy impact becoming
smaller and smaller.
In ECLOUD there is no mechanism which selectively eliminates them.
ECLOUD – MP number control: other observations
![Page 27: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/27.jpg)
In PyECLOUD we try to treat in a unified way all issues related to MP size and number,
namely:
PyECLOUD – MP number control: a global approach
![Page 28: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/28.jpg)
In PyECLOUD we try to treat in a unified way all issues related to MP size and number,
namely:
1) Given the number of seed e- to be generated in a certain
time-step how many MP do we generate? (i.e. how do we
choose their size?)
PyECLOUD – MP number control: a global approach
![Page 29: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/29.jpg)
In PyECLOUD we try to treat in a unified way all issues related to MP size and number,
namely:
1) Given the number of seed e- to be generated in a certain
time-step how many MP do we generate? (i.e. how do we
choose their size?)
2) When a MP hits the wall when it is sufficient to change the
size of the current MP according to the Secondary Emission
Yield and when true secondary MPs must be created?
PyECLOUD – MP number control: a global approach
![Page 30: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/30.jpg)
In PyECLOUD we try to treat in a unified way all issues related to MP size and number,
namely:
1) Given the number of seed e- to be generated in a certain
time-step how many MP do we generate? (i.e. how do we
choose their size?)
2) When a MP hits the wall when it is sufficient to change the
size of the current MP according to the Secondary Emission
Yield and when true secondary MPs must be created?
3) When a MP (after some low energy impacts) is considered so
small to be eliminated without affecting the simulation?
PyECLOUD – MP number control: a global approach
x
![Page 31: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/31.jpg)
In PyECLOUD we try to treat in a unified way all issues related to MP size and number,
namely:
1) Given the number of seed e- to be generated in a certain
time-step how many MP do we generate? (i.e. how do we
choose their size?)
2) When a MP hits the wall when it is sufficient to change the
size of the current MP according to the Secondary Emission
Yield and when true secondary MPs must be created?
3) When a MP (after some low energy impacts) is considered so
small to be eliminated without affecting the simulation?
4) What to do when, because of multipacting process, the
number of MPs becomes too large for a reasonable
computational burden ?
PyECLOUD – MP number control: a global approach
x
![Page 32: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/32.jpg)
We control all this issues through the single parameter Nref which is a target average size
of the MPs (i.e. our resolution) and is adaptively changed during the simulation:
PyECLOUD – MP number control: a global approach
![Page 33: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/33.jpg)
We control all this issues through the single parameter Nref which is a target average size
of the MPs (i.e. our resolution) and is adaptively changed during the simulation:
1) Given the number of seed e- to be generated , the
generated MPs have size Nref and their number is
chosen as a consequence
PyECLOUD – MP number control: a global approach
![Page 34: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/34.jpg)
We control all this issues through the single parameter Nref which is a target average size
of the MPs (i.e. our resolution) and is adaptively changed during the simulation:
1) Given the number of seed e- to be generated , the
generated MPs have size Nref and their number is
chosen as a consequence
2) When a MP hits the wall, additional true secondary
MPs are emitted if the total emitted charge is >1.5Nref
and, in that case, their number is chosen so that their
size is as close as possible to Nref
PyECLOUD – MP number control: a global approach
![Page 35: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/35.jpg)
We control all this issues through the single parameter Nref which is a target average size
of the MPs (i.e. our resolution) and is adaptively changed during the simulation:
1) Given the number of seed e- to be generated , the
generated MPs have size Nref and their number is
chosen as a consequence
2) When a MP hits the wall, additional true secondary
MPs are emitted if the total emitted charge is >1.5Nref
and, in that case, their number is chosen so that their
size is as close as possible to Nref
3) At each bunch passage a clean function is called that
eliminates all the MPs with charge <10-4Nref
x
PyECLOUD – MP number control: a global approach
![Page 36: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/36.jpg)
4) When the number of MPs becomes larger than a certain threshold (≈105)
that means that the computational burden is becoming too high, we change
MP target size (Nref ) and perform a regeneration of the MPs system:
PyECLOUD – MP number control: a global approach
![Page 37: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/37.jpg)
4) When the number of MPs becomes larger than a certain threshold (≈105)
that means that the computational burden is becoming too high, we change
MP target size (Nref ) and perform a regeneration of the MPs system:
a. Each macroparticle is assigned to a cell of a uniform grid in the 5-D space
(x,y,vx,vy,vz) obtaining an approximation of the phase space distribution
PyECLOUD – MP number control: a global approach
![Page 38: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/38.jpg)
4) When the number of MPs becomes larger than a certain threshold (≈105)
that means that the computational burden is becoming too high, we change
MP target size (Nref ) and perform a regeneration of the MPs system:
a. Each macroparticle is assigned to a cell of a uniform grid in the 5-D space
(x,y,vx,vy,vz) obtaining an approximation of the phase space distribution
PyECLOUD – MP number control: a global approach
x [m]
y [m
]
-0.02 -0.01 0 0.01 0.02
-0.015
-0.01
-0.005
0
0.005
0.01
0.015
x [m]
v x [m/s
]
-0.02 -0.015 -0.01 -0.005 0 0.005 0.01 0.015 0.02
-4
-3
-2
-1
0
1
2
3
4
x 106
![Page 39: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/39.jpg)
y [m]
v y [m/s
]
-0.015 -0.01 -0.005 0 0.005 0.01 0.015-4
-3
-2
-1
0
1
2
3
4x 10
6
vx [m/s]
v z [m/s
]
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2x 10
6
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2x 10
6
4) When the number of MPs becomes larger than a certain threshold (≈105)
that means that the computational burden is becoming too high, we change
MP target size (Nref ) and perform a regeneration of the MPs system:
a. Each macroparticle is assigned to a cell of a uniform grid in the 5-D space
(x,y,vx,vy,vz) obtaining an approximation of the phase space distribution
PyECLOUD – MP number control: a global approach
![Page 40: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/40.jpg)
4) When the number of MPs becomes larger than a certain threshold (≈105)
that means that the computational burden is becoming too high, we change
MP target size (Nref ) and perform a regeneration of the MPs system:
a. Each macroparticle is assigned to a cell of a uniform grid in the 5-D space
(x,y,vx,vy,vz) obtaining an approximation of the phase space distribution
b. The new target MP size is chosen so that:
PyECLOUD – MP regeneration
![Page 41: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/41.jpg)
4) When the number of MPs becomes larger than a certain threshold (≈105)
that means that the computational burden is becoming too high, we change
MP target size (Nref ) and perform a regeneration of the MPs system:
a. Each macroparticle is assigned to a cell of a uniform grid in the 5-D space
(x,y,vx,vy,vz) obtaining an approximation of the phase space distribution
b. The new target MP size is chosen so that:
c. A new MPs set, having the new reference size, is generated according to
the computed distribution.
PyECLOUD – MP regeneration
![Page 42: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/42.jpg)
4) When the number of MPs becomes larger than a certain threshold (≈105)
that means that the computational burden is becoming too high, we change
MP target size (Nref ) and perform a regeneration of the MPs system:
a. Each macroparticle is assigned to a cell of a uniform grid in the 5-D space
(x,y,vx,vy,vz) obtaining an approximation of the phase space distribution
b. The new target MP size is chosen so that:
c. A new MPs set, having the new reference size, is generated according to
the computed distribution.
PyECLOUD – MP regeneration
All moments related to position and velocity (e.g. energy distrib. , charge distrib.)
are preserved. The error on total charge and total energy does not go beyond 1-2%
![Page 43: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/43.jpg)
Outline
• Why a new code for electron cloud build-up simulation?
• From ECLOUD to PyECLOUD
o Management of macroparticle size and number
o Back-tracking algorithm for the impacting electrons
o Beam field calculation
o Space charge field
• Preliminary convergence study
• PyECLOUD at work
• Conclusion and future work
![Page 44: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/44.jpg)
Impacting electrons backtracking - ECLOUD
Electrons impacting on the chamber’s wall are detected when they are found outside
the chamber and must be backtracked on the wall.
ECLOUD applies a simple rescaling of the electron’s position:
![Page 45: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/45.jpg)
Impacting electrons backtracking - ECLOUD
Electrons impacting on the chamber’s wall are detected when they are found outside
the chamber and must be backtracked on the wall.
ECLOUD applies a simple rescaling of the electron’s position:
![Page 46: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/46.jpg)
Impacting electrons backtracking - ECLOUD
Electrons impacting on the chamber’s wall are detected when they are found outside
the chamber and must be backtracked on the wall.
ECLOUD applies a simple rescaling of the electron’s position:
This forces to choose very small time-steps in order to avoid perturbations on the
distribution of the electron cloud.
![Page 47: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/47.jpg)
Impacting electrons backtracking - PyECLOUD
Electrons impacting on the chamber’s wall are detected when they are found outside the
chamber and must be backtracked on the wall.
PyECLOUD always stores the MPs’ position at previous timestep in order to compute the
crossing point between the chamber’s wall and the electron’s trajectory :
![Page 48: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/48.jpg)
Impacting electrons backtracking - PyECLOUD
Electrons impacting on the chamber’s wall are detected when they are found outside the
chamber and must be backtracked on the wall.
PyECLOUD always stores the MPs’ position at previous timestep in order to compute the
crossing point between the chamber’s wall and the electron’s trajectory :
![Page 49: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/49.jpg)
Impacting electrons backtracking - PyECLOUD
Electrons impacting on the chamber’s wall are detected when they are found outside the
chamber and must be backtracked on the wall.
PyECLOUD always stores the MPs’ position at previous timestep in order to compute the
crossing point between the chamber’s wall and the electron’s trajectory :
![Page 50: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/50.jpg)
Impacting electrons backtracking - PyECLOUD
Electrons impacting on the chamber’s wall are detected when they are found outside the
chamber and must be backtracked on the wall.
PyECLOUD always stores the MPs’ position at previous timestep in order to compute the
crossing point between the chamber’s wall and the electron’s trajectory :
Together with the improved space-charge computation, this simple trick has a
great impact on the convergence properties with respect to the timestep (as we
will see in a few slides).
![Page 51: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/51.jpg)
Outline
• Why a new code for electron cloud build-up simulation?
• From ECLOUD to PyECLOUD
o Management of macroparticle size and number
o Back-tracking algorithm for the impacting electrons
o Beam field calculation
o Space charge field
• Preliminary convergence study
• PyECLOUD at work
• Conclusion and future work
![Page 52: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/52.jpg)
ECLOUD - Beam field computation
In ECLOUD the electric field of the beam is computed at each time-step at each
electron location.
x
y
σy
σx
E0 b
ax
y Eimag. ch.
Beam fieldcalculated in free space Image charge contributions
(effect of the perfectly conducting chamber)
![Page 53: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/53.jpg)
In ECLOUD the electric field of the beam is computed at each time-step at each
electron location.
x
y
σy
σx
E0 b
ax
y Eimag. ch.
Beam fieldcalculated in free space Image charge contributions
(effect of the perfectly conducting chamber)
2
20 0
2( , ) ( , )x yi zE x y iE x y e w wS S S
2 22 x yS y x
x yx i y
x y
x yi
Based on the Bassetti-Erskine formula: Images of a point charge:2
. . . .1
4 ( 1) sinh(2 )( , ) ( , )cosh(2 ) sinh( )
cnn
i c x i c yn c
e nqE x y iE x yg n q
where: where:2 2g a b logc
a ba b
With: a b
ECLOUD - Beam field computation
![Page 54: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/54.jpg)
In ECLOUD the electric field of the beam is computed at each time-step at each
electron location.
x
y
σy
σx
E0 b
ax
y Eimag. ch.
Beam fieldcalculated in free space Image charge contributions
(effect of the perfectly conducting chamber)
This task takes a great part of the computation time (70% with a quite coarse
time-step)
ECLOUD - Beam field computation
![Page 55: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/55.jpg)
We can exploit the information available about the beam structure to make
its field evaluation much more efficient.
The beam is modeled as a travelling charge distribution having the form:
PyECLOUD - Beam field computation
![Page 56: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/56.jpg)
We can exploit the information available about the beam structure to make
its field evaluation much more efficient.
The beam is modeled as a travelling charge distribution having the form:
0 1 2 3 4 5 6 7 8x 10
-8
0.5
1
1.5
2x 10
11
t [s]
(-c
t) [m
-1]
PyECLOUD - Beam field computation
![Page 57: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/57.jpg)
We can exploit the information available about the beam structure to make
its field evaluation much more efficient.
The beam is modeled as a travelling charge distribution having the form:
x [mm]
y [m
m]
Charge density [m-1]
-60 -40 -20 0 20 40 60
-20-10
01020
0
1
2
x 104
0 1 2 3 4 5 6 7 8x 10
-8
0.5
1
1.5
2x 10
11
t [s]
(-c
t) [m
-1]
We assumeis the longitudinal charge
density of the beam
PyECLOUD - Beam field computation
![Page 58: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/58.jpg)
If we considered a beam charge that is perfectly concentrated in s and has the same
shape of our beam in the transverse plane:
We obtain that the field has the following form:
PyECLOUD - Beam field computation
![Page 59: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/59.jpg)
If we considered a beam charge that is perfectly concentrated in s and has the same
shape of our beam in the transverse plane:
We obtain that the field has the following form:
It is easy to prove that that, in case of a generic longitudinal distribution, the
field can be written as:
PyECLOUD - Beam field computation
![Page 60: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/60.jpg)
x [mm]y
[mm
]
E log(normalizad magnitude) - with image charges
-60 -40 -20 0 20 40 60
-20-10
01020
-4
-3
-2
-1
This suggests to exploit the following procedure:
• The field map for the relevant chamber geometry and beam shape is pre-
computed on a suitable rectangular grid and loaded from file in the
initialization stage
PyECLOUD - Beam field computation
![Page 61: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/61.jpg)
This suggests to exploit the following procedure:
• The field map for the relevant chamber geometry and beam shape is pre-
computed on a suitable rectangular grid and loaded from file in the
initialization stage
• When the field at a certain location is needed a linear (4 points)
interpolation algorithm is employed
PyECLOUD - Beam field computation
![Page 62: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/62.jpg)
This suggests to exploit the following procedure:
• The field map for the relevant chamber geometry and beam shape is pre-
computed on a suitable rectangular grid and loaded from file in the
initialization stage
• When the field at a certain location is needed a linear (4 points)
interpolation algorithm is employed
• The field is rescaled by the relevant beam longitudinal density
PyECLOUD - Beam field computation
![Page 63: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/63.jpg)
This approach gives some advantages:
• Improvement of computation efficiency
• Improvement of the field accuracy (since the field is evaluated “offline”
we have no time constraints on the field computation)
• We are not restricted to elliptical chambers anymore
PyECLOUD - Beam field computation
![Page 64: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/64.jpg)
Outline
• Why a new code for electron cloud build-up simulation?
• From ECLOUD to PyECLOUD
o Management of macroparticle size and number
o Back-tracking algorithm for the impacting electrons
o Beam field calculation
o Space charge field
• Preliminary convergence study
• PyECLOUD at work
• Conclusion and future work
![Page 65: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/65.jpg)
Electron space charge - ECLOUD
In ECLOUD, the electric field due to the electrons in the chamber is calculated as
follows:
• The charge of each electron is attributed to the nearest node of a
predefined uniform rectangular grid
![Page 66: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/66.jpg)
Electron space charge - ECLOUD
In ECLOUD, the electric field due to the electrons in the chamber is calculated as
follows:
• The charge of each electron is attributed to the nearest node of a
predefined uniform rectangular grid
• The electric field of this grid of point charges is calculated on the points
of the same grid by adding to their free-space field the image terms
related to the elliptical perfectly conducting boundary
![Page 67: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/67.jpg)
Electron space charge - ECLOUD
In ECLOUD, the electric field due to the electrons in the chamber is calculated as
follows:
• The charge of each electron is attributed to the nearest node of a
predefined uniform rectangular grid
• The electric field of this grid of point charges is calculated on the points
of the same grid by adding to their free-space field the image terms
related to the elliptical perfectly conducting boundary
• The electric field at the location of each electron is evaluated employing
a linear (4-point) interpolation formula
![Page 68: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/68.jpg)
Electron space charge - ECLOUD
This approach presents some drawbacks:
• The evaluation of the field of grid points that are very close to the
chamber’s surface require a large amount of image terms (≈200)
• To avoid pathological situations, the grid points that are closer to the
camber’s wall are not used but this can affect the accuracy on the space-
charge field near the wall
• This kind of approach is limited to elliptical geometries
![Page 69: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/69.jpg)
Electron space charge - PyECLOUD
In PyECLOUD we have implemented a 2D Particle in Cell algorithm.
• The electrostatic potential in the chamber is solution of the Poisson equation
with homogeneous boundary conditions:
with on the boundary
Electrostatic potential Electron charge density
![Page 70: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/70.jpg)
Electron space charge - PyECLOUD
In PyECLOUD we have implemented a 2D Particle in Cell algorithm.
• The electrostatic potential in the chamber is solution of the Poisson equation
with homogeneous boundary conditions:
with on the boundary
• The electric field can be retrieved from the potential by the following formula
Electrostatic potential Electron charge density
This problem can be handled numerically using the following strategy…
![Page 71: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/71.jpg)
Electron space charge - PyECLOUD
In PyECLOUD we have implemented a 2D Particle in Cell algorithm.
1) The electron charge density distribution ρ(x,y) is computed on a uniform
square grid by distributing the charge of each electron to the nearest 4
nodes:
![Page 72: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/72.jpg)
Electron space charge - PyECLOUD
In PyECLOUD we have implemented a 2D Particle in Cell algorithm.
2) The finite difference method is employed to solve the Poisson equation:
![Page 73: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/73.jpg)
Electron space charge - PyECLOUD
In PyECLOUD we have implemented a 2D Particle in Cell algorithm.
2) The finite difference method is employed to solve the Poisson equation:
Sparse matrix depending only on the geometry (can be computed in the initialization stage and reused for all the space-charge evaluations).
![Page 74: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/74.jpg)
Electron space charge - PyECLOUD
In PyECLOUD we have implemented a 2D Particle in Cell algorithm.
3) The electric field on the same grid is obtained using central difference
equations:
![Page 75: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/75.jpg)
Electron space charge - PyECLOUD
In PyECLOUD we have implemented a 2D Particle in Cell algorithm.
4) The electric field at each electron locations is computed using a linear (4-
points) interpolation:
![Page 76: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/76.jpg)
Electron space charge - PyECLOUD
x [m]
y [m
]
(x,y) [C/m2]
-0.06 -0.04 -0.02 0 0.02 0.04 0.06
-0.02-0.01
00.010.02
-2.5
-2
-1.5
-1
-0.5
0x 10
-5
x [m]
y [m
]
(x,y) [V]
-0.06 -0.04 -0.02 0 0.02 0.04 0.06
-0.02-0.01
00.010.02
-200
-150
-100
-50
0
x [m]
y [m
]
|E(x,y)| [V/m]
-0.06 -0.04 -0.02 0 0.02 0.04 0.06
-0.02-0.01
00.010.02
0
5000
10000
15000
![Page 77: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/77.jpg)
Electron space charge - PyECLOUD
In PyECLOUD we have implemented a 2D Particle in Cell algorithm.
This eliminates the convergence problems related to the image-
charge approach and also eliminates the limitation to geometries for
which image the charge expansion exists.
![Page 78: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/78.jpg)
Outline
• Why a new code for electron cloud build-up simulation?
• From ECLOUD to PyECLOUD
o Management of macroparticle size and number
o back-tracking algorithm for the impacting electrons
o Beam field calculation
o Space charge field
• Preliminary convergence study
• PyECLOUD at work
• Conclusion and future work
![Page 79: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/79.jpg)
Convergence study
The most relevant parameters of the considered test-case are summarized below:
• Geometry of an MBB bending magnet with its average beta functions (<βx> =
33.85m <βy> = 71.87m)
• Energy E=26GeV assuming SEYmax = 1.5 and r.m.s. bunch length σz=0.2m bunch
spacing bs=25ns, normalized emittance εn=3μm
• Filling pattern:
To have an idea of the impact of the new features introduced in PyECLOUD, we
have studied the convergence properties of both the codes as a function of the
time-step.
72 8
25ns buckets
72 8
![Page 80: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/80.jpg)
Convergence study - Number of electrons
0 1 2 3 4 5x 10
-6
0
0.5
1
1.5
2
2.5
3x 10
9
t [s]
Num
ber o
f e- p
er u
nit l
engt
h [m
-1]
0.2ns0.1ns0.05ns0.025ns0.012ns
ECLOUD
![Page 81: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/81.jpg)
Convergence study - Number of electrons
0 0.5 1 1.5 2 2.5 3 3.5 4x 10
-6
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
x 109
t [s]
Num
ber o
f e- p
er u
nit l
engt
h [m
-1]
0.2ns0.1ns0.05ns0.025ns0.012ns
0 1 2 3 4 5x 10
-6
0
0.5
1
1.5
2
2.5
3x 10
9
t [s]
Num
ber o
f e- p
er u
nit l
engt
h [m
-1]
0.2ns0.1ns0.05ns0.025ns0.012ns
ECLOUD PyECLOUD
![Page 82: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/82.jpg)
20 40 60 80 100 120 140 1600
0.5
1
1.5
2
2.5
3
3.5
4
4.5
Bunch passage
Ener
gy d
epos
ition
[W/m
]
0.2ns0.1ns0.05ns0.025ns0.012ns
20 40 60 80 100 120 140 160 180
0.5
1
1.5
2
2.5
3
3.5
Bunch passage
Ener
gy d
epos
ition
[W/m
]
0.2ns0.1ns0.05ns0.025ns
Convergence study – Heat load
ECLOUD PyECLOUD
![Page 83: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/83.jpg)
0 0.5 1 1.5 2 2.5 3 3.5x 10
-6
0
2
4
6
8
10
12
14
16
18x 10
12
t [s]
e- den
sity
at t
he c
ente
r of t
he c
ham
ber [
m-3
]
0.2ns0.1ns0.05ns0.025ns0.012ns
0.5 1 1.5 2 2.5 3 3.5 4 4.5x 10
-6
0.5
1
1.5
2
2.5
3
x 1013
t [s]
e- den
sity
at t
he c
ente
r of t
he c
ham
ber [
m-3
]
0.2ns0.1ns0.05ns0.025ns
Convergence study – Center electron density
Zoom here
ECLOUD PyECLOUD
![Page 84: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/84.jpg)
2.96 2.97 2.98 2.99 3 3.01 3.02 3.03x 10
-6
0
1
2
3
4
5
6
7
8x 10
12
t [s]
e- den
sity
at t
he c
ente
r of t
he c
ham
ber [
m-3
]
0.2ns0.1ns0.05ns0.025ns0.012ns
2.96 2.97 2.98 2.99 3 3.01 3.02x 10
-6
0
1
2
3
4
5
6
7
8
x 1012
t [s]
e- den
sity
at t
he c
ente
r of t
he c
ham
ber [
m-3
]
0.2ns0.1ns0.05ns0.025ns
Convergence study – Center electron density
ECLOUD PyECLOUD
![Page 85: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/85.jpg)
0 0.5 1 1.5 2 2.5 3 3.5 4x 10
-6
0
0.5
1
1.5
2
2.5x 10
11
t [s]
Acc
umul
ated
num
ber o
f scr
ubbi
ng e
-
0.2ns0.1ns0.05ns0.025ns0.012ns
0.5 1 1.5 2 2.5 3 3.5 4 4.5x 10
-6
0
5
10
15x 10
10
t [s]
Acc
umul
ated
num
ber o
f scr
ubbi
ng e
-
0.2ns0.1ns0.05ns0.025ns
Convergence study – Scrubbing electrons
ECLOUD PyECLOUD
![Page 86: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/86.jpg)
0 0.01 0.02 0.03 0.04 0.05 0.0610
-10
10-5
100
x [m]
Av.
e- c
harg
e hi
tting
the
wal
l [A
m-2
]
0.2ns0.1ns0.05ns0.025ns0.012ns
0 0.01 0.02 0.03 0.04 0.05 0.0610
-10
10-5
100
x [m]
Av.
e- c
harg
e hi
tting
the
wal
l [A
m-2
]
0.2ns0.1ns0.05ns0.025ns
Convergence study – Electrons ditribution
ECLOUD PyECLOUD
![Page 87: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/87.jpg)
0
2000
4000
6000
8000
10000
12000
14000
16000
0.200ns 0.100ns 0.050ns 0.025ns 0.012ns
ECLOUD
PYECLOUD
Timestep ECLOUD PYECLOUD
0.2 ns 29 min 12 min
0.1 ns 1h 27 min 13 min
0.05 ns 1h 45 min 24 min
0.025ns 3h 7 min 40 min
0.012ns 4h 15 min 1h 6 min
Processing time
![Page 88: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/88.jpg)
Outline
• Why a new code for electron cloud build-up simulation?
• From ECLOUD to PyECLOUD
o Management of macroparticle size and number
o back-tracking algorithm for the impacting electrons
o Beam field calculation
o Space charge field
• Preliminary convergence study
• PyECLOUD at work
• Conclusion and future work
![Page 89: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/89.jpg)
PyECLOUD at work
0 0.5 1 1.5 2 2.5 3 3.5x 10
-5
102
104
106
108
1010
t [s]
Num
ber o
f e- p
er u
nit l
engt
h [m
-1]
Nominal 25ns3 batches - 10% coast.3 batches - 5% coast.
SPS: More than one turn – 5h computing time
For details see present. at SPSU metting 13 October 2011
![Page 90: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/90.jpg)
Heat load benchmarking of last 25ns scrubbing run (24 October)
PyECLOUD at work
![Page 91: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/91.jpg)
Heat load benchmarking of last 25ns scrubbing run (24 October)
0 0.5 1 1.5 2 2.5 3 3.5 4x 10
-5
0
1
2
3x 10
9
time [s]e- p
er u
nit l
engt
h [m
-1]
0 0.5 1 1.5 2 2.5 3 3.5 4x 10
-5
0
2
4x 10
11
time [s]
(z
) [pr
ot. m
-1]
Simulations with measured bunch intensity (FBCT)
and bunch length (BQM) – 9h computing time
PyECLOUD at work
![Page 92: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/92.jpg)
Heat load benchmarking of last 25ns scrubbing run (24 October)
0 0.5 1 1.5 2 2.5 3 3.5 4x 10
-5
0
1
2
3x 10
9
time [s]e- p
er u
nit l
engt
h [m
-1]
0 0.5 1 1.5 2 2.5 3 3.5 4x 10
-5
0
2
4x 10
11
time [s]
(z
) [pr
ot. m
-1]
Simulations with measured bunch intensity (FBCT)
and bunch length (BQM) – 9h computing time
![Page 93: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/93.jpg)
Heat load benchmarking of last 25ns scrubbing run (24 October)
2.9 3 3.1 3.2 3.3 3.4x 10
-5
0
1
2x 10
9
time [s]e- p
er u
nit l
engt
h [m
-1]
2.9 3 3.1 3.2 3.3 3.4x 10
-5
0
1
2
3x 10
11
time [s]
(z
) [pr
ot. m
-1]
Simulations with measured bunch intensity (FBCT)
and bunch length (BQM) – 9h computing time
![Page 94: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/94.jpg)
Heat load benchmarking of last 25ns scrubbing run (24 October)
2.9 3 3.1 3.2 3.3 3.4x 10
-5
0
1
2x 10
9
time [s]e- p
er u
nit l
engt
h [m
-1]
2.9 3 3.1 3.2 3.3 3.4x 10
-5
0
1
2
3x 10
11
time [s]
(z
) [pr
ot. m
-1]
Simulations with measured bunch intensity (FBCT)
and bunch length (BQM) – 9h computing time
![Page 95: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/95.jpg)
3 3.002 3.004 3.006 3.008 3.01 3.012 3.014 3.016x 10
-5
0
1
2x 10
9
time [s]e- p
er u
nit l
engt
h [m
-1]
3 3.002 3.004 3.006 3.008 3.01 3.012 3.014 3.016x 10
-5
0
1
2
3x 10
11
time [s]
(z
) [pr
ot. m
-1]
Heat load benchmarking of last 25ns scrubbing run (24 October)
Simulations with measured bunch intensity (FBCT)
and bunch length (BQM) – 9h computing time
PyECLOUD at work
![Page 96: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/96.jpg)
For details see present. at SPSU metting 13 October 2011
0 500 1000 1500 2000 25000
1
2
3
4
5
6
7x 10
-3
Energy [eV]
S n(E)
ppb 4.0e+010ppb 6.0e+010ppb 8.0e+010ppb 1.0e+011ppb 1.2e+011ppb 1.4e+011ppb 1.6e+011ppb 1.8e+011ppb 2.0e+011ppb 2.2e+011ppb 2.4e+011ppb 2.6e+011ppb 2.8e+011ppb 3.0e+011
0.5 1 1.5 2 2.5 3x 10
11
0.1
0.12
0.14
0.16
0.18
0.2
0.22
n
Beam intensity [ppb]
Build
-up
slop
e
@ bunch passage 40
PyECLOUD at work
![Page 97: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/97.jpg)
Electron wave
LHC dipole @ 7TeV PS drift @ 26GeV
PyECLOUD at work
![Page 98: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/98.jpg)
Outline
• Why a new code for electron cloud build-up simulation?
• From ECLOUD to PyECLOUD
o Management of macroparticle size and number
o Back-tracking algorithm for the impacting electrons
o Beam field calculation
o Space charge field
• Preliminary convergence study
• PyECLOUD at work
• Conclusion and future work
![Page 99: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/99.jpg)
Conclusion and future developments
• We have implemented an evolution of the ECLOUD code for the simulation of the
electron cloud build-up
• Several improvements have been introduced with a significant impact on
convergence properties and processing time
Future developments of PyECLOUD may include:
• Further convergence studies (LHC top energy)
• Generalization of the particle backtracking algorithm to non elliptical chambers
(e.g. SPS/LHC bending magnets)
• Generalization of the dynamics equations to an arbitrary magnetic field map (e.g.
for the simulation of the electron cloud in quadrupoles or in PS combined function
magnets)
![Page 100: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/100.jpg)
Thanks for your attention!
![Page 101: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/101.jpg)
Slope in the build-up
0 0.5 1 1.5 2 2.5 3x 10
11
0
0.05
0.1
0.15
0.2
0.25
n
Beam intensity [ppb]
0% unif. seed e-
10% unif. seed e-
100% unif. seed e-
0 0.5 1 1.5 2 2.5 3x 10
11
0.5
1
1.5
2
2.5
3
3.5
4
4.5x 10
9
Na n
Beam intensity [ppb]
0% unif. seed e-
10% unif. seed e-
100% unif. seed e-
Number of electrons in “deep” sat.
![Page 102: PyECLOUD](https://reader036.fdocuments.us/reader036/viewer/2022062501/56816739550346895ddbebac/html5/thumbnails/102.jpg)
t=t+Δt
Evaluate the electric field of beam and spacecharge at each e- location
Generate seed e-
Dynamics equations solution for this timestep
Detect impacts and generate secondaries
Ingredients for e-cloud build-up simulation