UCLA Plasma Simulation Group

Software / Skeleton codes

Serial

GitHub repository

The basic serial codes do not make use of any parallelism, and are the base codes for students or researchers who are unfamiliar with PIC codes.

Python Serial Code

Python_pic2 is a 2D electrostatic serial code. It is essentially equivalent in operation to the Fortran code pic2 below. More details may be found in its associated README. [Note: README not linked in original site].

2D Serial Electrostatic Spectral code: python_pic2

Fortran Serial Codes

For the 2D electrostatic code there are 8 procedures in the inner loop, only 3 of which are computationally intensive, and this code contains about 2,000 lines of code in each language. A typical execution time for the particle part of this code is about 33 ns/particle/time-step. For the 2-1/2D electromagnetic code there are 14 procedures in the inner loop, only 4 of which are computationally intensive, and this code contains approximately 4,000 lines of code in each language. A typical execution time for the particle part of this code is about 110 ns/particle/time-step. For the 2-1/2D Darwin code there are 21 procedures in the inner loop, only 6 of which are computationally intensive, and this code contains approximately 4,000 lines of code in each language. A typical execution time for the particle part of this code is about 256 ns/particle/time-step. (All timings are on a 2.67GHz Intel Nehalem processor.)

For the 3D electrostatic code there are 8 procedures in the inner loop, only 3 of which are computationally intensive, and this code contains about 2,500 lines of code in each language. A typical execution time for the particle part of this code is about 60 ns/particle/time-step. For the 3D electromagnetic code there are 14 procedures in the inner loop, only 4 of which are computationally intensive, and this code contains approximately 5,500 lines of code in each language. A typical execution time for the particle part of this code is about 150 ns/particle/time-step. For the 3D Darwin code there are 21 procedures in the inner loop, only 6 of which are computationally intensive, and this code contains approximately 7,000 lines of code in each language. A typical execution time for the particle part of this code is about 470 ns/particle/time-step. (All timings are on a 2.67GHz Intel Nehalem processor.)

Electrostatic

  1. 1D Serial Electrostatic Spectral code: pic1

  2. 2D Serial Electrostatic Spectral code: pic2

  3. 3D Serial Electrostatic Spectral code: pic3

Electromagnetic

  1. 1-2/2D Serial Electromagnetic Spectral code: bpic1

  2. 2-1/2D Serial Electromagnetic Spectral code: bpic2

  3. 3D Serial Electromagnetic Spectral code: bpic3

Darwin

  1. 1-2/2D Serial Darwin Spectral code: dpic1

  2. 2-1/2D Serial Darwin Spectral code: dpic2

  3. 3D Serial Darwin Spectral code: dpic3

Want to contact the developer? Send mail to Viktor Decyk at decyk@physics.ucla.edu.