-->

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

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

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

6. 3D Serial Electromagnetic Spectral code: bpic3

Darwin

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

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

9. 3D Serial Darwin Spectral code: dpic3

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