Serial codes:
python_pic2
pic1
pic2
pic3
bpic1
bpic2
bpic3
dpic1
dpic2
dpic3
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.
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 developer?