This PIC code has been developed since 2022 as an alternative to ASTRA, WARP, XTRACK and other codes.
For particle dynamics simulation using finite difference scheme relativistic.
To build our application and create a Docker image, it will be enough to run the following command:
docker build -t redpic .
To launch the application, use the command:
docker run -it redpic
The documentation contains all the Latex files needed to generate documentation.
The main source files are located in the manual
.
main.tex is the source file that Latex compiler will use to generate the paper. However, in order to keep the code cleaner, the main sections of the paper are all located in the sections. In this way you will experience less merging issues when two or more people are working on the same doc.
Just edit the text in the relative Latex file (e.g., introduction, methodology, etc.) and you should be ready to go. No need to change any other file.
Just copy a section file (e.g., introduction.tex) paste it in the same directory. Rename the pasted file (e.g. first_chapter.tex) and add this file to main.tex.
Alternatively you can find great resources on the Overleaf Tutorial website or on Latex wikibooks.
For CUDA implementation we use Numba library. For more information about CUDA installation see Numba CUDA installation guide.
Latex IDE and compiler installed locally on your machine. We recommend using a PyCharm plugin called TeXiFy IDEA as IDE and miktex as Latex compiler
Alternatively you can push your code to Overleaf using git and only use Overleaf. We would discourage you from doing this! Overleaf should only be used for the review.
You may want to take advantage of the power of IDEs. For Python We would recommend using PyCharm.
Alternatives are:
You should install git on your computer. And have GitHub account.
- Vyacheslav Fedorov - Initial work
- Danila Nikiforov - Initial work
This project is licensed under the MIT License - see the LICENSE file for details
Use make deps
command to install library, its production and development dependencies.
Use make format
to autoformat code with black tool.
Use make lint
to run only linters for current python version
Use make test
to run test for current python version
If pull request consists of several meaningful commits, that should be preserved, then use "Rebase and merge" option. Otherwise use "Squash and merge".
New release (changelog, tag and pypi upload) will be automatically created on each push to master via Github Actions workflow.