1 of 42

QP Diffusion Random Walk

2 of 42

Previous work modeling superconducting qubit device

3 of 42

Previous work modeling superconducting qubit device

4 of 42

QP Dynamics

Diffusion part

Finite Differencing

8 mm chip w/ 1 um feature resolution

dx, dy = 0.5 um

Stability condition for a finite differencing scheme (Al)

QP scattering characteristic time (Al)

5 of 42

QP Dynamics

Diffusion part

Finite Differencing

8 mm chip w/ 1 um feature resolution

dx, dy = 0.5 um

~256e6 grid points -> 1024e6 operations per time step

~4400 time steps for a typical QP lifetime

Other finite differencing schemes (Crank-Nichelson) don’t have a stability condition, however this only reduces number of time steps

6 of 42

Random walk 1-D - Brownian Motion

Position probability

Position probability after two steps

After k steps by induction

Source : A. F. Ghoniem, F. S. Sherman, Journal of Computational Physics, 61 1 (1985)

7 of 42

Random walk 1-D - Brownian Motion

After k steps by induction

Source : A. F. Ghoniem, F. S. Sherman, Journal of Computational Physics, 61 1 (1985)

8 of 42

Random walk 1-D

Solid lines are finite differencing method of solving diffusion

Histograms are of the 10000 particles undergoing the 1-D random walk

9 of 42

Random walk 1-D

Number preserving boundary conditions are encoded in the random walk with reflection conditions at the boundaries

10 of 42

Random walk 2-D - Number preserving conditions on square boundary

11 of 42

Random walk 2-D - On a general polygon boundary

12 of 42

Random walk 2-D - On a general polygon boundary

13 of 42

Random walk 2-D - On a general polygon boundary

1000 particles - 10 times as long as the left same number of time steps

2 particles

14 of 42

Random walk 2-D - General polygon boundary -> Our GDS features are polygons

Can use GDS files to encode boundary conditions

Showed a grid-less and time step insensitive method for modeling the diffusion equation

Modeling QPs as random walkers means modeling particle specific processes like scattering can be modeled directly with a Monte-Carlo scheme.

15 of 42

Implementation in G4CMP so far …

As of 07/10/2024

16 of 42

Defining the geometry: python script to undo self-intersections of GDS polygon vertices

17 of 42

Defining the geometry: Most holes are defined via self intersections

1

2

3

4

5

6

18 of 42

Defining the geometry: Most holes are defined via self intersections

1

2

3

4

5

10

6

7

8

9

19 of 42

Defining the geometry: Edge case not accounted for in script yet …

1

2

3

4

5

6

7

8

9

10

20 of 42

Defining the geometry: Edge case not accounted for in script yet …

1

2

3

4

5

6

7

8

9

10

Disclaimer:

This script has only be tested for GDS’s drawn with KLayout. Other cad tools may treat holes differently

21 of 42

Implementing the QP RW in G4CMP - What needs to be implemented?

  • QP particle class

  • QPRW transport physics process class

  • Relevant QP-phonon scattering processes

22 of 42

Implementing the QP RW in G4CMP - What needs to be implemented?

  • QP particle class

  • QPRW transport physics process class

  • Relevant QP-phonon scattering processes

23 of 42

QP RW transport physics process

  • Implementation inspired by multiple coulomb scattering in Geant4
    • This implementation has a virtual classes to be inherited by physics/particle-type specific physics processes -> this implementation is general and can easily be applied to many particle/media physics domains (Our implementation doesn’t need to as general -> only a QP in a superconductor domain)
    • Multiple coulomb scattering is an AlongStep process and all other processes in G4CMP are PostStep processes
    • The multiple coulomb scattering class integrates proposes changes to a custom particle change class

Open question: How much of this structure do I emulate?

  • Do I have a custom particle change class?
  • Plan to not have a parent class and only one physics process class for the QPRW

24 of 42

QP RW transport physics process

  • Boundaries need to handle QP classes particles
    • There now needs to be a QP-electrode-like class (isQP-type helper methods in G4CMPUtils) to check the boundary conditions within the G4CMPBoundaryUtils methods so that the methods in this class can be used for the QPs as well as the
  • Propose: Also implement a QP Boundary process that handles reflection, absorption, transport of QP random walkers.

In implementing the boundary conditions should there be a child class of the G4CMPSurfaceProperty class? (Would have additional arguments for handling QP reflection/absorption probabilities)

Or should there be a second constructor for the current G4CMPSurfaceProperties class that allows input of QP reflection/absorption probabilities

25 of 42

QPRW update - as of 01/07/2025

26 of 42

Previous work modeling superconducting qubit device

27 of 42

Previous work modeling superconducting qubit device

28 of 42

QP Dynamics

Diffusion part

Finite Differencing

8 mm chip w/ 1 um feature resolution

dx, dy = 0.5 um

Stability condition for a finite differencing scheme (Al)

QP scattering characteristic time (Al)

29 of 42

QP Dynamics

Diffusion part

Finite Differencing

8 mm chip w/ 1 um feature resolution

dx, dy = 0.5 um

