picongpu

Particle-in-Cell Simulations for the Exascale Era :sparkles:

Github stars Tracking Chart

PIConGPU - Particle-in-Cell Simulations for the Exascale Era

Code Status master
Code Status dev
Documentation Status
Doxygen
Language
License PIConGPU
License PMacc

PIConGPU Presentation Video
PIConGPU Release

Introduction

PIConGPU is a fully relativistic,
manycore,
3D3V particle-in-cell (PIC)
code. The Particle-in-Cell algorithm is a central tool in plasma physics.
It describes the dynamics of a plasma by computing the motion of
electrons and ions in the plasma based on
Maxwell's equations.

PIConGPU implements various numerical schemes to solve the PIC cycle.
Its features for the electro-magnetic PIC algorithm include:

  • a central or Yee-lattice for fields
  • particle pushers that solve the equation of motion for charged and neutral
    particles, e.g., the Boris- and the
    Vay-Pusher
  • Maxwell field solvers, e.g.
    Yee's and
    Lehe's scheme
  • rigorously charge conserving current deposition schemes, such as
    Villasenor-Buneman,
    Esirkepov
    and ZigZag
  • macro-particle form factors ranging from NGP (0th order), CIC (1st),
    TSC (2nd), PSQ (3rd) to P4S (4th)

and the electro-magnetic PIC algorithm is further self-consistently coupled to:

Besides the electro-magnetic PIC algorithm and extensions to it, we developed
a wide range of tools and diagnostics, e.g.:

  • online, far-field radiation diagnostics for coherent and incoherent radiation
    emitted by charged particles
  • full restart and output capabilities via openPMD,
    including parallel HDF5 (via
    libSplash) and
    ADIOS, allowing for
    extreme I/O scalability and massively parallel online-analysis
  • 2D and 3D live view and diagnostics tools
  • a large selection of extensible
    online-plugins

As one of our supported compute platforms, GPUs provide a computational
performance of several
TFLOP/s at considerable lower invest and
maintenance costs compared to multi CPU-based compute architectures of similar
performance. The latest high-performance systems
(TOP500) are enhanced by accelerator hardware that
boost their peak performance up to the multi-PFLOP/s level. With its
outstanding performance and scalability to more than 18'000 GPUs,
PIConGPU was one of the finalists of the 2013
Gordon Bell Prize.

PIConGPU is developed and maintained by the
Computational Radiation Physics Group
at the Institute for Radiation Physics
at HZDR in close collaboration with the Center
for Information Services and High Performance Computing
(ZIH) of the
Technical University Dresden (TUD). We are a
member of the Dresden GPU Center of Excellence that
cooperates on a broad range of scientific GPU and manycore applications,
workshops and teaching efforts.

Attribution

PIConGPU is a scientific project. If you present and/or publish scientific
results that used PIConGPU, you should set a reference to show your support.

Our according up-to-date publication at the time of your publication
should be inquired from:

Please also consider adding yourself to our community map.
We would love to hear from you!

Oral Presentations

The following slide should be part of oral presentations. It is intended to
acknowledge the team maintaining PIConGPU and to support our community:

(coming soon) presentation_picongpu.pdf
(svg version, key note version, png version: 1920x1080 and 1024x768)

Software License

PIConGPU is licensed under the GPLv3+. Furthermore, you can develop your
own particle-mesh algorithms based on our general library PMacc that is
shipped alongside PIConGPU. PMacc is dual licensed under both the
GPLv3+ and LGPLv3+.
For a detailed description, please refer to LICENSE.md


Install

See our notes in INSTALL.rst.

Users

Dear User, please be aware that this is an open beta release!
We hereby emphasize that we are still actively developing PIConGPU at great
speed and do, from time to time, break backwards compatibility.

When using this software, please stick to the master branch containing the
latest stable release. It also contains a file CHANGELOG.md with the
latest changes (and how to update your simulations). Read it first before
updating between two versions! Also, we add a git tag according to a version
number for each release in master.

