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.