~256e6 grid points -> 1024e6 operations per time step

~4400 time steps for a typical QP lifetime

Other finite differencing schemes (Crank-Nichelson) don’t have a stability condition, however this only reduces number of time steps

30 of 42

Random walk 1-D - Brownian Motion

Position probability

Position probability after two steps

After k steps by induction

Source : A. F. Ghoniem, F. S. Sherman, Journal of Computational Physics, 61 1 (1985)

31 of 42

Random walk 1-D - Brownian Motion

After k steps by induction

Source : A. F. Ghoniem, F. S. Sherman, Journal of Computational Physics, 61 1 (1985)

32 of 42

‘Proof of concept’ implemented in python

1-D diffusion with number preserving boundary conditions

2-D diffusion on a generic polygon boundary

1000 particles - 10 times as long as the left same number of time steps

2 particles

Solid lines are finite differencing method of solving diffusion

Histograms are of the 10000 particles undergoing the 1-D random walk

33 of 42

G4CMP implementation - Diffusive transport

Focusing on just the diffusive transport of part of the physics processes (ignoring boundaries for now …), there are two main classes used to implement the random walk transport

  • G4CMPQPRWTransport
    • Currently implemented as an ContinuousDiscrete process -> it has both an AlongStepDoIt and PostStepDoIt methods (and corresponding GetParticleInteractionLength (GPIL) for each)

  • G4CMPParticleChangeForQPRW
    • Default approach in ‘stepping’ (updating a the position of a particle) a track (or particle) in G4CMP is to use the default particle change class - we want to ignore these physical updates and overwrite them with this class

34 of 42

Geant4 stepping algorithm

  1. Initialize the current step
  2. If the particle has zero KE -> get minimum lifetime from all the AtRest processes
  3. Else:
    1. Find the minimum step length demanded by all active processes (from GPIL methods)
    2. Run the ‘AlongStepDoItProcs’
    3. Update the current track properties according to the AlongStepDoIt methods
    4. Update the ‘safety’
    5. Run the ‘PostStepDoItProcs’
    6. Update the track length
    7. Send G4Step info to Hit/Dig if in sensitive volume …
  • G4CMPParticleChangeForQPRW - step c
  • G4CMPQPRWTransport - steps a-c

35 of 42

QP Transport Process - AlongStepGPIL

Inputs are the particle track, current minimal step (cms)

  1. Check if the track position is on a lattice with superconducting properties-> if not: make the AlongStepDoIt process inactive, else: continue
  2. Sample a gaussian with zero mean the following sigma (both x & y coord.)

time step is given by the smaller between cms/velocity or ½ x 1/(𝚪s)

  • If the track is on a boundary -> assume the current momentum direction corresponds to the desired direction according to set boundary conditions
    1. Get the current surface normal
    2. If momentum direction points to a volume with lattice
      1. Sample an angle (0,π) with magnitude set by step 2
  • Return path length set by step two
    • x and y step length are member data of class

track position

36 of 42

QP Transport Process - AlongStepDoIt

Inputs are the particle track, step

  1. Check if the process is ‘Active’ - if not pass along current track info, else
  2. Update particle velocity, momentum direction, position according to timestep and steplength (from GPIL)
  3. Check distance (‘dist’) to boundary along current direction with RecheckDistanceToCurrentBoundary
    1. If ‘dist’ is > path length - update according to path lengths and directions from GPIL
    2. If ‘dist’ is < path length - path will hit boundary -> update path length to be exactly ‘dist’
    3. If ‘dist’ == path length and the track is on the boundary - cancel this step and do not update track - the particle is likely going into a large volume (i.e. world volume)

37 of 42

QP Transport Process - AlongStepDoIt

Inputs are the particle track, step

  • Check if the process is ‘Active’ - if not pass along current track info, else
  • Update particle velocity, momentum direction, position according to timestep and steplength (from GPIL)
  • Check distance (‘dist’) to boundary along current direction with RecheckDistanceToCurrentBoundary
    • If ‘dist’ is > path length - update according to path lengths and directions from GPIL
    • If ‘dist’ is < path length - path will hit boundary -> update path length to be exactly ‘dist’
    • If ‘dist’ == path length and the track is on the boundary - cancel this step and do not update track - the particle is likely going into a large volume (i.e. world volume)

This last condition needs to be tested further - likely unintentionally kill particles going from a small volume to a larger volume i.e. a QP trap to larger film volume

38 of 42

Testing the diffusive transport code

Started by simulating in a small volume to confirm that the boundaries are being handled properly - the boundaries are perfectly reflective

Also confirm the G4CMPConfig parameters are working properly - i.e. maxQPBounces = 10

39 of 42

Testing the diffusive transport code

Works still for larger volumes …

40 of 42

Testing the diffusive transport code

500um x 500 um volume - comparing finite differencing and G4CMP code

Blue and orange solid lines are finite differencing method of solving diffusion

1000 QPs simulated in G4CMP - distribution is green histogram. Black is gaussian fit to the distribution

41 of 42

Testing the diffusive transport code - extracting diffusion constant

42 of 42

Testing the diffusive transport code - Energy dependence