Skip to main content


Actions Status PyPI version PyPI platforms

$\pi$-PIC (PIPIC, Python-controlled Interactive PIC) is an open-source collection of relativistic particle-in-cell solvers featuring

  • exact energy conservation;
  • absence of numerical dispersion.

The solvers provide a way to either suppress or eliminate numerical artefacts (instabilities, heating, numerical Cherenkov radiation, etc.) permitting larger space and time steps, as well as lower number of particles per cell. Because of reduced computational demands, the solvers can be found useful for quick tests of ideas, as well as for scanning parameter spaces. For a description of the underlying methods see Reference, the documentation or a presentation at PIF24.


Overview

$\pi$-PIC provides all tools necessary for designing 1D/2D/3D simulations and arbitrary outputs directly from Python. In addition, it has interfaces for incorporating extensions (read/modify field and particles, add/remove particles) that can be developed in Python, C/C++, Fortran or any other language that generate callable functions (see extensions for a list of extensions included in $\pi$-PIC installation). The project and its development are hosted on GitHub.

To get started, it should for most cases be sufficient to install $\pi$-PIC via pip (this requires: gcc, openmp and fftw3; for details and information on compilation via CMake see installation instructions):

pip install pipic

The basic layout of a simulation includes five elements:

  • creating a container with cells with given parameters
  • adding particles of all necessary types
  • setting initial electromagnetic field
  • defining output (via loops over particles and grid values of field)
  • advance and read the state of the defined physical system

We demonstrate the use of these elements in the tutorial. A complete list of all implemented Python interfaces functions can be found here. The development of extensions is detailed here and exemplified here.

The implementation of new solvers is exemplified here.

New in $\pi$-PIC v1.3

The following updates has been made for $\pi$-PIC v.3. For more details see Ref.[2].

  • extension for moving window simulations.
  • extension for absorbing boundaries.
  • Improved structure for handeling fields and particles in C++ extensions.
  • An energy conserving solver with improved momentum conservation emc.

New in $\pi$-PIC v1.2

  • options for energy correction routine in ec and ec2 (see docs/guides/INTERFACES.md)
  • extension for initializing arbitrary tightly focused pulses, e.g. dipole waves (focused_pulse)

New in $\pi$-PIC v1.1

  • extensions for QED-PIC simulations (qed_volokitin2023, qed_gonoskov2015)
  • extension for ensemble down-sampling (downsampler_gonoskov2022)

See all releases here.

Reference

[1] A. Gonoskov, Explicit energy-conserving modification of relativistic PIC method, J. Comput. Phys., 502, 112820; arXiv:2302.01893 (2024).
[2] F. Brogren, $\pi$-PIC: a framework for modular particle-in-cell developments and simulations, arXiv:2511.09950 (2025).

Metadata

Release files for pipic 1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pipic 1.3
File Size Uploaded
pipic-1.3.tar.gz 266.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pipic 1.3
File
pipic-1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
pipic-1.3-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
pipic-1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
pipic-1.3-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
pipic-1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
pipic-1.3-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
pipic-1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
pipic-1.3-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details

Total release size: 60.8 MB

Release files / pipic-1.3.tar.gz

Download URL pipic-1.3.tar.gz
Size 266.9 kB
Tags Source
SHA-256 checksum
How to use checksums
40448582c0013495af51bd87a3a244807bd10d4a886386d23b360bc29604cb00
BLAKE2b-256 checksum
How to use checksums
2487eba48d6c2727292ca7c5c61d884c3ae1477411c531940c44cfa44bae6f34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pipic-1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pipic-1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 13.5 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
117a1178041b2a104f5220b3a0218422dddd1cc1cea040a054015a4e2c1ca053
BLAKE2b-256 checksum
How to use checksums
14500e4bdcb96d89c8fa6c426cb94d6bcdb3098cbfe3a79252f8608d1214076b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pipic-1.3-cp313-cp313-macosx_14_0_arm64.whl

Download URL pipic-1.3-cp313-cp313-macosx_14_0_arm64.whl
Size 1.7 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
d3d93351e1a6da244d8f623b571b04607dacaa47c2f63242abd0d91fc0f20ade
BLAKE2b-256 checksum
How to use checksums
2c5a4cbe1989fb7ba28798a9a1f0d68d313b4ecfa0110bdb629e8a2a2cdd8667
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pipic-1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pipic-1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 13.5 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6941a11265235941842738eea65f8cc0467374c1919da94544645bb83e4762b5
BLAKE2b-256 checksum
How to use checksums
b4b5c6cbd81f4518b1a2117f3a1cab77e88544fb7309c2db435fc0a132c2de60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pipic-1.3-cp312-cp312-macosx_14_0_arm64.whl

Download URL pipic-1.3-cp312-cp312-macosx_14_0_arm64.whl
Size 1.7 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
ccb9c4ba496b8984ead1c7ef53e841406fdcc7aaec0c05b0e9030d0299fa99a9
BLAKE2b-256 checksum
How to use checksums
8f7b83b922f41fe28d4385ad872a86e2b9c311001f80fe9098d721d2dcef735c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pipic-1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pipic-1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 13.5 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
013b3716446f20749a480972021fb6d0895e89c1650199c54f98b21d6efe0bf3
BLAKE2b-256 checksum
How to use checksums
72918402eead735241e5e9fe5f4b03e7e345b42e36ba32c089fdf596a0bab92d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pipic-1.3-cp311-cp311-macosx_14_0_arm64.whl

Download URL pipic-1.3-cp311-cp311-macosx_14_0_arm64.whl
Size 1.7 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
de60ddcbb5650703fb97c78f92ff9fb2f769cbc414e17d8e58f1804728d2ae86
BLAKE2b-256 checksum
How to use checksums
6ec850b70bf1b0d3dab9d9b8cd67fd2908d453bf02cf73aea7c2f53c4bdce379
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pipic-1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pipic-1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 13.3 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
383cab595f32827a858cb3c9dd74b160fed2b428e2c35d74892806272f53f05b
BLAKE2b-256 checksum
How to use checksums
edc0461c03a335525111ce45376f3822bd34add8f8c12af0b80ff0fdf50621bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release files / pipic-1.3-cp310-cp310-macosx_14_0_arm64.whl

Download URL pipic-1.3-cp310-cp310-macosx_14_0_arm64.whl
Size 1.7 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
3816e00995dbe29b62fc4782930df35604282e4c896a6e5a8c47dfb5b2e90aaf
BLAKE2b-256 checksum
How to use checksums
cafd9efd29013b0485d25766012b33b4d419e3134076b807cd95def6d7f2c3bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3 This release

9 release files

1.2

1 release file

1.1

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page