elegant stands for “ELEctron Generation ANd Tracking,” a somewhat out-of-date description of a fully 6D accelerator program that now does much more than generate particle distributions and track them. elegant, written entirely in the C programming language, uses a variant of the MAD input format to describe accelerators, which may be either transport lines, circular machines, or a combination thereof. Program execution is driven by commands in a namelist format.

Using  (p)elegant

elegant (and SDDSToolkit) are installed as standard packages. The corresponding binaries are per default in your PATH. Check the documentation for further details.

Note: The standard pelegant binary is based on a very ancient openmpi version, which has severe issues with mpiio on beegfs when using multiple nodes. It will essentially only work for single node jobs. For multi-node jobs please use an alternative installation located in /software/pelegant. A sample setup looks like this:

#!/bin/bash
#SBATCH --partition=petra4  # adjust partition, time, nodes etc ... 
#SBATCH --nodes=2
#SBATCH --constraint=75F3
#SBATCH --time=1:00:00
unset LD_PRELOAD

source /etc/profile.d/modules.sh
module purge
module load maxwell openmpi/3.1.6
export PATH=/software/pelegant/2022.1/bin:$PATH
export RPN_DEFNS=/usr/local/oag/defns.rpn

MCA=' --mca btl_openib_warn_no_device_params_found 0 --mca pml ucx --mca mpi_cuda_support 0 '
np=$(( $(nproc) / 2 ))

mpirun -N $np  $MCA Pelegant <input-file>