Gyselalib++ is a collection of C++ components for writing gyrokinetic semi-lagrangian codes and similar as well as a collection of such codes. It is based on DDC. We strongly encourage new developers to begin by reading our documentation about Using DDC in Gyselalibxx.
In order to set up Gyselalib++ on a new machine, simply run:
git clone --recurse-submodules [email protected]:gysela-developpers/gyselalibxx.git gyselalibxx
cd gyselalibxx
./bin/install-hooks
or
git clone --recurse-submodules https://gitlab.maisondelasimulation.fr/gysela-developpers/gyselalibxx.git gyselalibxx
cd gyselalibxx
./bin/install-hooks
on a machine for which Gyselalib++ is already used an environment script may be available to set up the necessary modules etc.
Please check the toolchains/
folder to find the existing configurations. See the documentation about toolchains for more information on the provided files.
For example in order to set up the environment on the Adastra supercomputer simply run:
source toolchains/mi250.hipcc.adastra.spack/prepare.sh
source toolchains/mi250.hipcc.adastra.spack/environment.sh
To compile Gyselalib++, navigate to the folder where the library was cloned to and run:
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=<TOOLCHAIN_FILE> ..
make
The toolchains are found in the folder toolchains/
. Each toolchain is designed for specific hardware with the exception of those in the folder docker.gyselalibxx_env/
. These toolchains can be used with the docker environment on most hardware.
For more details about toolchains, see the documentation about toolchains.
to run the tests:
ctest --output-on-failure
Then, just have a look at tests/geometryXVx/landau/fft/growthrate_t0.0to45.0.png
:
and tests/geometryXVx/landau/fft/frequency_t0.0to45.0.png
:
To install dependencies through spack, first follow the the 3 first steps of https://github.com/pdidev/spack
Then execute the following:
spack env create gyselalibxx spack.yaml
spack env activate gyselalibxx
spack concretize --reuse
spack install
For example, you can find a Dockerfile installing these dependencies on ubuntu in
docker/gyselalibxx_env/Dockerfile
.