.. _install-users:
Users
=====
.. raw:: html
Our community is here to help.
Please `report installation problems `_ in case you should get stuck.
Choose **one** of the installation methods below to get started:
.. only:: html
.. image:: hpc.svg
HPC Systems
-----------
If want to use ImpactX on a specific high-performance computing (HPC) systems, jump directly to our :ref:`HPC system-specific documentation `.
.. _install-conda:
.. only:: html
.. image:: conda.svg
Using the Conda-Forge Package
-----------------------------
A package for ImpactX is available via `Conda-Forge `__.
.. tip::
We recommend to deactivate that conda self-activates its ``base`` environment.
This `avoids interference with the system and other package managers `__.
.. code-block:: bash
conda config --set auto_activate_base false
In order to make sure that the conda configuration uses ``conda-forge`` as the only channel, which will help avoid issues with blocked ``defaults`` or ``anaconda`` repositories, please set the following configurations:
.. code-block:: bash
conda config --add channels conda-forge
conda config --set channel_priority strict
.. code-block:: bash
conda create -n impactx -c conda-forge impactx
conda activate impactx
.. note::
The ``impactx`` package on conda-forge does not yet provide `GPU support `__.
.. _install-spack:
.. only:: html
.. image:: spack.svg
Using the Spack Package
-----------------------
.. note::
Coming soon.
.. _install-pypi:
.. only:: html
.. image:: pypi.svg
Using the PyPI Package
----------------------
Because of limitations of ``pip``, we limit our PyPI package to be a **sequential CPU build**, i.e., it does not make use of *any* of the accelerated features of ImpactX.
If you need advanced features such as:
* multi-core CPU support (OpenMP)
* GPU support (CUDA/HIP/SYCL)
* multi-node support (MPI)
then use *another installation method* listed here or in the :ref:`HPC system-specific section `.
.. code-block:: bash
python -m pip install impactx-noacc
.. _install-brew:
.. only:: html
.. image:: brew.svg
Using the Brew Package
----------------------
.. note::
Coming soon.
.. _install-cmake:
.. only:: html
.. image:: cmake.svg
From Source with CMake
----------------------
After installing the :ref:`ImpactX dependencies `, you can also install ImpactX from source with `CMake `_:
.. code-block:: bash
# get the source code
git clone https://github.com/BLAST-ImpactX/impactx.git $HOME/src/impactx
cd $HOME/src/impactx
# configure
cmake -S . -B build
# optional: change configuration
ccmake build
# compile
# on Windows: --config Release
cmake --build build -j 4
# executables for ImpactX are now in build/bin/
We document the details in the :ref:`developer installation `.
Tips for macOS Users
--------------------
.. tip::
Before getting started with package managers, please check what you manually installed in ``/usr/local``.
If you find entries in ``bin/``, ``lib/`` et al. that look like you manually installed MPI, HDF5 or other software in the past, then remove those files first.
If you find software such as MPI in the same directories that are shown as symbolic links then it is likely you `brew installed `__ software before.
If you are trying another package manager than ``brew``, run `brew unlink ... `__ on such packages first to avoid software incompatibilities.
See also: A. Huebl, `Working With Multiple Package Managers `__, `Collegeville Workshop (CW20) `_, 2020