102
PyECLOUD G. Iadarola, G. Rumolo ECLOUD meeting 28/11/2011 Thanks to: R. De Maria, K. Li

PyECLOUD

  • Upload
    shae

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

PyECLOUD. G. Iadarola , G. Rumolo. Thanks to: R. De Maria, K. Li. ECLOUD meeting 28/11/2011. Outline. Why a new code for electron cloud build-up simulation? From ECLOUD to PyECLOUD Management of macroparticle size and number Back-tracking algorithm for the impacting electrons - PowerPoint PPT Presentation

Citation preview

Page 1: PyECLOUD

PyECLOUDG. Iadarola, G. Rumolo

ECLOUD meeting 28/11/2011

Thanks to:R. De Maria, K. Li

Page 2: PyECLOUD

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

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

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

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

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

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

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

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

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

Ingredients for e-cloud build-up simulation

1. Seed electrons generation (gas ionization, photoemission)

Page 12: PyECLOUD

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Heat load benchmarking of last 25ns scrubbing run (24 October)

PyECLOUD at work

Page 91: PyECLOUD

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

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

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

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

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

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

Electron wave

LHC dipole @ 7TeV PS drift @ 26GeV

PyECLOUD at work

Page 98: PyECLOUD

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

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

Thanks for your attention!

Page 101: PyECLOUD

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

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