next up previous contents
Next: The Stationary Poisson Equation Up: Coupling between Monte Carlo Previous: Introduction   Contents

The Cloud-in-a-Cell algorithm

Since the number of particles in a simulation is quite limited, if compared to the number of particles in a real semiconductor device, noise will always be present in the solutions generated by GNU Archimedes. That is why we have to use an advanced algorithm in order to avoid, as the best as possible, this noise, instead of simply counting the number of particles in the cells of the simulation. For this purpose, we use in GNU Archimedes the well-known cloud-in-cell algorithm. For more informations about cloud-in-cell method and more advanced algorithms see the following papers

  1. S.E.Laux, "On Particle-Mesh Coupling in Monte Carlo Semiconductor Device Simulation", IBM Research Report, RC 20101
  2. S.E.Laux, "On Particle-Mesh Coupling in Monte Carlo Semiconductor Device Simulation", IBM Research Report, RC 20081
We report here a brief description of the cloud-in-cell method.
Let us consider a finite difference mesh with the nodes located at $ (x_i,y_j)$ . Let us denote by $ \Delta x$ and $ \Delta y$ the constant spatial step in the $ x$ -direction and $ y$ -direction. Then, if we denote by $ (x,y)$ the point coordinates in which one wants to compute the density charge, with $ x_i<x<x_{i+1}$ and $ y_i<y<y_{i+1}$ , we compute the density in the following way
$\displaystyle n_{i,j}$ $\displaystyle =$ $\displaystyle \frac{S_{i,j}}{A_{i,j}^2} (x_{i+1} - x) (y_{j+1} - y)$ (6.1)
$\displaystyle n_{i+1,j}$ $\displaystyle =$ $\displaystyle \frac{S_{i+1,j}}{A_{i+1,j}^2} (x - x_i) (y_{j+1} - y)$ (6.2)
$\displaystyle n_{i,j+1}$ $\displaystyle =$ $\displaystyle \frac{S_{i,j+1}}{A_{i,j+1}^2}(x_{i+1} - x) (y_{j+1} - y)$ (6.3)
$\displaystyle n_{i+1,j+1}$ $\displaystyle =$ $\displaystyle \frac{S_{i+1,j+1}}{A_{i+1,j+1}^2} (x-x_i) (y-y_j)$ (6.4)

where $ n_{i,j}$ is the density located at $ (x_i,y_j)$ , $ S_{i,j}$ the statistical weight of the particles located at $ (x_i,y_j)$ and $ A_{i,j}= \Delta x_i \Delta y_j$ . Methods do exist that avoid the problems of self-forces but they are necessary only when the grid is not regular and when we deal with heterostructures. They are not implemented, at the present time, in GNU Archimedes because do not yet deal with such structures. They will be implemented in the next future.


next up previous contents
Next: The Stationary Poisson Equation Up: Coupling between Monte Carlo Previous: Introduction   Contents
Didier Link 2007-05-18