PICSP is an open source scientific program for simulating plasmas using the Particle-In-Cell (PIC) method on a 2D structured mesh. The field quantities are solved using Spectral Solver, Direct Solver and Gauss-Siedel solver. The focus is to simulate bounded as well as periodic plasma system.
Authors:
- Sayan Adhikari, (UiO, Norway): architecture and data structures, pushers, weighting schemes, overall maintainance.
- Rakesh Moulick, (RC, India): architecture and data structures, poisson solver, pushers, Collision module.
- Gunjan Sharma, (CPP, India): architecture and data structures, poisson solver.
- Rupak Mukherjee, (PPPL, USA): parallelization, poisson solver.
- GCC compiler for C++ (g++)
- GNU make buildsystem (Mostly comes with every unix based systems)
- git
- FFTW3
- HDF5
- Python >= 3.0 (Not tested for lower)
First make a clone of the master
branch using the following command
git clone https://github.com/sayanadhikari207/picsp.git
Then enter inside the PICSP directory.
cd picsp
NOTE
Ubuntu users can run ubuntu.sh
file to install FFTW3 and HDF5 libraries with superuser privilege.
sudo bash ubuntu.sh
Now complile and built the PICSP code.
make veryclean
make all
If you have not installed HDF5 library from source, you may get some issues regarding the library. Try to use apt-get
for Debian
based machines (e.g. Ubuntu
), or any default package manager to install respective libraries. For MacOS
Homebrew
is recommended.
For Ubuntu
:
sudo apt-get install -y fftw3-dev libhdf5-dev libhdf5-serial-dev
For MacOs
:
brew install fftw hdf5@1.10
Use the same method to resolve issues with FFTW library.
Upon successful compilation, run the code using following command
./picsp input.ini
Edit the input.ini
or create your own .ini
file using the input.ini
file format (e.g. test.ini
) and run the code
./picsp test.ini
To visualize the simulation data, run the python scripts from scripts
directory.
python3 animatePhaseSpace.py
python3 animateGridData.py -p phi
python3 animateGridData.py -p den.i
python3 animateGridData.py -p den.e
python3 timeData.py -p energy