# Codes

**
****OSIRIS**** | ****MAGTAIL**** | ****PARSEC**** | ****QuickPIC**** | ****UPIC** | **OSHUN**

**OSIRIS**** | ****MAGTAIL**** | ****PARSEC**** | ****QuickPIC**** | ****UPIC** | **OSHUN**

**UPIC**|

**OSHUN**

## Methodology

Particle-in-Cell (PIC) codes model plasmas as particles which interact self-consistently via the electromagnetic fields they themselves produce [birdsall:1985,dawson:1984]. These models work at the most fundamental, microscopic level. As a result, they are the most compute-intensive model in plasma physics. PIC codes are used in almost all areas of plasma physics, such as fusion energy research, plasma accelerators, space physics, ion propulsion, and plasma processing, and many other areas. PIC algorithms are also used in cosmology, astrophysics, accelerator physics, and semi-classical quantum simulations.

Unlike molecular dynamics codes widely used in chemistry, where particles interact as binary pairs, particles in PIC codes interact via fields which are calculated on a grid. PIC codes are possible whenever there is some differential equation which describes the fields in terms of particle sources. There are a variety of PIC codes in common use, which are differentiated by the kinds of forces retained in the model. The simplest is the electrostatic force, described by a Poisson equation. More complex are the Darwin (non-radiative electromagnetics) [neilson:76], and the fully electromagnetic models. There are also gyrokinetic [lee:83], quasi-static [huang:06] and quantum models [tonge:04,dauger:05]. Because PIC codes contain the richest physics, they are increasingly being used to validate reduced plasma descriptions, such as fluid models. PIC algorithms are sometimes used in conjunction with molecular dynamic codes, to model the electrostatic part of a more complex binary interaction [nanbu:98,peano:09].

PIC codes generally have three important procedures in the main iteration loop. The first is the deposit, where some particle quantity, such as a charge, is accumulated on a grid via interpolation to produce a source density. Various other quantities can also be deposited, such as current densities, depending on the model. The second important procedure is the field solver, which solves Maxwell’s equation or a subset to obtain the electric and/or magnetic fields from the source densities. Finally, once the fields are obtained, the particle forces are found by interpolation from the grid, and the particle co-ordinates are updated, using Newton’s second law and the Lorentz force. The particle processing parts dominate over the field solving parts in a typical PIC application.

#### Within the UCLA Plasma Simulation Group

This infrastructure is substantial and unmatched by any group in the world for studying high frequency plasma phenomenon. Because this infrastructure is completely homegrown and self-maintained, it gives the students a unique hands-on experience. We also stress that each fully explicit PIC code is different. Field solvers, current deposits, current smoothing, boundary conditions can all differ with effects both subtle and significant. What makes us truly unique is that we have multiple, highly-optimized full PIC codes (OSIRIS, PARSEC, MAGTAIL), as well as a novel quasi-static PIC code (QuickPIC) and a parallel PIC Framework (UPIC). We have also developed the capability to carry out 3D simulations in a Lorentz boosted frame [vay:07,martins:09b] using OSIRIS. We have compared OSIRIS, UPIC, and QuickPIC against theory, against each other where appropriate, and against experiment. And very importantly we have a sophisticated data analysis and visualization package as well as more than a decades experience in handling large data sets and restart files.

Click on the code links for **OSIRIS**, **MAGTAIL**, **PARSEC**, **QuickPIC**, **UPIC**, and **OSHUN** at the top of the page to learn more.