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.gitThen enter inside the PICSP directory.
cd picspNOTE
Ubuntu users can run ubuntu.sh file to install FFTW3 and HDF5 libraries with superuser privilege.
sudo bash ubuntu.shNow complile and built the PICSP code.
make veryclean
make allIf 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-devFor MacOs:
brew install fftw hdf5@1.10Use the same method to resolve issues with FFTW library.
Upon successful compilation, run the code using following command
./picsp input.iniEdit 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.iniTo visualize the simulation data, run the python scripts from scripts directory.
python3 animatePhaseSpace.py python3 animateGridData.py -p phipython3 animateGridData.py -p den.ipython3 animateGridData.py -p den.epython3 timeData.py -p energy
