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

- S.E.Laux, "On Particle-Mesh Coupling in Monte Carlo Semiconductor Device Simulation", IBM Research Report, RC 20101
- S.E.Laux, "On Particle-Mesh Coupling in Monte Carlo Semiconductor Device Simulation", IBM Research Report, RC 20081

Let us consider a finite difference mesh with the nodes located at . Let us denote by and the constant spatial step in the -direction and -direction. Then, if we denote by the point coordinates in which one wants to compute the density charge, with and , we compute the density in the following way

(6.1) | |||

(6.2) | |||

(6.3) | |||

(6.4) |

where is the density located at , the statistical weight of the particles located at and . 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