Installation

If you want to use EXtra-foam on the online or Maxwell cluster, please check GETTING STARTED.

To install EXtra-foam in your own environment, you are encouraged to use Anaconda to run and build EXtra-foam.

Install EXtra-foam

$ git clone --recursive --branch <tag_name> https://github.com/European-XFEL/EXtra-foam.git

# If you have cloned the repository without one or more of its submodules, run
$ git submodule update --init

$ cd EXtra-foam

# Create an Anaconda_ environment, by default it's named 'extra_foam'. If
# you want to install into an existing environment, use `conda env update` instead.
$ conda env create -f environment.yml

$ conda activate extra_foam
# We need to set this variable so that the libraries from the conda
# environment are loaded first, in particular libstdc++. If the system
# libstdc++ is loaded first and it's too old for the version extra-foam was
# compiled against, then we might get nasty loader errors.
$ conda env config vars set LD_LIBRARY_PATH=${CONDA_PREFIX}/lib:${LD_LIBRARY_PATH}
# Re-activate the environment so the new variables take effect
$ conda deactivate
$ conda activate extra_foam

# Install extra-foam
$ export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
$ pip install .

Install your own EXtra-foam kernel on the Maxwell cluster for offline analysis

For now, there is no documentation for the Python bindings of the C++ implementations in EXtra-foam. If you are interested in using those super fast C++ implementation to accelerate your analysis, please feel free to dig into the code and ask questions.

# ssh to the Maxwell cluster and then
$ module load anaconda3

# follow the previous steps to install EXtra-foam

$ conda install ipykernel nb_conda_kernels -y

# Now you should be able to load the newly created kernel on max-jhub.

Install C++ API only

Please check foamalgo.