Metadata-Version: 2.0
Name: fbpic
Version: 0.5.0
Summary: Spectral, quasi-3D Particle-In-Cell for CPU and GPU
Home-page: http://github.com/fbpic/fbpic
Author: Remi Lehe
Author-email: remi.lehe@normalesup.org
License: BSD-3-Clause-LBNL
Platform: any
Classifier: Programming Language :: Python
Classifier: Development Status :: 3 - Alpha
Classifier: Natural Language :: English
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: h5py
Requires-Dist: mpi4py
Requires-Dist: numba
Requires-Dist: numpy
Requires-Dist: pyfftw
Requires-Dist: python-dateutil
Requires-Dist: scipy

Fourier-Bessel Particle-In-Cell code (FBPIC)
============================================

|Build Status master| |Build Status dev| |pypi version| |License| |DOI|

Overview
--------

FBPIC is a `Particle-In-Cell (PIC)
code <https://en.wikipedia.org/wiki/Particle-in-cell>`__ for
relativistic plasma physics.

It is especially well-suited for physical simulations of
**laser-wakefield acceleration** and **plasma-wakefield acceleration**,
with close-to-cylindrical symmetry.

Algorithm
~~~~~~~~~

| The distinctive feature of FBPIC is to use a **spectral decomposition
  in cylindrical geometry** (Fourier-Bessel decomposition) for the
  fields. This combines the advantages of **spectral 3D** PIC codes
  (high accuracy and stability) and those of **finite-difference
  cylindrical** PIC codes (orders-of-magnitude speedup when compared to
  3D simulations).
| For more details on the algorithm, its advantages and limitations, see
  the `documentation <http://fbpic.github.io>`__.

Language and harware
~~~~~~~~~~~~~~~~~~~~

FBPIC is written entirely in Python, but uses
`Numba <http://numba.pydata.org/>`__ Just-In-Time compiler for high
performance. In addition, the code can run on **CPU** (with
multi-threading) and on **GPU**. For large simulations, running the code
on GPU can be much faster than on CPU.

Installation
------------

The installation instructions below are for a local computer. For more
details, or for instructions specific to a particular HPC cluster, see
the `documentation <http://fbpic.github.io>`__.

The recommended installation is through the
`Anaconda <https://www.continuum.io/why-anaconda>`__ distribution. If
Anaconda is not your default Python installation, download and install
it from `here <https://www.continuum.io/downloads>`__.

**Installation steps**:

-  Install the dependencies of FBPIC. This can be done in two lines:

   ::

       conda install numba scipy h5py
       conda install -c conda-forge mpi4py pyfftw

-  Download and install FBPIC:

   ::

       pip install fbpic

-  **Optional:** in order to run on GPU, install the additional package
   ``pyculib``:

   ::

       conda install -c numba pyculib

Running simulations
-------------------

Once installed, FBPIC is available as a **Python module** on your
system.

Therefore, in order to run a physical simulation, you will need a
**Python script** that imports FBPIC's functionalities and use them to
setup the simulation. You can find examples of such scripts in the
`documentation <http://fbpic.github.io>`__ or in this repository, in
``docs/source/example_input/``.

Once your script is ready, the simulation is run simply by typing:

::

    python fbpic_script.py

The code outputs HDF5 files, that comply with the `OpenPMD
standard <http://www.openpmd.org/#/start>`__, and which can thus be read
as such (e.g. by using the
`openPMD-viewer <https://github.com/openPMD/openPMD-viewer>`__).

Contributing
------------

We welcome contributions to the code! Please read `this
page <https://github.com/fbpic/fbpic/blob/master/CONTRIBUTING.md>`__ for
guidelines on how to contribute.

Attribution
-----------

FBPIC was originally developed by Remi Lehe at `Berkeley
Lab <http://www.lbl.gov/>`__, and Manuel Kirchen at `CFEL, Hamburg
University <http://lux.cfel.de/>`__. The code also benefitted from the
contributions of Soeren Jalas, Kevin Peters and Irene Dornmair (CFEL).

If you use FBPIC for your research project: that's great! We are very
pleased that the code is useful to you!

If your project even leads to a scientific publication, please consider
citing FBPIC's original paper, which can be found
`here <http://www.sciencedirect.com/science/article/pii/S0010465516300224>`__
(see `this link <https://arxiv.org/abs/1507.04790>`__ for the arxiv
version).

.. |Build Status master| image:: https://img.shields.io/travis/fbpic/fbpic/master.svg?label=master
   :target: https://travis-ci.org/fbpic/fbpic/branches
.. |Build Status dev| image:: https://img.shields.io/travis/fbpic/fbpic/dev.svg?label=dev
   :target: https://travis-ci.org/fbpic/fbpic/branches
.. |pypi version| image:: https://img.shields.io/pypi/v/fbpic.svg
   :target: https://pypi.python.org/pypi/fbpic
.. |License| image:: https://img.shields.io/pypi/l/fbpic.svg
   :target: LICENSE.txt
.. |DOI| image:: https://zenodo.org/badge/69215997.svg
   :target: https://zenodo.org/badge/latestdoi/69215997


