Installation

First clone CLEO’s GitHub repository. Everything will be much easier for you if you clone CLEO in your home directory. It’s not essential, but if you choose to do otherwise you may have to change some extra paths in the bash and Python scripts.

$ git clone https://github.com/yoctoyotta1024/CLEO.git

Everything will also be much easier for you if you setup and use CLEO with a python version and all the packages as listed in our pyproject.toml file. You can acheive this quickly and simply using uv (hint: optionally, you can install uv within a Conda/Micromamba environment using our environment.yml file, e.g. mamba create --file=environment.yml). Using uv to setup python, simply do:

$ uv sync --extra examples --extra yac

Alternatively, to only install the python dependencies required by CLEO’s python package, cleopy, you can just do uv sync --no-dev.

Note: on Levante/HPCs you may need to set the paths to your mpi wrapper/libraries before installing mpi4py in order to be able to run MPI via mpi4py. On Levante if you want to use openMPI from module load openmpi/4.1.2-gcc-11.2.0, you will need to uninstall the default mpi4py installation from uv sync [...] and re-install with the correct paths, e.g.

$ uv pip uninstall mpi4py
$ export MPI4PY_BUILD_MPICC=/sw/spack-levante/openmpi-4.1.2-mnmady/bin/mpicc  # mpicc wrapper
$ export MPI4PY_BUILD_MPILD=/sw/spack-levante/openmpi-4.1.2-mnmady/lib  # path to mpi libraries (libmpi.so)
$ uv pip install --no-cache-dir --no-binary=mpi4py mpi4py
$ uv run python -c 'from mpi4py import MPI; print(f"MPI version: {MPI.Get_version()}")'  # check installation

See the mpi4py documentation for more information

For advanced users/developers, even if you already have uv installed elsewhere you may want to install CLEO’s non-python dependencies sourced from conda-forge via our environment.yml, (e.g. doxygen), for examples with Micromamba: mamba create --file=environment.yml.

Finally we suggest you use pre-commit. You can install our hooks via:

$ pre-commit install

That’s it, you’re done!

Now maybe you want to run some of CLEO’s examples or try out the quickstart