Implementing Collision Models in PIC Codes

An Interactive Guide to Photo-Ionization and Charge Exchange

What is this Guide?

Particle-in-Cell (PIC) simulations are powerful tools for modeling plasmas. However, many real-world scenarios involve interactions between charged particles (ions, electrons) and a background neutral gas. This guide provides a practical, step-by-step walkthrough for implementing two crucial collision processes: Photo-Ionization (PI) and Charge Exchange (CX). These processes can significantly alter plasma dynamics, and accurately modeling them is key to predictive simulations. This interactive application breaks down the physics, outlines the necessary code logic using the Monte Carlo Collision (MCC) method, and provides visual demonstrations to solidify your understanding.

Why Model These Interactions?

  • Source of Plasma: Photo-ionization is a primary mechanism for creating new ions and electrons, effectively acting as a plasma source that can sustain or initiate discharges.
  • Energy & Momentum Transfer: Charge exchange transfers momentum from fast ions to the slow neutral gas, creating a population of fast neutrals and slow ions. This is a major energy loss mechanism for ions and a source of plasma drag.
  • Predictive Accuracy: In applications like electric propulsion, astrophysics, and material processing, ignoring these effects leads to inaccurate predictions of plasma behavior, temperature, and device performance.

Core Methodology: Monte Carlo Collisions

We will use the Monte Carlo Collision (MCC) technique. This is a probabilistic method that's well-suited for PIC codes. Instead of tracking every single particle, we treat PIC macroparticles as a sample and, for each particle in each timestep, we calculate the probability of it undergoing a collision. A random number is then used to determine if a collision actually occurs. This approach is computationally efficient and captures the statistical nature of collision processes accurately.

Understanding the Physics

Before diving into implementation, it's essential to understand the physical processes we're modeling. Photo-ionization is a creation process, adding new charged particles to the simulation. Charge exchange is a transformation process, altering the energy and momentum of existing particles without changing the total charge. Below, we break down each reaction.

Photo-Ionization (PI)

Photo-ionization occurs when a photon ($$ \gamma $$) with sufficient energy strikes a neutral atom (A), stripping off an electron (e⁻) and leaving behind a positively charged ion (A⁺).

$$\gamma$$
(Photon)
+
A
(Neutral Atom)
A⁺
(New Ion)
+
e⁻
(New Electron)

In a PIC code, this means a neutral particle is consumed, and a new ion-electron pair is created at its location. The new particles typically have low initial energy (thermal energy of the gas).

Charge Exchange (CX)

Charge exchange is a collision between an energetic ion (A⁺fast) and a slow-moving neutral atom (Aslow). The ion "steals" an electron from the neutral, resulting in a slow ion and a fast neutral.

A⁺fast
(Fast Ion)
+
Aslow
(Slow Neutral)
A⁺slow
(Slow Ion)
+
Afast
(Fast Neutral)

In a PIC simulation, the effect is that the ion macroparticle's velocity is replaced with a velocity sampled from the neutral gas's thermal distribution. The neutral is consumed, but a new fast neutral is created (which is usually not tracked). Effectively, the ion suddenly "stops" and a new cold ion appears in its place.

Step-by-Step Implementation Guide

Implementing the Monte Carlo Collision model involves several key steps that are performed within the main PIC loop for each relevant particle. This section breaks down the process from defining the environment to executing the collision logic. The core idea is to calculate a collision probability for each particle at each timestep and then use a random number to decide if a collision occurs.

Step 1: Define the Neutral Gas Profile

The collision probability depends on the local density of neutral atoms, $$n_n$$. You must define this density field on your simulation grid. It can be uniform, or vary spatially (e.g., a Gaussian plume from a gas inlet). This profile is a critical input to your simulation.

Step 2: Load Collision Cross-Section Data

The "cross-section", $$ \sigma(E) $$, represents the effective target area for a collision. It is a function of the projectile particle's energy. Larger cross-sections mean higher collision probability. You will need to find tabulated data for the specific reaction (e.g., Ar⁺ on Ar for charge exchange) and load it into your code, typically as an array or lookup table.

Step 3: Calculate Collision Probability (The MCC Logic)

For each particle in each timestep $$ \Delta t $$, the probability $$ P $$ of it undergoing a collision is calculated. This is the core of the MCC method. For a single collision process, the formula is:

P = 1 - exp(-n_n \cdot \sigma(E) \cdot v \cdot \Delta t)

Where $$ v $$ is the particle's speed and $$ E $$ is its kinetic energy. In the PIC loop, for each particle:

1

Calculate P

Get local $$ n_n $$, particle velocity $$ v $$, and lookup $$ \sigma(E) $$. Compute the probability P.

2

Get Random Number

Generate a uniform random number R between 0 and 1.

3

Compare

If R < P, a collision occurs! Proceed to the next step. Otherwise, do nothing and move to the next particle.

Step 4: Execute the Collision Outcome

If a collision is flagged to occur, you modify the particle properties according to the physics.

For Photo-Ionization (PI):

This process is often handled differently, not on a per-particle basis. Instead, you calculate the total number of new ion-electron pairs to create in each cell per timestep based on photon flux and neutral density. Then:

  • Create new electron and ion macroparticles.
  • Place them at a random position within the cell.
  • Assign them velocities from a thermal (Maxwellian) distribution corresponding to the neutral gas temperature.

For Charge Exchange (CX):

This applies to an existing ion macroparticle that was flagged for collision.

  • The colliding ion macroparticle is kept.
  • Its velocity vector ($$ v_x, v_y, v_z $$) is deleted.
  • It is assigned a new velocity vector sampled from the thermal distribution of the background neutral gas.

Simple Interactive Demonstration

To make these concepts more concrete, this is a simplified 2D visualization. You can see ions, electrons, and neutral particles moving in a box. Use the buttons to manually trigger a Photo-Ionization or Charge Exchange event. This helps visualize the "before and after" state of the particles as described in the implementation steps. The simulation will pause when an event is triggered to highlight the change.

Ion
Electron
Neutral
Animation running...