For any questions regarding the usage of PIConGPU please do not contact the
developers and maintainers directly.

Instead, please sign up to our PIConGPU-Users mailing list so we can
distribute and archive user questions:
Subscribe (select "Feed" on bottom left).

Before you post a question, browse the PIConGPU
documentation,
wiki,
issue tracker and the
mailing list history
to see if your question has been answered, already.

PIConGPU is a collaborative project.
We thus encourage users to engage in answering questions of other users and post solutions to problems to the list.
A problem you have encountered might be the future problem of another user.

In addition, please consider using the collaborative features of GitHub if you have questions or comments on code or documentation.
This will allow other users to see the piece of code or documentation you are referring to.

Main ressources are in our online manual, the user section of our wiki, documentation files in .md (Markdown) and .rst (reStructuredText) format in this repository and a getting started video.
Feel free to visit picongpu.hzdr.de to learn more about the PIC algorithm.

Software Upgrades

PIConGPU follows a
master - dev
development model. That means our latest stable release is shipped in a branch
called master while new and frequent changes to the code are incooporated
in the development branch dev.

Every time we update the master branch, we publish a new release
of PIConGPU. Before you pull the changes in, please read our
ChangeLog!
You may have to update some of your simulation .param and .cfg files by
hand since PIConGPU is an active project and new features often require changes
in input files. Additionally, a full description of new features and fixed bugs
in comparison to the previous release is provided in that file.

In case you decide to use new, potentially buggy and experimental features
from our dev branch, be aware that support is very limited and you must
participate or at least follow the development yourself. Syntax changes
and in-development bugs will not be announced outside of their according pull
requests and issues.

Before drafting a new release, we open a new release-* branch from dev with
the * being the version number of the upcoming release. This branch only
receives bug fixes (feature freeze) and users are welcome to try it out
(however, the change log and a detailed announcement might still be missing in
it).

Developers

How to participate

See CONTRIBUTING.md

Active Team

Scientific Supervision

  • Dr. Michael Bussmann
  • Axel Huebl

Maintainers* and core developers

  • Dr. Sergei Bastrakov
  • Dr. Alexander Debus
  • Marco Garten
  • Axel Huebl*
  • Alexander Matthes
  • Richard Pausch*
  • Sophie Rudat
  • Sebastian Starke
  • Dr. Klaus Steiniger
  • Rene Widera*

Former Members, Contributions and Thanks

The PIConGPU Team expresses its gratitude to:

Florian Berninger, Heiko Burau, Robert Dietrich, Carlchristian Eckert,
Wen Fu, Ph.D., Alexander Grund, Sebastian Hahn, Anton Helm, Wolfgang Hoehnig,
Dr.-Ing. Guido Juckeland, Jeffrey Kelling, Maximilian Knespel, Dr. Remi Lehe,
Felix Schmitt, Benjamin Schneider, Joseph Schuchart, Conrad Schumann,
Stefan Tietze, Marija Vranic, Ph.D., Benjamin Worpitz, and Erik Zenker.

Kudos to everyone, mentioned or unmentioned, who contributed further in any
way!


image of an lwfa
image of our strong scaling

Overview

Name With OwnerComputationalRadiationPhysics/picongpu
Primary LanguageC++
Program languageShell (Language Count: 8)
Platform
License:Other
Release Count31
Last Release Name0.7.0 (Posted on )
First Release Namealpha (Posted on 2013-08-14 11:36:48)
Created At2013-07-30 12:28:20
Pushed At2024-05-10 16:09:43
Last Commit At
Stargazers Count680
Watchers Count52
Fork Count214
Commits Count10.2k
Has Issues Enabled
Issues Count1449
Issue Open Count392
Pull Requests Count3239
Pull Requests Open Count18
Pull Requests Close Count197
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top