Serial
GitHub repositoryThe 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
-
1D Serial Electrostatic Spectral code: pic1
-
2D Serial Electrostatic Spectral code: pic2
-
3D Serial Electrostatic Spectral code: pic3
Electromagnetic
-
1-2/2D Serial Electromagnetic Spectral code: bpic1
-
2-1/2D Serial Electromagnetic Spectral code: bpic2
-
3D Serial Electromagnetic Spectral code: bpic3
Darwin
-
1-2/2D Serial Darwin Spectral code: dpic1
-
2-1/2D Serial Darwin Spectral code: dpic2
-
3D Serial Darwin Spectral code: dpic3
Want to contact the developer? Send mail to Viktor Decyk at decyk@physics.ucla.edu.