Metadata-Version: 1.1
Name: fbpic
Version: 0.2.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
Description: Fourier-Bessel Particle-In-Cell code (FBPIC)
        ============================================
        
        |Build Status master| |Build Status dev| |pypi version| |License|
        
        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
        
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
