GYACOMO (Gyrokinetic Advanced Collision Moment solver, 2021) Copyright (C) 2022 A.C.D. Hoffmann Cloning the code : 1. ssh-keygen to generate a public key (press enter to the questions) 2. copy .ssh/id_rsa.pub in the ssh public key list of c4science with your account 3. git clone ssh://git@c4science.ch/source/gyacomo.git Installing librairies : requirements : intel mpi compiler fftw3-mpi : 1. download .tar.gz on download page http://www.fftw.org/download.html 2. move it to the lib folder and unzip it with tar -zxvf fftw-3.x.x.tar.gz 3. cd into the folder created ffw-3.x.x/ 5. use pwd to find the path of the current folder and use it as the prefix in "CURRENT PATH" so all the lib, headers and bin will be installed in this folder (prevents problem with root access) 4. ./configure --enable-mpi --prefix="CURRENT PATH" 5. make 6. make install (if problems, do make distclean before retrying) 7. mv lib64 lib in the fftw3 folder so the HeLaZ makefile finds it FM Multiple-Precision Software Package: 0. copy the source code from https://dmsmith.lmu.build/ hdf5: 1. download latest release .tar.gz here https://www.hdfgroup.org/downloads/hdf5/source-code/ 2. mv it to the lib/ and tar -zxvf *.tar.gz 3. cd the hdf5 folder then we follow instructions from futils.pdf export F9X=mpif90 export CC=mpicc VERSION=1.12.0 PREFIX=$HOME/lib/hdf5-$VERSION ./configure --prefix=$PREFIX \ --enable-fortran \ --enable-parallel \ --disable-shared \ 2>&1 | tee configure.log zlib: 1. download https://www.zlib.net/ by clicking "Pick a mirror" (sourceforge.net) 2. inside zlib folder : ./configure then make futils: 1. Go to futils c4science page > https://c4science.ch/diffusion/7804/ 2. clone it in lib/ 3. go to futils/src/ and modify the Makefile by replacing $(OPT) by -O3 in F90FLAGS and LIBS, moreover change F90 = mpif90 to mpiifort 4. make lib 5. make install Compilation of GYACOMO 1. ensure that gyacomo/local/dirs.inc contains the right paths to the librairies (Be careful of fftw name) 2. make install 3. the file fort.90 is a Z-pinch turbulence test that can be run easily with ./bin/gyacomo in the home folder 4. next times, for compilation, make is sufficient Remark for PPB110 - before compilation do : module purge, then module load ProgEnv-intel/17.0 Installation on Piz Daint (CSCS) - module cray-hdf5-parallel, cray-fftw - Have to install futils, FM - Modify the Makefile by removing -XHOST option and using ftn as compiler Installation on Marconi (CINECA) - module load autoload hdf5/1.8...mpi... fftw3 (note: the module miller does not compile on Marconi with intelmpi 2020 compiler on Marconi) - Have to install futils and FM - Makefile works once local/dirs.inc is adapted