Metadata-Version: 2.0
Name: fbpic
Version: 0.3.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: 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 was designed to be run either on
  **CPU or GPU**. For large simulations, running the code on GPU can be
  up to **40 times 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
   ``accelerate``:

   ::

       conda install accelerate

   (The ``accelerate`` package is not free, but there is a 30-day free
   trial period, which starts when the above command is entered. For
   further use beyond 30 days, one option is to obtain an academic
   license, which is also free. To do so, please visit `this
   link <https://www.continuum.io/anaconda-academic-subscriptions-available>`__.)

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


